Merge pull request 'Implement method for checking member permissions' (#68) from permissions-management into main
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful

Reviewed-on: #68
Reviewed-by: Twig <git@beaver.mom>
This commit is contained in:
SauceyRed 2025-08-07 20:14:07 +00:00
commit 307969ffe5
3 changed files with 26 additions and 3 deletions

11
types/enums.ts Normal file
View file

@ -0,0 +1,11 @@
export const enum Permission {
SendMessage = 1,
ManageChannel = 2,
ManageRole = 4,
CreateInvite = 8,
ManageInvite = 16,
ManageGuild = 32,
ManageMember = 64,
BanMember = 128,
KickMember = 256
}

View file

@ -19,16 +19,17 @@ export interface GuildResponse {
description: string | null, description: string | null,
icon: string | null, icon: string | null,
owner_uuid: string, owner_uuid: string,
roles: [], roles: RoleResponse[],
member_count: number member_count: number
} }
export interface GuildMemberResponse { export interface GuildMemberResponse {
uuid: string, uuid: string,
nickname: string, nickname: string,
user_uuid: string,
guild_uuid: string, guild_uuid: string,
user: UserResponse is_owner: boolean,
user: UserResponse,
roles: RoleResponse[]
} }
export interface GuildMembersResponse { export interface GuildMembersResponse {

11
utils/hasPermission.ts Normal file
View file

@ -0,0 +1,11 @@
import type { Permission } from "~/types/enums";
import type { GuildMemberResponse } from "~/types/interfaces";
export default (member: GuildMemberResponse, permission: Permission) => {
for (const role of member.roles) {
if (role.permissions & permission) {
return true;
}
}
return false;
}