unleash-server 6.2.0 → 6.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/features/project/can-grant-project-role.d.ts +4 -0
- package/dist/lib/features/project/can-grant-project-role.d.ts.map +1 -0
- package/dist/lib/features/project/can-grant-project-role.js +17 -0
- package/dist/lib/features/project/can-grant-project-role.js.map +1 -0
- package/dist/lib/features/project/can-grant-project-role.test.d.ts +2 -0
- package/dist/lib/features/project/can-grant-project-role.test.d.ts.map +1 -0
- package/dist/lib/features/project/can-grant-project-role.test.js +111 -0
- package/dist/lib/features/project/can-grant-project-role.test.js.map +1 -0
- package/dist/lib/features/project/project-service.d.ts.map +1 -1
- package/dist/lib/features/project/project-service.e2e.test.js +31 -29
- package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-service.js +13 -1
- package/dist/lib/features/project/project-service.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.d.ts +1 -0
- package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +8 -1
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +1 -0
- package/dist/lib/types/experimental.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-CRj3J15M.js → AdvancedPlayground-C-dAyAx-.js} +1 -1
- package/frontend/build/static/{CreateProject-CoMWBmMC.js → CreateProject-B4Jpedfs.js} +1 -1
- package/frontend/build/static/{FeatureMetricsChart-CJrrWMue.js → FeatureMetricsChart-CfRbEeZY.js} +1 -1
- package/frontend/build/static/{FeatureStaleDialog-Yc2Yc4V5.js → FeatureStaleDialog-DX_vqibC.js} +1 -1
- package/frontend/build/static/{FeatureViewLazyExport-CCemx_kk.js → FeatureViewLazyExport--kJx8txU.js} +2 -2
- package/frontend/build/static/{LazyAdminExport-C8Z5ig95.js → LazyAdminExport-DY3JyvJM.js} +2 -2
- package/frontend/build/static/{LazyProjectExport-Dooc4t2t.js → LazyProjectExport-COo-ZbGx.js} +2 -2
- package/frontend/build/static/{LineChartComponent-BxkVmXGQ.js → LineChartComponent-Bh-DtN3E.js} +1 -1
- package/frontend/build/static/{NetworkOverview-DakM348r.js → NetworkOverview-DiYdB1sN.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-CfqRQOHm.js → NetworkTraffic-BIfuZ2W8.js} +1 -1
- package/frontend/build/static/{NetworkTrafficUsage-BnIFfNNJ.js → NetworkTrafficUsage-Cl1H-fhz.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-z4lldZFR.js → ReactJSONEditor-DlCBXnpp.js} +1 -1
- package/frontend/build/static/{RoleCell-BLQYE7NO.js → RoleCell-CyUjGKex.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-0nEHrvdC.js → StrategyItemContainer-C2s-CIiO.js} +1 -1
- package/frontend/build/static/{index-C5Z6aehP.js → index-BkkVRgMF.js} +8 -8
- package/frontend/build/static/{index-DhEaCpkq.js → index-CFvoUqKv.js} +1 -1
- package/frontend/build/static/{unknownify-CLPkLMVA.js → unknownify-B5EW5GrF.js} +1 -1
- package/frontend/build/static/{useApiTokens-DfEYjYPV.js → useApiTokens-BQFDjDJi.js} +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IPermission } from '../../types';
|
|
2
|
+
import type { IUserPermission } from '../../types/stores/access-store';
|
|
3
|
+
export declare const canGrantProjectRole: (granterPermissions: IUserPermission[], receiverPermissions: IPermission[]) => boolean;
|
|
4
|
+
//# sourceMappingURL=can-grant-project-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-grant-project-role.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/can-grant-project-role.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,eAAO,MAAM,mBAAmB,uBACR,eAAe,EAAE,uBAChB,WAAW,EAAE,YAerC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canGrantProjectRole = void 0;
|
|
4
|
+
const canGrantProjectRole = (granterPermissions, receiverPermissions) => {
|
|
5
|
+
return receiverPermissions.every((receiverPermission) => {
|
|
6
|
+
return granterPermissions.some((granterPermission) => {
|
|
7
|
+
if (granterPermission.environment) {
|
|
8
|
+
return (granterPermission.permission === receiverPermission.name &&
|
|
9
|
+
granterPermission.environment ===
|
|
10
|
+
receiverPermission.environment);
|
|
11
|
+
}
|
|
12
|
+
return granterPermission.permission === receiverPermission.name;
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
exports.canGrantProjectRole = canGrantProjectRole;
|
|
17
|
+
//# sourceMappingURL=can-grant-project-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-grant-project-role.js","sourceRoot":"","sources":["../../../../src/lib/features/project/can-grant-project-role.ts"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,GAAG,CAC/B,kBAAqC,EACrC,mBAAkC,EACpC,EAAE;IACA,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,EAAE;QACpD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE;YACjD,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;gBAChC,OAAO,CACH,iBAAiB,CAAC,UAAU,KAAK,kBAAkB,CAAC,IAAI;oBACxD,iBAAiB,CAAC,WAAW;wBACzB,kBAAkB,CAAC,WAAW,CACrC,CAAC;YACN,CAAC;YAED,OAAO,iBAAiB,CAAC,UAAU,KAAK,kBAAkB,CAAC,IAAI,CAAC;QACpE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAjBW,QAAA,mBAAmB,uBAiB9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-grant-project-role.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/can-grant-project-role.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const can_grant_project_role_1 = require("./can-grant-project-role");
|
|
4
|
+
describe('canGrantProjectRole', () => {
|
|
5
|
+
test('should return true if the granter has all the permissions the receiver needs', () => {
|
|
6
|
+
const granterPermissions = [
|
|
7
|
+
{
|
|
8
|
+
project: 'test',
|
|
9
|
+
environment: undefined,
|
|
10
|
+
permission: 'CREATE_FEATURE',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
project: 'test',
|
|
14
|
+
environment: 'production',
|
|
15
|
+
permission: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
project: 'test',
|
|
19
|
+
environment: 'production',
|
|
20
|
+
permission: 'APPROVE_CHANGE_REQUEST',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
const receiverPermissions = [
|
|
24
|
+
{
|
|
25
|
+
id: 28,
|
|
26
|
+
name: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
27
|
+
environment: 'production',
|
|
28
|
+
displayName: 'Enable/disable flags',
|
|
29
|
+
type: 'environment',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 29,
|
|
33
|
+
name: 'APPROVE_CHANGE_REQUEST',
|
|
34
|
+
environment: 'production',
|
|
35
|
+
displayName: 'Enable/disable flags',
|
|
36
|
+
type: 'environment',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
(0, can_grant_project_role_1.canGrantProjectRole)(granterPermissions, receiverPermissions);
|
|
40
|
+
});
|
|
41
|
+
test('should return false if the granter and receiver permissions have different environments', () => {
|
|
42
|
+
const granterPermissions = [
|
|
43
|
+
{
|
|
44
|
+
project: 'test',
|
|
45
|
+
environment: 'production',
|
|
46
|
+
permission: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
project: 'test',
|
|
50
|
+
environment: 'production',
|
|
51
|
+
permission: 'APPROVE_CHANGE_REQUEST',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
const receiverPermissions = [
|
|
55
|
+
{
|
|
56
|
+
id: 28,
|
|
57
|
+
name: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
58
|
+
environment: 'development',
|
|
59
|
+
displayName: 'Enable/disable flags',
|
|
60
|
+
type: 'environment',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 29,
|
|
64
|
+
name: 'APPROVE_CHANGE_REQUEST',
|
|
65
|
+
environment: 'development',
|
|
66
|
+
displayName: 'Enable/disable flags',
|
|
67
|
+
type: 'environment',
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
expect((0, can_grant_project_role_1.canGrantProjectRole)(granterPermissions, receiverPermissions)).toBeFalsy();
|
|
71
|
+
});
|
|
72
|
+
test('should return false if the granter does not have all receiver permissions', () => {
|
|
73
|
+
const granterPermissions = [
|
|
74
|
+
{
|
|
75
|
+
project: 'test',
|
|
76
|
+
environment: 'production',
|
|
77
|
+
permission: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
project: 'test',
|
|
81
|
+
environment: 'production',
|
|
82
|
+
permission: 'APPROVE_CHANGE_REQUEST',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
const receiverPermissions = [
|
|
86
|
+
{
|
|
87
|
+
id: 28,
|
|
88
|
+
name: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
89
|
+
environment: 'production',
|
|
90
|
+
displayName: 'Enable/disable flags',
|
|
91
|
+
type: 'environment',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: 29,
|
|
95
|
+
name: 'APPROVE_CHANGE_REQUEST',
|
|
96
|
+
environment: 'production',
|
|
97
|
+
displayName: 'Enable/disable flags',
|
|
98
|
+
type: 'environment',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 26,
|
|
102
|
+
name: 'UPDATE_FEATURE_STRATEGY',
|
|
103
|
+
environment: 'production',
|
|
104
|
+
displayName: 'Update activation strategies',
|
|
105
|
+
type: 'environment',
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
expect((0, can_grant_project_role_1.canGrantProjectRole)(granterPermissions, receiverPermissions)).toBeFalsy();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
//# sourceMappingURL=can-grant-project-role.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-grant-project-role.test.js","sourceRoot":"","sources":["../../../../src/lib/features/project/can-grant-project-role.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EAClB,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAGH,KAAK,aAAa,EAElB,KAAK,aAAa,EAQlB,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAErB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAOnB,KAAK,cAAc,EAetB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACR,mBAAmB,EACnB,eAAe,EAElB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,oBAAoB,MAAM,0CAA0C,CAAC;AAIjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKzE,OAAO,KAAK,EACR,wBAAwB,EAE3B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EACR,gCAAgC,EAChC,gCAAgC,EAChC,aAAa,EAChB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"project-service.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -567,7 +567,7 @@ describe('Managing Project access', () => {
|
|
|
567
567
|
await accessService.addUserToRole(projectUser.id, customRole.id, project.id);
|
|
568
568
|
await expect(projectService.addAccess(project.id, [customRole.id], [secondGroup.id], [], auditUser)).resolves.not.toThrow(new error_1.InvalidOperationError('User tried to assign a role they did not have access to'));
|
|
569
569
|
});
|
|
570
|
-
test('Users can not assign roles they do not
|
|
570
|
+
test('Users can not assign roles where they do not hold the same permissions', async () => {
|
|
571
571
|
const project = {
|
|
572
572
|
id: 'user_fail_assign_to_user',
|
|
573
573
|
name: 'user_fail_assign_to_user',
|
|
@@ -575,46 +575,48 @@ describe('Managing Project access', () => {
|
|
|
575
575
|
mode: 'open',
|
|
576
576
|
defaultStickiness: 'clientId',
|
|
577
577
|
};
|
|
578
|
+
const auditUser = (0, util_1.extractAuditInfoFromUser)(user);
|
|
578
579
|
await projectService.createProject(project, user, auditUser);
|
|
579
580
|
const projectUser = await stores.userStore.insert({
|
|
580
581
|
name: 'Some project user',
|
|
581
582
|
email: 'fail_assign_role_to_user@example.com',
|
|
582
583
|
});
|
|
583
|
-
const projectAuditUser = (0, util_1.extractAuditInfoFromUser)(projectUser);
|
|
584
584
|
const secondUser = await stores.userStore.insert({
|
|
585
585
|
name: 'Some other user',
|
|
586
586
|
email: 'otheruser_no_roles@example.com',
|
|
587
587
|
});
|
|
588
|
-
const
|
|
589
|
-
name: '
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
588
|
+
const customRoleUserAccess = await accessService.createRole({
|
|
589
|
+
name: 'Project-permissions-lead',
|
|
590
|
+
description: 'Role',
|
|
591
|
+
permissions: [
|
|
592
|
+
{
|
|
593
|
+
name: 'PROJECT_USER_ACCESS_WRITE',
|
|
594
|
+
},
|
|
595
|
+
],
|
|
596
|
+
createdByUserId: types_1.SYSTEM_USER_ID,
|
|
597
|
+
}, types_1.SYSTEM_USER_AUDIT);
|
|
598
|
+
const customRoleUpdateEnvironments = await accessService.createRole({
|
|
599
|
+
name: 'Project Lead',
|
|
600
|
+
description: 'Role',
|
|
601
|
+
permissions: [
|
|
602
|
+
{
|
|
603
|
+
name: 'UPDATE_FEATURE_ENVIRONMENT',
|
|
604
|
+
environment: 'production',
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
name: 'CREATE_FEATURE_STRATEGY',
|
|
608
|
+
environment: 'production',
|
|
609
|
+
},
|
|
610
|
+
],
|
|
611
|
+
createdByUserId: types_1.SYSTEM_USER_ID,
|
|
612
|
+
}, types_1.SYSTEM_USER_AUDIT);
|
|
613
|
+
await projectService.setRolesForUser(project.id, projectUser.id, [customRoleUserAccess.id], auditUser);
|
|
614
|
+
const auditProjectUser = (0, util_1.extractAuditInfoFromUser)(projectUser);
|
|
615
|
+
await expect(projectService.setRolesForUser(project.id, secondUser.id, [customRoleUpdateEnvironments.id], auditProjectUser)).rejects.toThrow(new error_1.InvalidOperationError('User tried to assign a role they did not have access to'));
|
|
609
616
|
const group = await stores.groupStore.create({
|
|
610
617
|
name: 'Some group_awaiting_role',
|
|
611
618
|
});
|
|
612
|
-
|
|
613
|
-
name: 'role_that_noone_has_fail_assign_group',
|
|
614
|
-
roleType: 'custom',
|
|
615
|
-
description: 'Used to prove that you can not assign a role you do not have via setRolesForGroup',
|
|
616
|
-
});
|
|
617
|
-
return expect(projectService.setRolesForGroup(project.id, group.id, [customRole.id], projectAuditUser)).rejects.toThrow(new error_1.InvalidOperationError('User tried to assign a role they did not have access to'));
|
|
619
|
+
await expect(projectService.setRolesForGroup(project.id, group.id, [customRoleUpdateEnvironments.id], auditProjectUser)).rejects.toThrow(new error_1.InvalidOperationError('User tried to assign a role they did not have access to'));
|
|
618
620
|
});
|
|
619
621
|
});
|
|
620
622
|
test('should add admin users to the project', async () => {
|