task-l.1
This commit is contained in:
@@ -11,6 +11,7 @@ export const BUSINESS_ROLES = [
|
||||
] as const;
|
||||
export const OWNERSHIP_SCOPES = ['own', 'team', 'organization', 'monitor'] as const;
|
||||
export const SCOPE_MODES = ['all', 'assigned'] as const;
|
||||
export const ROLE_ASSIGNMENT_SCOPE_MODES = ['all', 'selected', 'none', 'inherit'] as const;
|
||||
export const APPROVAL_AUTHORITIES = ['none', 'manager', 'department', 'final'] as const;
|
||||
|
||||
export type SystemRole = (typeof SYSTEM_ROLES)[number];
|
||||
@@ -18,6 +19,8 @@ export type MembershipRole = (typeof MEMBERSHIP_ROLES)[number];
|
||||
export type BusinessRole = string;
|
||||
export type CrmOwnershipScope = (typeof OWNERSHIP_SCOPES)[number];
|
||||
export type CrmScopeMode = (typeof SCOPE_MODES)[number];
|
||||
export type CrmRoleAssignmentScopeMode = (typeof ROLE_ASSIGNMENT_SCOPE_MODES)[number];
|
||||
export type CrmEffectiveScopeMode = 'all' | 'assigned' | 'none';
|
||||
export type CrmApprovalAuthority = (typeof APPROVAL_AUTHORITIES)[number];
|
||||
|
||||
export const PERMISSIONS = {
|
||||
@@ -91,6 +94,11 @@ export const PERMISSIONS = {
|
||||
crmRoleUpdate: 'crm.role.update',
|
||||
crmRoleDelete: 'crm.role.delete',
|
||||
crmRoleAssign: 'crm.role.assign',
|
||||
crmRoleAssignmentRead: 'crm.role.assignment.read',
|
||||
crmRoleAssignmentCreate: 'crm.role.assignment.create',
|
||||
crmRoleAssignmentUpdate: 'crm.role.assignment.update',
|
||||
crmRoleAssignmentDelete: 'crm.role.assignment.delete',
|
||||
crmRoleAssignmentManage: 'crm.role.assignment.manage',
|
||||
crmMasterOptionRead: 'crm.master_option.read',
|
||||
crmMasterOptionCreate: 'crm.master_option.create',
|
||||
crmMasterOptionUpdate: 'crm.master_option.update',
|
||||
@@ -249,6 +257,7 @@ const DEFAULT_ROLE_DEFINITIONS: Record<string, Omit<CrmRoleProfileDefinition, 'c
|
||||
PERMISSIONS.crmApprovalReturn,
|
||||
PERMISSIONS.crmDashboardRead,
|
||||
PERMISSIONS.crmDashboardExport,
|
||||
PERMISSIONS.crmRoleAssignmentRead,
|
||||
PERMISSIONS.crmDocumentArtifactRead,
|
||||
PERMISSIONS.crmDocumentArtifactDownload,
|
||||
PERMISSIONS.crmQuotationDocumentPreview,
|
||||
@@ -280,6 +289,7 @@ const DEFAULT_ROLE_DEFINITIONS: Record<string, Omit<CrmRoleProfileDefinition, 'c
|
||||
PERMISSIONS.crmApprovalReturn,
|
||||
PERMISSIONS.crmDashboardRead,
|
||||
PERMISSIONS.crmDashboardExport,
|
||||
PERMISSIONS.crmRoleAssignmentRead,
|
||||
PERMISSIONS.crmDocumentArtifactRead,
|
||||
PERMISSIONS.crmDocumentArtifactDownload,
|
||||
PERMISSIONS.crmQuotationDocumentPreview,
|
||||
@@ -311,6 +321,7 @@ const DEFAULT_ROLE_DEFINITIONS: Record<string, Omit<CrmRoleProfileDefinition, 'c
|
||||
PERMISSIONS.crmApprovalReturn,
|
||||
PERMISSIONS.crmDashboardRead,
|
||||
PERMISSIONS.crmDashboardExport,
|
||||
PERMISSIONS.crmRoleAssignmentRead,
|
||||
PERMISSIONS.crmDocumentArtifactRead,
|
||||
PERMISSIONS.crmDocumentArtifactDownload,
|
||||
PERMISSIONS.crmQuotationDocumentPreview,
|
||||
@@ -333,6 +344,11 @@ const DEFAULT_ROLE_DEFINITIONS: Record<string, Omit<CrmRoleProfileDefinition, 'c
|
||||
PERMISSIONS.crmRoleUpdate,
|
||||
PERMISSIONS.crmRoleDelete,
|
||||
PERMISSIONS.crmRoleAssign,
|
||||
PERMISSIONS.crmRoleAssignmentRead,
|
||||
PERMISSIONS.crmRoleAssignmentCreate,
|
||||
PERMISSIONS.crmRoleAssignmentUpdate,
|
||||
PERMISSIONS.crmRoleAssignmentDelete,
|
||||
PERMISSIONS.crmRoleAssignmentManage,
|
||||
PERMISSIONS.crmMasterOptionRead,
|
||||
PERMISSIONS.crmMasterOptionCreate,
|
||||
PERMISSIONS.crmMasterOptionUpdate,
|
||||
@@ -438,6 +454,11 @@ export const CRM_PERMISSION_GROUPS: PermissionGroup[] = [
|
||||
{ key: PERMISSIONS.crmRoleUpdate, label: 'Update roles' },
|
||||
{ key: PERMISSIONS.crmRoleDelete, label: 'Delete roles' },
|
||||
{ key: PERMISSIONS.crmRoleAssign, label: 'Assign role scopes' },
|
||||
{ key: PERMISSIONS.crmRoleAssignmentRead, label: 'Read user role assignments' },
|
||||
{ key: PERMISSIONS.crmRoleAssignmentCreate, label: 'Create user role assignments' },
|
||||
{ key: PERMISSIONS.crmRoleAssignmentUpdate, label: 'Update user role assignments' },
|
||||
{ key: PERMISSIONS.crmRoleAssignmentDelete, label: 'Delete user role assignments' },
|
||||
{ key: PERMISSIONS.crmRoleAssignmentManage, label: 'Manage user role assignments' },
|
||||
{ key: PERMISSIONS.crmMasterOptionRead, label: 'Read master options' },
|
||||
{ key: PERMISSIONS.crmMasterOptionCreate, label: 'Create master options' },
|
||||
{ key: PERMISSIONS.crmMasterOptionUpdate, label: 'Update master options' },
|
||||
@@ -473,7 +494,7 @@ export const CRM_PERMISSION_GROUPS: PermissionGroup[] = [
|
||||
|
||||
export const ALL_PERMISSIONS = Object.values(PERMISSIONS) as Permission[];
|
||||
|
||||
function getMembershipBasePermissions(role: MembershipRole): Permission[] {
|
||||
export function getMembershipBasePermissions(role: MembershipRole): Permission[] {
|
||||
if (role === 'admin') {
|
||||
return [
|
||||
PERMISSIONS.productsRead,
|
||||
@@ -569,6 +590,10 @@ export function isScopeMode(value: string): value is CrmScopeMode {
|
||||
return SCOPE_MODES.includes(value as CrmScopeMode);
|
||||
}
|
||||
|
||||
export function isRoleAssignmentScopeMode(value: string): value is CrmRoleAssignmentScopeMode {
|
||||
return ROLE_ASSIGNMENT_SCOPE_MODES.includes(value as CrmRoleAssignmentScopeMode);
|
||||
}
|
||||
|
||||
export function isApprovalAuthority(value: string): value is CrmApprovalAuthority {
|
||||
return APPROVAL_AUTHORITIES.includes(value as CrmApprovalAuthority);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user