Files
CRM_Montzar/apps/api/src/conversations/conversations-permissions.ts
T

26 lines
828 B
TypeScript
Raw Normal View History

import type { RolePermissionKey, UserRole } from '@mento/shared';
import { sanitizePermissions } from '../org-roles/role-defaults';
export type ConversationAccess = {
canUse: boolean;
canCreateGroup: boolean;
2026-09-30 11:08:33 +03:30
canCreateChannel: boolean;
};
export function resolveConversationAccess(
membershipRole: UserRole | string,
orgRolePermissions: unknown,
): ConversationAccess {
if (membershipRole === 'owner' || membershipRole === 'admin') {
2026-09-30 11:08:33 +03:30
return { canUse: true, canCreateGroup: true, canCreateChannel: true };
}
const permissions = sanitizePermissions(orgRolePermissions) as RolePermissionKey[];
2026-09-30 11:08:33 +03:30
const canUse = permissions.includes('conversations');
const canCreateGroup = permissions.includes('conversations_groups');
return {
2026-09-30 11:08:33 +03:30
canUse,
canCreateGroup,
canCreateChannel: canCreateGroup,
};
}