mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
feat: allow multiple privileges to be defined for a given admin socket call
This commit is contained in:
@@ -41,8 +41,9 @@ SocketAdmin.before = async function (socket, method) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check admin privileges mapping (if not in mapping, deny access)
|
// Check admin privileges mapping (if not in mapping, deny access)
|
||||||
const privilege = privileges.admin.socketMap[method];
|
const privilegeSet = privileges.admin.socketMap[method].split(';');
|
||||||
if (privilege && await privileges.admin.can(privilege, socket.uid)) {
|
const hasPrivilege = (await Promise.all(privilegeSet.map(async privilege => privileges.admin.can(privilege, socket.uid)))).some(Boolean);
|
||||||
|
if (privilegeSet.length && hasPrivilege) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user