19 lines
895 B
JavaScript
19 lines
895 B
JavaScript
// مطابق middlewares/requirePermission.js (پنل ادمین) ولی برای زیرمجموعههای
|
|
// کاربرانِ عادی. باید بعد از میدلویری که req.actingSubUser رو ست میکنه
|
|
// (blockCheck / isRegister / isHalfRegister / isBasicRegister) بیاد.
|
|
// اگه req.actingSubUser خالی باشه یعنی خودِ صاحبِ اکانته — دسترسیِ کامل داره.
|
|
module.exports = function requireSubUserPermission (key) {
|
|
return (req, res, next) => {
|
|
const actingSubUser = req.actingSubUser
|
|
if (!actingSubUser) return next()
|
|
if (Array.isArray(actingSubUser.permissions) && actingSubUser.permissions.includes(key)) {
|
|
return next()
|
|
}
|
|
return res.status(403).json({
|
|
status: 'error',
|
|
code: 403,
|
|
message: 'شما دسترسی انجام این عملیات را ندارید'
|
|
})
|
|
}
|
|
}
|