feat(phase2): channel permission overrides + expanded role UI + audit log cleanup
This commit is contained in:
@@ -15,6 +15,17 @@ const PERMS = {
|
||||
CONNECT_VOICE: 256,
|
||||
SPEAK_VOICE: 512,
|
||||
SHARE_SCREEN: 1024,
|
||||
MUTE_MEMBERS: 2048,
|
||||
CREATE_INSTANT_INVITE: 4096,
|
||||
CHANGE_NICKNAME: 8192,
|
||||
MANAGE_NICKNAMES: 16384,
|
||||
MANAGE_ROLES: 32768,
|
||||
MANAGE_WEBHOOKS: 65536,
|
||||
EMBED_LINKS: 131072,
|
||||
ATTACH_FILES: 262144,
|
||||
ADD_REACTIONS: 524288,
|
||||
USE_EXTERNAL_EMOJIS: 1048576,
|
||||
MENTION_EVERYONE: 2097152,
|
||||
} as const;
|
||||
|
||||
const PERM_CATEGORIES = [
|
||||
@@ -24,6 +35,11 @@ const PERM_CATEGORIES = [
|
||||
{ key: 'VIEW_CHANNEL', label: 'View Channel', flag: PERMS.VIEW_CHANNEL },
|
||||
{ key: 'SEND_MESSAGES', label: 'Send Messages', flag: PERMS.SEND_MESSAGES },
|
||||
{ key: 'MANAGE_MESSAGES', label: 'Manage Messages', flag: PERMS.MANAGE_MESSAGES },
|
||||
{ key: 'ADD_REACTIONS', label: 'Add Reactions', flag: PERMS.ADD_REACTIONS },
|
||||
{ key: 'EMBED_LINKS', label: 'Embed Links', flag: PERMS.EMBED_LINKS },
|
||||
{ key: 'ATTACH_FILES', label: 'Attach Files', flag: PERMS.ATTACH_FILES },
|
||||
{ key: 'MENTION_EVERYONE', label: 'Mention @everyone', flag: PERMS.MENTION_EVERYONE },
|
||||
{ key: 'USE_EXTERNAL_EMOJIS', label: 'Use External Emojis', flag: PERMS.USE_EXTERNAL_EMOJIS },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -31,6 +47,9 @@ const PERM_CATEGORIES = [
|
||||
perms: [
|
||||
{ key: 'KICK_MEMBERS', label: 'Kick Members', flag: PERMS.KICK_MEMBERS },
|
||||
{ key: 'BAN_MEMBERS', label: 'Ban Members', flag: PERMS.BAN_MEMBERS },
|
||||
{ key: 'MUTE_MEMBERS', label: 'Mute Members', flag: PERMS.MUTE_MEMBERS },
|
||||
{ key: 'MANAGE_NICKNAMES', label: 'Manage Nicknames', flag: PERMS.MANAGE_NICKNAMES },
|
||||
{ key: 'CHANGE_NICKNAME', label: 'Change Nickname', flag: PERMS.CHANGE_NICKNAME },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -38,6 +57,9 @@ const PERM_CATEGORIES = [
|
||||
perms: [
|
||||
{ key: 'MANAGE_SERVER', label: 'Manage Server', flag: PERMS.MANAGE_SERVER },
|
||||
{ key: 'MANAGE_CHANNELS', label: 'Manage Channels', flag: PERMS.MANAGE_CHANNELS },
|
||||
{ key: 'MANAGE_ROLES', label: 'Manage Roles', flag: PERMS.MANAGE_ROLES },
|
||||
{ key: 'MANAGE_WEBHOOKS', label: 'Manage Webhooks', flag: PERMS.MANAGE_WEBHOOKS },
|
||||
{ key: 'CREATE_INSTANT_INVITE', label: 'Create Instant Invite', flag: PERMS.CREATE_INSTANT_INVITE },
|
||||
{ key: 'ADMINISTRATOR', label: 'Administrator', flag: PERMS.ADMINISTRATOR },
|
||||
],
|
||||
},
|
||||
@@ -66,9 +88,11 @@ function permSummary(permissions: number): string {
|
||||
const active: string[] = [];
|
||||
if (hasPerm(permissions, PERMS.MANAGE_SERVER)) active.push('MGR_SERVER');
|
||||
if (hasPerm(permissions, PERMS.MANAGE_CHANNELS)) active.push('MGR_CHAN');
|
||||
if (hasPerm(permissions, PERMS.MANAGE_ROLES)) active.push('MGR_ROLES');
|
||||
if (hasPerm(permissions, PERMS.MANAGE_MESSAGES)) active.push('MGR_MSG');
|
||||
if (hasPerm(permissions, PERMS.KICK_MEMBERS)) active.push('KICK');
|
||||
if (hasPerm(permissions, PERMS.BAN_MEMBERS)) active.push('BAN');
|
||||
if (hasPerm(permissions, PERMS.MUTE_MEMBERS)) active.push('MUTE');
|
||||
return active.length > 0 ? active.join('+') : 'BASIC';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user