mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import {
|
|
PROJECT_ADMIN_ROLE_SLUG,
|
|
PROJECT_EDITOR_ROLE_SLUG,
|
|
PROJECT_OWNER_ROLE_SLUG,
|
|
PROJECT_VIEWER_ROLE_SLUG,
|
|
} from '../constants.ee';
|
|
import {
|
|
CREDENTIALS_SHARING_SCOPE_MAP,
|
|
GLOBAL_SCOPE_MAP,
|
|
PROJECT_SCOPE_MAP,
|
|
WORKFLOW_SHARING_SCOPE_MAP,
|
|
} from './role-maps.ee';
|
|
import type { AllRolesMap, AllRoleTypes, Scope } from '../types.ee';
|
|
import { getRoleScopes } from '../utilities/get-role-scopes.ee';
|
|
|
|
const ROLE_NAMES: Record<AllRoleTypes, string> = {
|
|
'global:owner': 'Owner',
|
|
'global:admin': 'Admin',
|
|
'global:member': 'Member',
|
|
[PROJECT_OWNER_ROLE_SLUG]: 'Project Owner',
|
|
[PROJECT_ADMIN_ROLE_SLUG]: 'Project Admin',
|
|
[PROJECT_EDITOR_ROLE_SLUG]: 'Project Editor',
|
|
[PROJECT_VIEWER_ROLE_SLUG]: 'Project Viewer',
|
|
'credential:user': 'Credential User',
|
|
'credential:owner': 'Credential Owner',
|
|
'workflow:owner': 'Workflow Owner',
|
|
'workflow:editor': 'Workflow Editor',
|
|
};
|
|
|
|
const mapToRoleObject = <T extends keyof typeof ROLE_NAMES>(roles: Record<T, Scope[]>) =>
|
|
(Object.keys(roles) as T[]).map((role) => ({
|
|
role,
|
|
name: ROLE_NAMES[role],
|
|
scopes: getRoleScopes(role),
|
|
description: ROLE_NAMES[role],
|
|
licensed: false,
|
|
}));
|
|
|
|
export const ALL_ROLES: AllRolesMap = {
|
|
global: mapToRoleObject(GLOBAL_SCOPE_MAP),
|
|
project: mapToRoleObject(PROJECT_SCOPE_MAP),
|
|
credential: mapToRoleObject(CREDENTIALS_SHARING_SCOPE_MAP),
|
|
workflow: mapToRoleObject(WORKFLOW_SHARING_SCOPE_MAP),
|
|
};
|