4.1.3
This commit is contained in:
19
middlewares/requirePermission.js
Normal file
19
middlewares/requirePermission.js
Normal file
@@ -0,0 +1,19 @@
|
||||
// باید بعد از 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: 'شما دسترسی لازم برای این بخش را ندارید'
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user