mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-14 22:05:01 +00:00
More work on permission utils and eager permission checks
This commit is contained in:
parent
8af64a6944
commit
6d4a7cdafd
11 changed files with 189 additions and 79 deletions
17
backend/src/utils/getMissingPermissions.ts
Normal file
17
backend/src/utils/getMissingPermissions.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
import { Constants, Permission } from "eris";
|
||||
|
||||
/**
|
||||
* @param resolvedPermissions A Permission object from e.g. GuildChannel#permissionsOf() or Member#permission
|
||||
* @param requiredPermissions Bitmask of required permissions
|
||||
* @return Bitmask of missing permissions
|
||||
*/
|
||||
export function getMissingPermissions(resolvedPermissions: Permission, requiredPermissions: number | bigint): bigint {
|
||||
const allowedPermissions = BigInt(resolvedPermissions.allow);
|
||||
const nRequiredPermissions = BigInt(requiredPermissions);
|
||||
|
||||
if (Boolean(allowedPermissions & BigInt(Constants.Permissions.administrator))) {
|
||||
return BigInt(0);
|
||||
}
|
||||
|
||||
return nRequiredPermissions & ~allowedPermissions;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue