// باید بعد از 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: 'شما دسترسی لازم برای این بخش را ندارید' }) } }