Compare commits

...

6 commits

Author SHA1 Message Date
307969ffe5 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>
2025-08-07 20:14:07 +00:00
62156a1049
Merge branch 'main' into permissions-management
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
ci/woodpecker/pr/build-and-publish Pipeline was successful
ci/woodpecker/pull_request_closed/build-and-publish Pipeline was successful
2025-08-07 22:12:47 +02:00
9fe067ec5a
Merge branch 'main' into permissions-management
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
ci/woodpecker/pr/build-and-publish Pipeline was successful
2025-08-07 06:39:37 +02:00
aecbcaefba
feat: add hasPermission util to check if a member has a specific permission
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
2025-08-07 06:32:04 +02:00
695bdbc777
feat: update GuildResponse and GuildMemberResponse interfaces to match backend 2025-08-07 06:31:44 +02:00
4dbe548efc
feat: create enums.ts file and add Permission enum 2025-08-07 06:31:15 +02:00
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,
icon: string | null,
owner_uuid: string,
roles: [],
roles: RoleResponse[],
member_count: number
}
export interface GuildMemberResponse {
uuid: string,
nickname: string,
user_uuid: string,
guild_uuid: string,
user: UserResponse
is_owner: boolean,
user: UserResponse,
roles: RoleResponse[]
}
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;
}