Hiding notifiers if not admin or owner in organization.

This commit is contained in:
charlesgauthereau
2025-12-08 09:57:17 +01:00
parent 0f9bbbda3c
commit 7410aaea38
4 changed files with 99 additions and 25 deletions
+37
View File
@@ -0,0 +1,37 @@
import {MemberWithUser} from "@/db/schema/03_organization";
export type OrganizationPermissions = {
role: string | null;
isOwner: boolean;
isAdmin: boolean;
isMember: boolean;
canManageSettings: boolean;
canManageUsers: boolean;
canManageNotifications: boolean;
canManageDangerZone: boolean;
};
export const computeOrganizationPermissions = (
activeMember: MemberWithUser | null
): OrganizationPermissions => {
const role = activeMember?.role ?? null;
const isOwner = role === "owner";
const isAdmin = role === "admin";
const isMember = role === "member";
return {
role,
isOwner,
isAdmin,
isMember,
canManageSettings: isOwner || isAdmin,
canManageUsers: isOwner || isAdmin,
canManageNotifications: isOwner || isAdmin,
canManageDangerZone: isOwner,
};
};