2024-08-13 06:45:28 -07:00
|
|
|
import type { PermissionsRecord } from '@/permissions';
|
|
|
|
import { getResourcePermissions } from '@/permissions';
|
|
|
|
import type { Scope } from '@n8n/permissions';
|
2022-09-28 01:26:20 -07:00
|
|
|
|
2024-05-17 01:53:15 -07:00
|
|
|
describe('permissions', () => {
|
2024-08-13 06:45:28 -07:00
|
|
|
it('getResourcePermissions for empty scopes', () => {
|
|
|
|
expect(getResourcePermissions()).toEqual({
|
|
|
|
auditLogs: {},
|
|
|
|
banner: {},
|
|
|
|
communityPackage: {},
|
|
|
|
credential: {},
|
|
|
|
externalSecretsProvider: {},
|
|
|
|
externalSecret: {},
|
|
|
|
eventBusDestination: {},
|
|
|
|
ldap: {},
|
|
|
|
license: {},
|
|
|
|
logStreaming: {},
|
|
|
|
orchestration: {},
|
|
|
|
project: {},
|
|
|
|
saml: {},
|
|
|
|
securityAudit: {},
|
|
|
|
sourceControl: {},
|
|
|
|
tag: {},
|
|
|
|
user: {},
|
|
|
|
variable: {},
|
|
|
|
workersView: {},
|
|
|
|
workflow: {},
|
2024-05-17 01:53:15 -07:00
|
|
|
});
|
2022-09-28 01:26:20 -07:00
|
|
|
});
|
2024-08-13 06:45:28 -07:00
|
|
|
it('getResourcePermissions', () => {
|
|
|
|
const scopes: Scope[] = [
|
|
|
|
'credential:create',
|
|
|
|
'credential:delete',
|
|
|
|
'credential:list',
|
|
|
|
'credential:move',
|
|
|
|
'credential:read',
|
|
|
|
'credential:share',
|
|
|
|
'credential:update',
|
|
|
|
'eventBusDestination:list',
|
|
|
|
'eventBusDestination:test',
|
|
|
|
'project:list',
|
|
|
|
'project:read',
|
|
|
|
'tag:create',
|
|
|
|
'tag:list',
|
|
|
|
'tag:read',
|
|
|
|
'tag:update',
|
|
|
|
'user:list',
|
|
|
|
'variable:list',
|
|
|
|
'variable:read',
|
|
|
|
'workflow:create',
|
|
|
|
'workflow:delete',
|
|
|
|
'workflow:execute',
|
|
|
|
'workflow:list',
|
|
|
|
'workflow:move',
|
|
|
|
'workflow:read',
|
|
|
|
'workflow:share',
|
|
|
|
'workflow:update',
|
|
|
|
];
|
2022-09-28 01:26:20 -07:00
|
|
|
|
2024-08-13 06:45:28 -07:00
|
|
|
const permissionRecord: PermissionsRecord = {
|
|
|
|
auditLogs: {},
|
|
|
|
banner: {},
|
|
|
|
communityPackage: {},
|
|
|
|
credential: {
|
|
|
|
create: true,
|
|
|
|
delete: true,
|
|
|
|
list: true,
|
|
|
|
move: true,
|
|
|
|
read: true,
|
|
|
|
share: true,
|
|
|
|
update: true,
|
|
|
|
},
|
|
|
|
eventBusDestination: {
|
|
|
|
list: true,
|
|
|
|
test: true,
|
|
|
|
},
|
|
|
|
externalSecret: {},
|
|
|
|
externalSecretsProvider: {},
|
|
|
|
ldap: {},
|
|
|
|
license: {},
|
|
|
|
logStreaming: {},
|
|
|
|
orchestration: {},
|
|
|
|
project: {
|
|
|
|
list: true,
|
|
|
|
read: true,
|
|
|
|
},
|
|
|
|
saml: {},
|
|
|
|
securityAudit: {},
|
|
|
|
sourceControl: {},
|
|
|
|
tag: {
|
|
|
|
create: true,
|
|
|
|
list: true,
|
|
|
|
read: true,
|
|
|
|
update: true,
|
|
|
|
},
|
|
|
|
user: {
|
|
|
|
list: true,
|
|
|
|
},
|
|
|
|
variable: {
|
|
|
|
list: true,
|
|
|
|
read: true,
|
|
|
|
},
|
|
|
|
workersView: {},
|
|
|
|
workflow: {
|
|
|
|
create: true,
|
|
|
|
delete: true,
|
|
|
|
execute: true,
|
|
|
|
list: true,
|
|
|
|
move: true,
|
|
|
|
read: true,
|
|
|
|
share: true,
|
|
|
|
update: true,
|
|
|
|
},
|
|
|
|
};
|
2023-11-23 03:22:47 -08:00
|
|
|
|
2024-08-13 06:45:28 -07:00
|
|
|
expect(getResourcePermissions(scopes)).toEqual(permissionRecord);
|
2023-11-23 03:22:47 -08:00
|
|
|
});
|
2022-09-28 01:26:20 -07:00
|
|
|
});
|