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:
Raven Scott
2026-05-22 03:11:15 -04:00
co-authored by Cursor
parent 37fbe58356
commit b189d8df3f
+10 -1
View File
@@ -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