mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
Hiding notifiers if not admin or owner in organization.
This commit is contained in:
@@ -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,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user