Files
fluxer/packages/constants/src/AdminACLs.ts
T

120 lines
4.9 KiB
TypeScript

// SPDX-License-Identifier: AGPL-3.0-or-later
export const AdminACLs = {
WILDCARD: '*',
ACL_SET_USER: 'acl:set:user',
ADMIN_API_KEY_MANAGE: 'admin_api_key:manage',
APPLICATION_LOOKUP: 'application:lookup',
APPLICATION_LIST_BY_OWNER: 'application:list:by_owner',
APPLICATION_TRANSFER_OWNERSHIP: 'application:transfer_ownership',
ARCHIVE_TRIGGER_GUILD: 'archive:trigger:guild',
ARCHIVE_TRIGGER_USER: 'archive:trigger:user',
ARCHIVE_VIEW_ALL: 'archive:view_all',
ASSET_PURGE: 'asset:purge',
AUDIT_LOG_VIEW: 'audit_log:view',
AUTHENTICATE: 'admin:authenticate',
JOBS_VIEW: 'jobs:view',
JOBS_CANCEL: 'jobs:cancel',
BAN_EMAIL_ADD: 'ban:email:add',
BAN_EMAIL_CHECK: 'ban:email:check',
BAN_EMAIL_REMOVE: 'ban:email:remove',
BAN_PHRASE_ADD: 'ban:phrase:add',
BAN_PHRASE_CHECK: 'ban:phrase:check',
BAN_PHRASE_REMOVE: 'ban:phrase:remove',
BAN_IP_ADD: 'ban:ip:add',
BAN_IP_CHECK: 'ban:ip:check',
BAN_IP_REMOVE: 'ban:ip:remove',
BAN_URL_ADD: 'ban:url:add',
BAN_URL_CHECK: 'ban:url:check',
BAN_URL_REMOVE: 'ban:url:remove',
BAN_URL_DOMAIN_ADD: 'ban:url_domain:add',
BAN_URL_DOMAIN_CHECK: 'ban:url_domain:check',
BAN_URL_DOMAIN_REMOVE: 'ban:url_domain:remove',
BAN_FILE_SHA_ADD: 'ban:file_sha:add',
BAN_FILE_SHA_CHECK: 'ban:file_sha:check',
BAN_FILE_SHA_REMOVE: 'ban:file_sha:remove',
BAN_AVATAR_HASH_ADD: 'ban:avatar_hash:add',
BAN_AVATAR_HASH_CHECK: 'ban:avatar_hash:check',
BAN_AVATAR_HASH_REMOVE: 'ban:avatar_hash:remove',
BAN_PROFILE_SUBSTRING_ADD: 'ban:profile_substring:add',
BAN_PROFILE_SUBSTRING_CHECK: 'ban:profile_substring:check',
BAN_PROFILE_SUBSTRING_REMOVE: 'ban:profile_substring:remove',
BULK_ADD_GUILD_MEMBERS: 'bulk:add:guild_members',
BULK_DELETE_USERS: 'bulk:delete:users',
BULK_DELETE_USER_MESSAGES: 'bulk:delete:user_messages',
BULK_UPDATE_GUILD_FEATURES: 'bulk:update:guild_features',
BULK_UPDATE_USER_FLAGS: 'bulk:update:user_flags',
DISCOVERY_REMOVE: 'discovery:remove',
DISCOVERY_REVIEW: 'discovery:review',
ENFORCEMENT_ANNOTATE: 'enforcement:annotate',
ENFORCEMENT_VIEW: 'enforcement:view',
GATEWAY_MEMORY_STATS: 'gateway:memory_stats',
GATEWAY_RELOAD_ALL: 'gateway:reload_all',
GIFT_CODES_GENERATE: 'gift_codes:generate',
GUILD_AUDIT_LOG_VIEW: 'guild:audit_log:view',
GUILD_BAN_MEMBER: 'guild:ban_member',
GUILD_DELETE: 'guild:delete',
GUILD_FORCE_ADD_MEMBER: 'guild:force_add_member',
GUILD_KICK_MEMBER: 'guild:kick_member',
GUILD_LIST_MEMBERS: 'guild:list:members',
GUILD_LOOKUP: 'guild:lookup',
GUILD_RELOAD: 'guild:reload',
GUILD_SHUTDOWN: 'guild:shutdown',
GUILD_TRANSFER_OWNERSHIP: 'guild:transfer_ownership',
GUILD_UPDATE_FEATURES: 'guild:update:features',
GUILD_UPDATE_NAME: 'guild:update:name',
GUILD_UPDATE_SETTINGS: 'guild:update:settings',
GUILD_UPDATE_VANITY: 'guild:update:vanity',
INSTANCE_CONFIG_UPDATE: 'instance:config:update',
INSTANCE_CONFIG_VIEW: 'instance:config:view',
INSTANCE_LIMIT_CONFIG_UPDATE: 'instance:limit_config:update',
INSTANCE_LIMIT_CONFIG_VIEW: 'instance:limit_config:view',
MESSAGE_DELETE_ALL: 'message:delete_all',
MESSAGE_DELETE: 'message:delete',
MESSAGE_LOOKUP: 'message:lookup',
MESSAGE_SHRED: 'message:shred',
REGISTRATION_REVIEW: 'registration:review',
REPORT_DELETE: 'report:delete',
REPORT_RESOLVE: 'report:resolve',
REPORT_VIEW: 'report:view',
REPORT_VIEW_REPORTER_PII: 'report:view:reporter_pii',
SYSTEM_DM_SEND: 'system_dm:send',
USER_CANCEL_BULK_MESSAGE_DELETION: 'user:cancel:bulk_message_deletion',
USER_CREATE_PASSWORD_RESET_LINK: 'user:create:password_reset_link',
USER_DELETE_RECOVERY_KIT: 'user:delete:recovery_kit',
USER_DELETE: 'user:delete',
USER_LIST_DM_CHANNELS: 'user:list:dm_channels',
USER_LIST_GUILDS: 'user:list:guilds',
USER_LIST_RELATIONSHIPS: 'user:list:relationships',
USER_LIST_SESSIONS: 'user:list:sessions',
USER_LOOKUP: 'user:lookup',
USER_REMOVE_RELATIONSHIP: 'user:remove:relationship',
USER_VIEW_CONTACT_LOG: 'user:view:contact_log',
USER_VIEW_DOB: 'user:view:dob',
USER_VIEW_EMAIL: 'user:view:email',
USER_VIEW_IP: 'user:view:ip',
USER_TEMP_BAN: 'user:temp_ban',
USER_UPDATE_BOT_STATUS: 'user:update:bot_status',
USER_UPDATE_DOB: 'user:update:dob',
USER_UPDATE_EMAIL: 'user:update:email',
USER_UPDATE_FLAGS: 'user:update:flags',
USER_UPDATE_MFA: 'user:update:mfa',
USER_UPDATE_PROFILE: 'user:update:profile',
USER_UPDATE_TRAITS: 'user:update:traits',
USER_UPDATE_USERNAME: 'user:update:username',
VOICE_REGION_CREATE: 'voice:region:create',
VOICE_REGION_DELETE: 'voice:region:delete',
VOICE_REGION_LIST: 'voice:region:list',
VOICE_REGION_UPDATE: 'voice:region:update',
VOICE_SERVER_CREATE: 'voice:server:create',
VOICE_SERVER_DELETE: 'voice:server:delete',
VOICE_SERVER_LIST: 'voice:server:list',
VOICE_SERVER_UPDATE: 'voice:server:update',
} as const;
const KNOWN_ADMIN_ACLS: ReadonlySet<string> = new Set(Object.values(AdminACLs));
export function filterKnownAdminACLs(acls: Iterable<string>): Array<string> {
return Array.from(acls).filter((acl) => KNOWN_ADMIN_ACLS.has(acl));
}