20 lines
742 B
JavaScript
20 lines
742 B
JavaScript
// باید بعد از adminAuth بیاد (به req.admin نیاز داره). super_admin همیشه رد میشه؛
|
|
// staff فقط اگه key توی permissions خودش باشه
|
|
module.exports = function requirePermission(key) {
|
|
return (req, res, next) => {
|
|
const admin = req.admin
|
|
if (!admin) {
|
|
return res.status(401).send({ status: 'error', code: 401, message: 'Access Denied' })
|
|
}
|
|
if (admin.role === 'super_admin') return next()
|
|
if (Array.isArray(admin.permissions) && admin.permissions.includes(key)) {
|
|
return next()
|
|
}
|
|
return res.status(403).send({
|
|
status: 'error',
|
|
code: 403,
|
|
message: 'شما دسترسی لازم برای این بخش را ندارید'
|
|
})
|
|
}
|
|
}
|