22 lines
695 B
TypeScript
22 lines
695 B
TypeScript
import type { RolePermissionKey, UserRole } from '@mento/shared';
|
|||
|
|
import { sanitizePermissions } from '../org-roles/role-defaults';
|
||
|
|
|
||
|
|
export type ConversationAccess = {
|
||
|
|
canUse: boolean;
|
||
|
|
canCreateGroup: boolean;
|
||
|
|
};
|
||
|
|
|
||
|
|
export function resolveConversationAccess(
|
||
|
|
membershipRole: UserRole | string,
|
||
|
|
orgRolePermissions: unknown,
|
||
|
|
): ConversationAccess {
|
||
|
|
if (membershipRole === 'owner' || membershipRole === 'admin') {
|
||
|
|
return { canUse: true, canCreateGroup: true };
|
||
|
|
}
|
||
|
|
const permissions = sanitizePermissions(orgRolePermissions) as RolePermissionKey[];
|
||
|
|
return {
|
||
|
|
canUse: permissions.includes('conversations'),
|
||
|
|
canCreateGroup: permissions.includes('conversations_groups'),
|
||
|
|
};
|
||
|
|
}
|