feat(roles): surface viewChannel in permission editor metadata
Extend ALL_PERMISSIONS_MASK, PERMISSION_META, maskToPermissionView, and viewToMask so guild role UI and RPC payloads can grant or deny VIEW_CHANNEL alongside existing send and voice bits. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+10
-1
@@ -10,10 +10,17 @@ const ALL_PERMISSIONS_MASK =
|
||||
PERMISSION.MANAGE_MESSAGES |
|
||||
PERMISSION.SEND_MESSAGES |
|
||||
PERMISSION.CONNECT_VOICE |
|
||||
PERMISSION.SPEAK_IN_VOICE
|
||||
PERMISSION.SPEAK_IN_VOICE |
|
||||
PERMISSION.VIEW_CHANNEL
|
||||
|
||||
/** UI + editor metadata (Discord-style permission toggles). */
|
||||
const PERMISSION_META = [
|
||||
{
|
||||
flag: PERMISSION.VIEW_CHANNEL,
|
||||
key: 'viewChannel',
|
||||
label: 'View channel',
|
||||
description: 'See the channel in the sidebar and read message history'
|
||||
},
|
||||
{
|
||||
flag: PERMISSION.SEND_MESSAGES,
|
||||
key: 'sendMessages',
|
||||
@@ -87,6 +94,7 @@ function maskHasPermission (mask, perm) {
|
||||
|
||||
function maskToPermissionView (mask) {
|
||||
return {
|
||||
viewChannel: maskHasPermission(mask, PERMISSION.VIEW_CHANNEL),
|
||||
sendMessages: maskHasPermission(mask, PERMISSION.SEND_MESSAGES),
|
||||
connectVoice: maskHasPermission(mask, PERMISSION.CONNECT_VOICE),
|
||||
speakInVoice: maskHasPermission(mask, PERMISSION.SPEAK_IN_VOICE),
|
||||
@@ -100,6 +108,7 @@ function maskToPermissionView (mask) {
|
||||
|
||||
function viewToMask (view = {}) {
|
||||
let mask = 0
|
||||
if (view.viewChannel) mask |= PERMISSION.VIEW_CHANNEL
|
||||
if (view.sendMessages) mask |= PERMISSION.SEND_MESSAGES
|
||||
if (view.connectVoice) mask |= PERMISSION.CONNECT_VOICE
|
||||
if (view.speakInVoice) mask |= PERMISSION.SPEAK_IN_VOICE
|
||||
|
||||
Reference in New Issue
Block a user