RoleService Service
File: src/services/RoleService.ts
Overview
Exports
- Permission - enum export
- PERMISSION_CATEGORIES - const export
- PERMISSION_BITS - const export
- permissionsToBitmask - function export
- bitmaskToPermissions - function export
- PERMISSION_DESCRIPTIONS - const export
- ServerRole - interface export
- UserRole - interface export
- ChannelPermissionOverride - interface export
- CreateRoleParams - interface export
- UpdateRoleParams - interface export
- roleService - const export
Functions
permissionsToBitmask(permissions: Record<Permission, boolean> | Partial<Record<Permission, boolean>>)
No description available.
Parameters:
permissions: Record<Permission, boolean> | Partial<Record<Permission, boolean>>
Returns: bigint
typescript
/**
* Convert permissions object to bigint bitmask for database storage
*/
export function permissionsToBitmask(permissions: Record<Permission, boolean> | Partial<Record<Permission, boolean>>): bigintbitmaskToPermissions(bitmask: bigint | number | string)
No description available.
Parameters:
bitmask: bigint | number | string
Returns: Record<Permission, boolean>
typescript
/**
* Convert bigint bitmask from database to permissions object
*/
export function bitmaskToPermissions(bitmask: bigint | number | string): Record<Permission, boolean>Classes
RoleService
No description available.
Methods:
getServerRolescatchgetRolesForServergetRolecreateRoleupdateRoledeleteRolereorderRolesgetUserRoles_fetchUserRolesgetRoleMembersgetRoleMembersForServerassignRoleremoveRolegetUserPermissions_fetchUserPermissionshasPermissionhasPermissionsgetChannelOverridessetChannelOverridedeleteChannelOverridegetHighestRolegetUserColorcanManageUserclearCacheclearServerCache
Properties:
roleCacheuserRolesCachepermissionCacheOPTIMIZEDpendingUserRolesRequestspendingPermissionsRequestsOperationsserverforceRefreshsupabaseascendingerrorseparatelyroleIdsmemberCountsdata1rolespermissionsmember_countcompatibilityIDformatServerRolerolenullparamsmaxPositiondatabasepermissionsBitmask0server_idnamecolorhoistmentionablepositionicon_urlunicode_emojicachefrontendpresentdbParamscachesinvalidationfalsetruerolePositionsupdatesAssignmentsserverIdcacheKeyfirstrequestsfetchPromiseDBsortedRolesidusernamedisplay_nameavatar_urlprofilesmembersrole_idqueryassignmentsuserroleIduser_idNoteownerCalculationscalculationuserIdchannelIdp_user_idp_server_idp_channel_idpermissiononcerequiredPermissionsOverrideschanneloverridestargetTypetargetIdallowdenychannel_idtarget_typetarget_idonConflictoverrideMethodshoistedRolemanagerIdmanagerHighesttargetHighest
Interfaces
ServerRole
No description available.
typescript
interface ServerRole {
id: string
server_id: string
name: string
color: string
hoist: boolean
mentionable: boolean
position: number
permissions: Record<Permission, boolean>
icon_url?: string
unicode_emoji?: string
is_default?: boolean
is_admin?: boolean
member_count?: number
created_at: string
updated_at: string
ap_id?: string
federation_metadata?: Record<string, any>
}UserRole
No description available.
typescript
interface UserRole {
id: string
user_id: string
role_id: string
server_id: string
assigned_at: string
assigned_by?: string
}ChannelPermissionOverride
No description available.
typescript
interface ChannelPermissionOverride {
id: string
channel_id: string
target_type: 'role' | 'user'
target_id: string
allow: Record<Permission, boolean>
deny: Record<Permission, boolean>
created_at: string
updated_at: string
}CreateRoleParams
No description available.
typescript
interface CreateRoleParams {
server_id: string
name: string
color?: string
hoist?: boolean
mentionable?: boolean
permissions?: Partial<Record<Permission, boolean>>
icon_url?: string
unicode_emoji?: string
}UpdateRoleParams
No description available.
typescript
interface UpdateRoleParams {
name?: string
color?: string
hoist?: boolean
mentionable?: boolean
position?: number
permissions?: Record<Permission, boolean> | string[]
icon_url?: string
unicode_emoji?: string
}Constants
PERMISSION_CATEGORIES
No description available.
typescript
export const PERMISSION_CATEGORIES = {PERMISSION_BITS
No description available.
typescript
export const PERMISSION_BITS: Record<Permission, number> = {PERMISSION_DESCRIPTIONS
No description available.
typescript
export const PERMISSION_DESCRIPTIONS: Record<Permission, string> = {Source Code Insights
File Size: 29022 characters Lines of Code: 974 Imports: 2
Usage Example
typescript
import { Permission, PERMISSION_CATEGORIES, PERMISSION_BITS, permissionsToBitmask, bitmaskToPermissions, PERMISSION_DESCRIPTIONS, ServerRole, UserRole, ChannelPermissionOverride, CreateRoleParams, UpdateRoleParams, roleService } from '@/services/RoleService'
// Example usage
permissionsToBitmask()This documentation was automatically generated from the source code.
