35 lines
724 B
TypeScript
35 lines
724 B
TypeScript
interface Permissions {
|
|
general: number;
|
|
user: number;
|
|
changelog: number;
|
|
news: number;
|
|
forum: number;
|
|
comments: number;
|
|
}
|
|
|
|
enum CommentPermission {
|
|
Create = 1,
|
|
//EditOwn = 1 << 1,
|
|
//EditAny = 1 << 2,
|
|
//Edit = EditOwn | EditAny,
|
|
DeleteOwn = 1 << 3,
|
|
DeleteAny = 1 << 4,
|
|
Delete = DeleteOwn | DeleteAny,
|
|
Pin = 1 << 5,
|
|
Lock = 1 << 6,
|
|
Vote = 1 << 7,
|
|
}
|
|
|
|
function checkPerm(perms: number, perm: number): boolean {
|
|
return (perms & perm) > 0;
|
|
}
|
|
|
|
function checkUserPerm(set: string, perm: number): boolean {
|
|
const perms: number = (getCurrentUser('perms')[set] || 0) as number;
|
|
|
|
if (!perms) {
|
|
return false;
|
|
}
|
|
|
|
return checkPerm(perms, perm);
|
|
}
|