34 lines
851 B
JavaScript
34 lines
851 B
JavaScript
|
const checkPermission = (requiredPermission) => {
|
||
|
return (req, res, next) => {
|
||
|
if (!req.admin) {
|
||
|
return res.status(401).json({ message: '请先登录' });
|
||
|
}
|
||
|
|
||
|
if (req.admin.role === 'superadmin') {
|
||
|
return next(); // 超级管理员拥有所有权限
|
||
|
}
|
||
|
|
||
|
// 添加默认权限映射
|
||
|
const rolePermissions = {
|
||
|
admin: [
|
||
|
'game:manage',
|
||
|
'category:manage',
|
||
|
'media:manage',
|
||
|
'message:manage' // 添加消息管理权限
|
||
|
],
|
||
|
editor: [
|
||
|
'game:manage',
|
||
|
'media:manage'
|
||
|
]
|
||
|
};
|
||
|
|
||
|
if (!req.admin.permissions.includes(requiredPermission) &&
|
||
|
!(rolePermissions[req.admin.role] || []).includes(requiredPermission)) {
|
||
|
return res.status(403).json({ message: '没有操作权限' });
|
||
|
}
|
||
|
|
||
|
next();
|
||
|
};
|
||
|
};
|
||
|
|
||
|
module.exports = checkPermission;
|