@nu-art/permissions-frontend 0.500.0 → 0.500.6

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.
Files changed (144) hide show
  1. package/_entity/access-group/ModuleFE_AccessGroup.d.ts +12 -0
  2. package/_entity/access-group/ModuleFE_AccessGroup.js +15 -0
  3. package/_entity/access-group/module-pack.d.ts +1 -0
  4. package/_entity/access-group/module-pack.js +2 -0
  5. package/_entity/permission-scope/ModuleFE_PermissionScope.d.ts +12 -0
  6. package/_entity/permission-scope/ModuleFE_PermissionScope.js +15 -0
  7. package/_entity/permission-scope/module-pack.d.ts +1 -0
  8. package/_entity/permission-scope/module-pack.js +2 -0
  9. package/_entity/user-permissions/ModuleFE_UserPermissions.d.ts +16 -0
  10. package/_entity/{permission-user/ModuleFE_PermissionUser.js → user-permissions/ModuleFE_UserPermissions.js} +33 -17
  11. package/_entity/user-permissions/module-pack.d.ts +1 -0
  12. package/_entity/user-permissions/module-pack.js +2 -0
  13. package/consts.d.ts +1 -2
  14. package/consts.js +0 -1
  15. package/core/module-pack.js +6 -7
  16. package/index.d.ts +13 -4
  17. package/index.js +13 -4
  18. package/modules/ModuleFE_PermissionsAssert.d.ts +4 -26
  19. package/modules/ModuleFE_PermissionsAssert.js +14 -112
  20. package/package.json +20 -19
  21. package/ui/Page_Permissions/Page_Permissions.d.ts +2 -0
  22. package/ui/Page_Permissions/Page_Permissions.js +186 -0
  23. package/ui/Page_Permissions/Page_Permissions.scss +217 -0
  24. package/ui/Page_Permissions/route.d.ts +2 -0
  25. package/ui/Page_Permissions/route.js +6 -0
  26. package/ui/PermissionGuard.d.ts +19 -0
  27. package/ui/PermissionGuard.js +16 -0
  28. package/ui/scope-editor/Component_ScopeLabels.d.ts +6 -0
  29. package/ui/scope-editor/Component_ScopeLabels.js +12 -0
  30. package/ui/scope-editor/Component_ScopeMultiSelect.d.ts +26 -0
  31. package/ui/scope-editor/Component_ScopeMultiSelect.js +109 -0
  32. package/ui/scope-editor/Component_ScopeMultiSelect.scss +151 -0
  33. package/ui/scope-editor/scope-utils.d.ts +7 -0
  34. package/ui/scope-editor/scope-utils.js +38 -0
  35. package/PermissionKey_FE.d.ts +0 -25
  36. package/PermissionKey_FE.js +0 -26
  37. package/_entity/permission-access-level/ModuleFE_PermissionAccessLevel.d.ts +0 -12
  38. package/_entity/permission-access-level/ModuleFE_PermissionAccessLevel.js +0 -15
  39. package/_entity/permission-access-level/index.d.ts +0 -2
  40. package/_entity/permission-access-level/index.js +0 -2
  41. package/_entity/permission-access-level/module-pack.d.ts +0 -1
  42. package/_entity/permission-access-level/module-pack.js +0 -2
  43. package/_entity/permission-access-level/shared.d.ts +0 -1
  44. package/_entity/permission-access-level/shared.js +0 -1
  45. package/_entity/permission-access-level/ui-components.d.ts +0 -5
  46. package/_entity/permission-access-level/ui-components.js +0 -20
  47. package/_entity/permission-api/ModuleFE_PermissionAPI.d.ts +0 -12
  48. package/_entity/permission-api/ModuleFE_PermissionAPI.js +0 -15
  49. package/_entity/permission-api/index.d.ts +0 -2
  50. package/_entity/permission-api/index.js +0 -2
  51. package/_entity/permission-api/module-pack.d.ts +0 -1
  52. package/_entity/permission-api/module-pack.js +0 -2
  53. package/_entity/permission-api/shared.d.ts +0 -1
  54. package/_entity/permission-api/shared.js +0 -1
  55. package/_entity/permission-api/ui-components.d.ts +0 -5
  56. package/_entity/permission-api/ui-components.js +0 -21
  57. package/_entity/permission-domain/ModuleFE_PermissionDomain.d.ts +0 -12
  58. package/_entity/permission-domain/ModuleFE_PermissionDomain.js +0 -15
  59. package/_entity/permission-domain/index.d.ts +0 -2
  60. package/_entity/permission-domain/index.js +0 -2
  61. package/_entity/permission-domain/module-pack.d.ts +0 -1
  62. package/_entity/permission-domain/module-pack.js +0 -2
  63. package/_entity/permission-domain/shared.d.ts +0 -1
  64. package/_entity/permission-domain/shared.js +0 -1
  65. package/_entity/permission-domain/ui-components.d.ts +0 -5
  66. package/_entity/permission-domain/ui-components.js +0 -20
  67. package/_entity/permission-group/ModuleFE_PermissionGroup.d.ts +0 -12
  68. package/_entity/permission-group/ModuleFE_PermissionGroup.js +0 -15
  69. package/_entity/permission-group/index.d.ts +0 -2
  70. package/_entity/permission-group/index.js +0 -2
  71. package/_entity/permission-group/module-pack.d.ts +0 -1
  72. package/_entity/permission-group/module-pack.js +0 -2
  73. package/_entity/permission-group/shared.d.ts +0 -1
  74. package/_entity/permission-group/shared.js +0 -1
  75. package/_entity/permission-group/ui-components.d.ts +0 -5
  76. package/_entity/permission-group/ui-components.js +0 -20
  77. package/_entity/permission-project/ModuleFE_PermissionProject.d.ts +0 -12
  78. package/_entity/permission-project/ModuleFE_PermissionProject.js +0 -15
  79. package/_entity/permission-project/index.d.ts +0 -2
  80. package/_entity/permission-project/index.js +0 -2
  81. package/_entity/permission-project/module-pack.d.ts +0 -1
  82. package/_entity/permission-project/module-pack.js +0 -2
  83. package/_entity/permission-project/shared.d.ts +0 -1
  84. package/_entity/permission-project/shared.js +0 -1
  85. package/_entity/permission-project/ui-components.d.ts +0 -5
  86. package/_entity/permission-project/ui-components.js +0 -20
  87. package/_entity/permission-user/ModuleFE_PermissionUser.d.ts +0 -13
  88. package/_entity/permission-user/index.d.ts +0 -2
  89. package/_entity/permission-user/index.js +0 -2
  90. package/_entity/permission-user/module-pack.d.ts +0 -1
  91. package/_entity/permission-user/module-pack.js +0 -2
  92. package/_entity/permission-user/shared.d.ts +0 -1
  93. package/_entity/permission-user/shared.js +0 -1
  94. package/_entity/permission-user/ui-components.d.ts +0 -5
  95. package/_entity/permission-user/ui-components.js +0 -35
  96. package/_entity.d.ts +0 -6
  97. package/_entity.js +0 -12
  98. package/core/permission-keys.d.ts +0 -4
  99. package/core/permission-keys.js +0 -5
  100. package/permissions-wire.d.ts +0 -12
  101. package/permissions-wire.js +0 -18
  102. package/shared.d.ts +0 -1
  103. package/shared.js +0 -19
  104. package/ui/ATS_ComponentPermissionKeys/ATS_ComponentPermissionKeys.d.ts +0 -12
  105. package/ui/ATS_ComponentPermissionKeys/ATS_ComponentPermissionKeys.js +0 -22
  106. package/ui/ATS_ComponentPermissionKeys/permission-keys-editor.scss +0 -153
  107. package/ui/ATS_ComponentPermissionKeys/subEditors/Component_AccessLevelsEditor.d.ts +0 -16
  108. package/ui/ATS_ComponentPermissionKeys/subEditors/Component_AccessLevelsEditor.js +0 -38
  109. package/ui/ATS_ComponentPermissionKeys/subEditors/permission-keys-editor.d.ts +0 -16
  110. package/ui/ATS_ComponentPermissionKeys/subEditors/permission-keys-editor.js +0 -34
  111. package/ui/ATS_Permissions/ATS_Permissions.d.ts +0 -9
  112. package/ui/ATS_Permissions/ATS_Permissions.js +0 -67
  113. package/ui/ATS_Permissions/ATS_Permissions.scss +0 -172
  114. package/ui/Component_SwitchView.d.ts +0 -23
  115. package/ui/Component_SwitchView.js +0 -29
  116. package/ui/Component_SwitchViewV2.d.ts +0 -21
  117. package/ui/Component_SwitchViewV2.js +0 -23
  118. package/ui/PermissionsComponent.d.ts +0 -17
  119. package/ui/PermissionsComponent.js +0 -29
  120. package/ui/PermissionsEditableComponent.d.ts +0 -18
  121. package/ui/PermissionsEditableComponent.js +0 -21
  122. package/ui/Renderer_RoleNames.d.ts +0 -1
  123. package/ui/Renderer_RoleNames.js +0 -7
  124. package/ui/index.d.ts +0 -8
  125. package/ui/index.js +0 -8
  126. package/ui/permission-editors/components.d.ts +0 -6
  127. package/ui/permission-editors/components.js +0 -9
  128. package/ui/permission-editors/editor-base.d.ts +0 -17
  129. package/ui/permission-editors/editor-base.js +0 -17
  130. package/ui/permission-editors/editor-base.scss +0 -298
  131. package/ui/permission-editors/permission-api-edior/permission-api-editor.d.ts +0 -17
  132. package/ui/permission-editors/permission-api-edior/permission-api-editor.js +0 -61
  133. package/ui/permission-editors/permission-api-edior/permission-api-editor.scss +0 -7
  134. package/ui/permission-editors/permission-domains-editor.d.ts +0 -10
  135. package/ui/permission-editors/permission-domains-editor.js +0 -137
  136. package/ui/permission-editors/permission-groups-editor.d.ts +0 -10
  137. package/ui/permission-editors/permission-groups-editor.js +0 -78
  138. package/ui/permission-editors/permission-project-editor/permission-project-editor.scss +0 -10
  139. package/ui/permission-editors/permission-project-editor/permission-projects-editor.d.ts +0 -11
  140. package/ui/permission-editors/permission-project-editor/permission-projects-editor.js +0 -50
  141. package/ui/permission-editors/permission-users-editor.d.ts +0 -10
  142. package/ui/permission-editors/permission-users-editor.js +0 -46
  143. package/ui/ui-props.d.ts +0 -8
  144. package/ui/ui-props.js +0 -62
@@ -0,0 +1,12 @@
1
+ import { ModuleFE_BaseApi } from '@nu-art/db-api-frontend';
2
+ import { ApiCallerEventType } from '@nu-art/db-api-shared';
3
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
4
+ import { DatabaseDef_AccessGroup } from '@nu-art/permissions-shared';
5
+ export interface OnAccessGroupUpdated {
6
+ __onAccessGroupUpdated: (...params: ApiCallerEventType<DatabaseDef_AccessGroup['dbType']>) => void;
7
+ }
8
+ export declare const dispatch_onAccessGroupChanged: ThunderDispatcher<OnAccessGroupUpdated, "__onAccessGroupUpdated", ApiCallerEventType<import("@nu-art/permissions-shared").DB_AccessGroup>, void>;
9
+ export declare class ModuleFE_AccessGroup_Class extends ModuleFE_BaseApi<DatabaseDef_AccessGroup> {
10
+ constructor();
11
+ }
12
+ export declare const ModuleFE_AccessGroup: ModuleFE_AccessGroup_Class;
@@ -0,0 +1,15 @@
1
+ import { ModuleFE_BaseApi, buildConfigFromDBDef } from '@nu-art/db-api-frontend';
2
+ import { CrudApiDef } from '@nu-art/db-api-shared';
3
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
4
+ import { DBDef_AccessGroup } from '@nu-art/permissions-shared';
5
+ export const dispatch_onAccessGroupChanged = new ThunderDispatcher('__onAccessGroupUpdated');
6
+ export class ModuleFE_AccessGroup_Class extends ModuleFE_BaseApi {
7
+ constructor() {
8
+ super({
9
+ config: buildConfigFromDBDef(DBDef_AccessGroup),
10
+ crudApiDef: CrudApiDef(DBDef_AccessGroup.dbKey),
11
+ dispatcher: (...args) => dispatch_onAccessGroupChanged.dispatchAll(...args)
12
+ });
13
+ }
14
+ }
15
+ export const ModuleFE_AccessGroup = new ModuleFE_AccessGroup_Class();
@@ -0,0 +1 @@
1
+ export declare const ModulePackFE_AccessGroup: import("./ModuleFE_AccessGroup.js").ModuleFE_AccessGroup_Class[];
@@ -0,0 +1,2 @@
1
+ import { ModuleFE_AccessGroup } from './ModuleFE_AccessGroup.js';
2
+ export const ModulePackFE_AccessGroup = [ModuleFE_AccessGroup];
@@ -0,0 +1,12 @@
1
+ import { ModuleFE_BaseApi } from '@nu-art/db-api-frontend';
2
+ import { ApiCallerEventType } from '@nu-art/db-api-shared';
3
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
4
+ import { DatabaseDef_PermissionScope } from '@nu-art/permissions-shared';
5
+ export interface OnPermissionScopeUpdated {
6
+ __onPermissionScopeUpdated: (...params: ApiCallerEventType<DatabaseDef_PermissionScope['dbType']>) => void;
7
+ }
8
+ export declare const dispatch_onPermissionScopeChanged: ThunderDispatcher<OnPermissionScopeUpdated, "__onPermissionScopeUpdated", ApiCallerEventType<import("@nu-art/permissions-shared").DB_PermissionScope>, void>;
9
+ export declare class ModuleFE_PermissionScope_Class extends ModuleFE_BaseApi<DatabaseDef_PermissionScope> {
10
+ constructor();
11
+ }
12
+ export declare const ModuleFE_PermissionScope: ModuleFE_PermissionScope_Class;
@@ -0,0 +1,15 @@
1
+ import { ModuleFE_BaseApi, buildConfigFromDBDef } from '@nu-art/db-api-frontend';
2
+ import { CrudApiDef } from '@nu-art/db-api-shared';
3
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
4
+ import { DBDef_PermissionScope } from '@nu-art/permissions-shared';
5
+ export const dispatch_onPermissionScopeChanged = new ThunderDispatcher('__onPermissionScopeUpdated');
6
+ export class ModuleFE_PermissionScope_Class extends ModuleFE_BaseApi {
7
+ constructor() {
8
+ super({
9
+ config: buildConfigFromDBDef(DBDef_PermissionScope),
10
+ crudApiDef: CrudApiDef(DBDef_PermissionScope.dbKey),
11
+ dispatcher: (...args) => dispatch_onPermissionScopeChanged.dispatchAll(...args)
12
+ });
13
+ }
14
+ }
15
+ export const ModuleFE_PermissionScope = new ModuleFE_PermissionScope_Class();
@@ -0,0 +1 @@
1
+ export declare const ModulePackFE_PermissionScope: import("./ModuleFE_PermissionScope.js").ModuleFE_PermissionScope_Class[];
@@ -0,0 +1,2 @@
1
+ import { ModuleFE_PermissionScope } from './ModuleFE_PermissionScope.js';
2
+ export const ModulePackFE_PermissionScope = [ModuleFE_PermissionScope];
@@ -0,0 +1,16 @@
1
+ import { ModuleFE_BaseApi } from '@nu-art/db-api-frontend';
2
+ import { ApiCallerEventType } from '@nu-art/db-api-shared';
3
+ import { ThunderDispatcher } from '@nu-art/thunder-core';
4
+ import { API_UserPermissions, DatabaseDef_UserPermissions, Response_MyPermissions } from '@nu-art/permissions-shared';
5
+ export interface OnUserPermissionsUpdated {
6
+ __onUserPermissionsUpdated: (...params: ApiCallerEventType<DatabaseDef_UserPermissions['dbType']>) => void;
7
+ }
8
+ export declare const dispatch_onUserPermissionsChanged: ThunderDispatcher<OnUserPermissionsUpdated, "__onUserPermissionsUpdated", ApiCallerEventType<import("@nu-art/permissions-shared").DB_UserPermissions>, void>;
9
+ export declare class ModuleFE_UserPermissions_Class extends ModuleFE_BaseApi<DatabaseDef_UserPermissions> {
10
+ private myPermissions;
11
+ constructor();
12
+ fetchMyPermissions(_params?: API_UserPermissions['getMyPermissions']['Params']): Promise<Response_MyPermissions>;
13
+ private onMyPermissionsFetched;
14
+ getScopeEntries(): string[];
15
+ }
16
+ export declare const ModuleFE_UserPermissions: ModuleFE_UserPermissions_Class;
@@ -32,36 +32,52 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
32
32
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
33
  done = true;
34
34
  };
35
+ import { buildConfigFromDBDef, ModuleFE_BaseApi } from '@nu-art/db-api-frontend';
36
+ import { CrudApiDef, stringToUniqueId } from '@nu-art/db-api-shared';
35
37
  import { ApiCaller } from '@nu-art/http-client';
36
- import { ModuleFE_BaseApi, buildConfigFromDBDef } from '@nu-art/db-api-frontend';
37
- import { CrudApiDef } from '@nu-art/db-api-shared';
38
38
  import { ThunderDispatcher } from '@nu-art/thunder-core';
39
- import { ApiDef_PermissionUser, DBDef_PermissionUser } from '@nu-art/permissions-shared';
40
- export const dispatch_onPermissionUserChanged = new ThunderDispatcher('__onPermissionUserUpdated');
41
- let ModuleFE_PermissionUser_Class = (() => {
39
+ import { ApiDef_UserPermissions, DBDef_UserPermissions, } from '@nu-art/permissions-shared';
40
+ import { SessionKeyFE_Account } from '@nu-art/user-account-frontend';
41
+ export const dispatch_onUserPermissionsChanged = new ThunderDispatcher('__onUserPermissionsUpdated');
42
+ let ModuleFE_UserPermissions_Class = (() => {
42
43
  let _classSuper = ModuleFE_BaseApi;
43
44
  let _instanceExtraInitializers = [];
44
- let _assignPermissions_decorators;
45
- return class ModuleFE_PermissionUser_Class extends _classSuper {
45
+ let _fetchMyPermissions_decorators;
46
+ return class ModuleFE_UserPermissions_Class extends _classSuper {
46
47
  static {
47
48
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
48
- _assignPermissions_decorators = [ApiCaller(ApiDef_PermissionUser.assignPermissions)];
49
- __esDecorate(this, null, _assignPermissions_decorators, { kind: "method", name: "assignPermissions", static: false, private: false, access: { has: obj => "assignPermissions" in obj, get: obj => obj.assignPermissions }, metadata: _metadata }, null, _instanceExtraInitializers);
49
+ _fetchMyPermissions_decorators = [ApiCaller(ApiDef_UserPermissions.getMyPermissions, {
50
+ onComplete: (m, ctx) => m.onMyPermissionsFetched(ctx.response),
51
+ })];
52
+ __esDecorate(this, null, _fetchMyPermissions_decorators, { kind: "method", name: "fetchMyPermissions", static: false, private: false, access: { has: obj => "fetchMyPermissions" in obj, get: obj => obj.fetchMyPermissions }, metadata: _metadata }, null, _instanceExtraInitializers);
50
53
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
51
54
  }
55
+ myPermissions = (__runInitializers(this, _instanceExtraInitializers), []);
52
56
  constructor() {
53
57
  super({
54
- config: buildConfigFromDBDef(DBDef_PermissionUser),
55
- crudApiDef: CrudApiDef(DBDef_PermissionUser.dbKey),
56
- dispatcher: (...args) => dispatch_onPermissionUserChanged.dispatchAll(...args)
58
+ config: buildConfigFromDBDef(DBDef_UserPermissions),
59
+ crudApiDef: CrudApiDef(DBDef_UserPermissions.dbKey),
60
+ dispatcher: (...args) => dispatch_onUserPermissionsChanged.dispatchAll(...args),
57
61
  });
58
- __runInitializers(this, _instanceExtraInitializers);
59
62
  }
60
- async assignPermissions(body) {
61
- void body;
63
+ async fetchMyPermissions(_params) {
64
+ void _params;
62
65
  return undefined;
63
66
  }
67
+ onMyPermissionsFetched(response) {
68
+ this.myPermissions = response.scopeEntries;
69
+ }
70
+ getScopeEntries() {
71
+ const account = SessionKeyFE_Account.get();
72
+ if (!account)
73
+ return this.myPermissions;
74
+ const entityId = stringToUniqueId(account._id);
75
+ const cached = this.cache.unique(entityId);
76
+ if (cached)
77
+ return cached.scopeEntries;
78
+ return this.myPermissions;
79
+ }
64
80
  };
65
81
  })();
66
- export { ModuleFE_PermissionUser_Class };
67
- export const ModuleFE_PermissionUser = new ModuleFE_PermissionUser_Class();
82
+ export { ModuleFE_UserPermissions_Class };
83
+ export const ModuleFE_UserPermissions = new ModuleFE_UserPermissions_Class();
@@ -0,0 +1 @@
1
+ export declare const ModulePackFE_UserPermissions: import("./ModuleFE_UserPermissions.js").ModuleFE_UserPermissions_Class[];
@@ -0,0 +1,2 @@
1
+ import { ModuleFE_UserPermissions } from './ModuleFE_UserPermissions.js';
2
+ export const ModulePackFE_UserPermissions = [ModuleFE_UserPermissions];
package/consts.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { SessionData_Permissions, SessionData_StrictMode } from '@nu-art/permissions-shared';
1
+ import { SessionData_StrictMode } from '@nu-art/permissions-shared';
2
2
  import { SessionKey_FE } from '@nu-art/user-account-frontend';
3
- export declare const SessionKey_Permissions_FE: SessionKey_FE<SessionData_Permissions>;
4
3
  export declare const SessionKey_StrictMode_FE: SessionKey_FE<SessionData_StrictMode>;
package/consts.js CHANGED
@@ -1,3 +1,2 @@
1
1
  import { SessionKey_FE } from '@nu-art/user-account-frontend';
2
- export const SessionKey_Permissions_FE = new SessionKey_FE('permissions');
3
2
  export const SessionKey_StrictMode_FE = new SessionKey_FE('strictMode');
@@ -17,13 +17,12 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import { ModuleFE_PermissionsAssert } from '../modules/ModuleFE_PermissionsAssert.js';
20
- import { ModulePackFE_PermissionAccessLevel, ModulePackFE_PermissionAPI, ModulePackFE_PermissionDomain, ModulePackFE_PermissionGroup, ModulePackFE_PermissionProject, ModulePackFE_PermissionUser } from '../_entity.js';
20
+ import { ModulePackFE_PermissionScope } from '../_entity/permission-scope/module-pack.js';
21
+ import { ModulePackFE_UserPermissions } from '../_entity/user-permissions/module-pack.js';
22
+ import { ModulePackFE_AccessGroup } from '../_entity/access-group/module-pack.js';
21
23
  export const ModulePackFE_Permissions = [
22
24
  ModuleFE_PermissionsAssert,
23
- ...ModulePackFE_PermissionAccessLevel,
24
- ...ModulePackFE_PermissionAPI,
25
- ...ModulePackFE_PermissionProject,
26
- ...ModulePackFE_PermissionDomain,
27
- ...ModulePackFE_PermissionGroup,
28
- ...ModulePackFE_PermissionUser,
25
+ ...ModulePackFE_PermissionScope,
26
+ ...ModulePackFE_UserPermissions,
27
+ ...ModulePackFE_AccessGroup,
29
28
  ];
package/index.d.ts CHANGED
@@ -1,6 +1,15 @@
1
- export * from './PermissionKey_FE.js';
2
- export * from './permissions-wire.js';
3
1
  export * from './core/module-pack.js';
4
- export * from './ui/index.js';
2
+ export * from './ui/Page_Permissions/Page_Permissions.js';
3
+ export * from './ui/Page_Permissions/route.js';
4
+ export * from './ui/scope-editor/Component_ScopeLabels.js';
5
+ export * from './ui/scope-editor/Component_ScopeMultiSelect.js';
6
+ export * from './ui/scope-editor/scope-utils.js';
7
+ export * from './ui/PermissionGuard.js';
5
8
  export * from './consts.js';
6
- export * from './_entity.js';
9
+ export * from './_entity/permission-scope/ModuleFE_PermissionScope.js';
10
+ export * from './_entity/permission-scope/module-pack.js';
11
+ export * from './_entity/user-permissions/ModuleFE_UserPermissions.js';
12
+ export * from './_entity/user-permissions/module-pack.js';
13
+ export * from './_entity/access-group/ModuleFE_AccessGroup.js';
14
+ export * from './_entity/access-group/module-pack.js';
15
+ export * from './modules/ModuleFE_PermissionsAssert.js';
package/index.js CHANGED
@@ -16,9 +16,18 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- export * from './PermissionKey_FE.js';
20
- export * from './permissions-wire.js';
21
19
  export * from './core/module-pack.js';
22
- export * from './ui/index.js';
20
+ export * from './ui/Page_Permissions/Page_Permissions.js';
21
+ export * from './ui/Page_Permissions/route.js';
22
+ export * from './ui/scope-editor/Component_ScopeLabels.js';
23
+ export * from './ui/scope-editor/Component_ScopeMultiSelect.js';
24
+ export * from './ui/scope-editor/scope-utils.js';
25
+ export * from './ui/PermissionGuard.js';
23
26
  export * from './consts.js';
24
- export * from './_entity.js';
27
+ export * from './_entity/permission-scope/ModuleFE_PermissionScope.js';
28
+ export * from './_entity/permission-scope/module-pack.js';
29
+ export * from './_entity/user-permissions/ModuleFE_UserPermissions.js';
30
+ export * from './_entity/user-permissions/module-pack.js';
31
+ export * from './_entity/access-group/ModuleFE_AccessGroup.js';
32
+ export * from './_entity/access-group/module-pack.js';
33
+ export * from './modules/ModuleFE_PermissionsAssert.js';
@@ -1,31 +1,9 @@
1
- import { Module, TypedMap } from '@nu-art/ts-common';
2
- import { PermissionKey_FE } from '../PermissionKey_FE.js';
3
- import { API_Permissions } from '@nu-art/permissions-shared';
4
- export type PermissionsModuleFEConfig = {
5
- projectId: string;
6
- };
1
+ import { Module } from '@nu-art/ts-common';
2
+ import type { PermissionScope } from '@nu-art/permissions-shared';
7
3
  export interface OnPermissionsChanged {
8
4
  __onPermissionsChanged: () => void;
9
5
  }
10
- export interface OnPermissionsFailed {
11
- __onPermissionsFailed: () => void;
12
- }
13
- export declare enum AccessLevel {
14
- Undefined = 0,
15
- NoAccessLevelsDefined = 1,
16
- NoAccess = 2,
17
- HasAccess = 3
18
- }
19
- export declare class ModuleFE_PermissionsAssert_Class extends Module<PermissionsModuleFEConfig> {
20
- permissionKeys: TypedMap<PermissionKey_FE<any>>;
21
- constructor();
22
- toggleStrictMode(_params?: API_Permissions['toggleStrictMode']['Params']): Promise<API_Permissions['toggleStrictMode']['Response']>;
23
- createProject(_params?: API_Permissions['createProject']['Params']): Promise<API_Permissions['createProject']['Response']>;
24
- protected init(): void;
25
- getAccessLevelByKeyString(key: string): AccessLevel;
26
- getAccessLevel(key: PermissionKey_FE): AccessLevel;
27
- getPermissionKey(key: string): PermissionKey_FE;
28
- registerPermissionKey(key: PermissionKey_FE): void;
29
- getAllPermissionKeys(): TypedMap<PermissionKey_FE<any>>;
6
+ export declare class ModuleFE_PermissionsAssert_Class extends Module {
7
+ hasScopeAccess(scope: PermissionScope, requiredValue: string): boolean;
30
8
  }
31
9
  export declare const ModuleFE_PermissionsAssert: ModuleFE_PermissionsAssert_Class;
@@ -16,117 +16,19 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
20
- var useValue = arguments.length > 2;
21
- for (var i = 0; i < initializers.length; i++) {
22
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
19
+ import { Module } from '@nu-art/ts-common';
20
+ import { ModuleFE_UserPermissions } from '../_entity/user-permissions/ModuleFE_UserPermissions.js';
21
+ export class ModuleFE_PermissionsAssert_Class extends Module {
22
+ hasScopeAccess(scope, requiredValue) {
23
+ const scopeEntries = ModuleFE_UserPermissions.getScopeEntries();
24
+ const prefix = scope.key + ':';
25
+ const entry = scopeEntries.find(p => p.startsWith(prefix));
26
+ if (!entry)
27
+ return false;
28
+ const userValue = entry.substring(prefix.length);
29
+ const requiredIdx = scope.values.indexOf(requiredValue);
30
+ const userIdx = scope.values.indexOf(userValue);
31
+ return userIdx >= requiredIdx;
23
32
  }
24
- return useValue ? value : void 0;
25
- };
26
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
27
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
28
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
29
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
30
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
31
- var _, done = false;
32
- for (var i = decorators.length - 1; i >= 0; i--) {
33
- var context = {};
34
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
35
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
36
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
37
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
38
- if (kind === "accessor") {
39
- if (result === void 0) continue;
40
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
41
- if (_ = accept(result.get)) descriptor.get = _;
42
- if (_ = accept(result.set)) descriptor.set = _;
43
- if (_ = accept(result.init)) initializers.unshift(_);
44
- }
45
- else if (_ = accept(result)) {
46
- if (kind === "field") initializers.unshift(_);
47
- else descriptor[key] = _;
48
- }
49
- }
50
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
51
- done = true;
52
- };
53
- import { BadImplementationException, exists, Module } from '@nu-art/ts-common';
54
- import { ApiCaller } from '@nu-art/http-client';
55
- import { SessionKey_Permissions_FE, SessionKey_StrictMode_FE } from '../consts.js';
56
- import { RendererKey_AccountMenu_SubHeader } from '@nu-art/user-account-frontend/consts';
57
- import { Renderer_RoleNames } from '../ui/Renderer_RoleNames.js';
58
- import { ApiDef_Permissions } from '@nu-art/permissions-shared';
59
- import { getRendererRegistry } from '../permissions-wire.js';
60
- export var AccessLevel;
61
- (function (AccessLevel) {
62
- AccessLevel[AccessLevel["Undefined"] = 0] = "Undefined";
63
- AccessLevel[AccessLevel["NoAccessLevelsDefined"] = 1] = "NoAccessLevelsDefined";
64
- AccessLevel[AccessLevel["NoAccess"] = 2] = "NoAccess";
65
- AccessLevel[AccessLevel["HasAccess"] = 3] = "HasAccess";
66
- })(AccessLevel || (AccessLevel = {}));
67
- let ModuleFE_PermissionsAssert_Class = (() => {
68
- let _classSuper = Module;
69
- let _instanceExtraInitializers = [];
70
- let _toggleStrictMode_decorators;
71
- let _createProject_decorators;
72
- return class ModuleFE_PermissionsAssert_Class extends _classSuper {
73
- static {
74
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
75
- _toggleStrictMode_decorators = [ApiCaller(ApiDef_Permissions.toggleStrictMode)];
76
- _createProject_decorators = [ApiCaller(ApiDef_Permissions.createProject)];
77
- __esDecorate(this, null, _toggleStrictMode_decorators, { kind: "method", name: "toggleStrictMode", static: false, private: false, access: { has: obj => "toggleStrictMode" in obj, get: obj => obj.toggleStrictMode }, metadata: _metadata }, null, _instanceExtraInitializers);
78
- __esDecorate(this, null, _createProject_decorators, { kind: "method", name: "createProject", static: false, private: false, access: { has: obj => "createProject" in obj, get: obj => obj.createProject }, metadata: _metadata }, null, _instanceExtraInitializers);
79
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
80
- }
81
- permissionKeys = (__runInitializers(this, _instanceExtraInitializers), {});
82
- constructor() {
83
- super();
84
- }
85
- async toggleStrictMode(_params) {
86
- void _params;
87
- return undefined;
88
- }
89
- async createProject(_params) {
90
- void _params;
91
- return undefined;
92
- }
93
- init() {
94
- super.init();
95
- getRendererRegistry()?.registerRenderer(RendererKey_AccountMenu_SubHeader, Renderer_RoleNames);
96
- }
97
- getAccessLevelByKeyString(key) {
98
- return this.getAccessLevel(this.getPermissionKey(key));
99
- }
100
- getAccessLevel(key) {
101
- const keyData = key.get();
102
- if (!exists(keyData))
103
- return SessionKey_StrictMode_FE.get() ? AccessLevel.Undefined : AccessLevel.HasAccess;
104
- if (keyData.accessLevelIds.length === 0)
105
- return AccessLevel.NoAccessLevelsDefined;
106
- const userAccessLevels = SessionKey_Permissions_FE.get().domainToValueMap;
107
- const accessLevels = keyData._accessLevels ?? {};
108
- try {
109
- const canAccess = Object.keys(accessLevels).reduce((hasAccess, domainId) => {
110
- return hasAccess && userAccessLevels[domainId] >= accessLevels[domainId];
111
- }, true);
112
- return canAccess ? AccessLevel.HasAccess : AccessLevel.NoAccess;
113
- }
114
- catch (e) {
115
- return AccessLevel.NoAccess;
116
- }
117
- }
118
- getPermissionKey(key) {
119
- return this.permissionKeys[key];
120
- }
121
- registerPermissionKey(key) {
122
- if (this.permissionKeys[key.key])
123
- throw new BadImplementationException(`Registered PermissionKey '${key}' more than once!`);
124
- this.permissionKeys[key.key] = key;
125
- }
126
- getAllPermissionKeys() {
127
- return this.permissionKeys;
128
- }
129
- };
130
- })();
131
- export { ModuleFE_PermissionsAssert_Class };
33
+ }
132
34
  export const ModuleFE_PermissionsAssert = new ModuleFE_PermissionsAssert_Class();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nu-art/permissions-frontend",
3
- "version": "0.500.0",
3
+ "version": "0.500.6",
4
4
  "description": "Permissions Frontend",
5
5
  "keywords": [
6
6
  "TacB0sS",
@@ -34,23 +34,24 @@
34
34
  "test": "ts-mocha -w -p src/test/tsconfig.json --timeout 0 --inspect=8107 --watch-files '**/*.ts' src/test/__all-tests.ts"
35
35
  },
36
36
  "dependencies": {
37
- "@nu-art/app-config-frontend": "0.500.0",
38
- "@nu-art/db-api-frontend": "0.500.0",
39
- "@nu-art/db-api-shared": "0.500.0",
40
- "@nu-art/permissions-shared": "0.500.0",
41
- "@nu-art/firebase-frontend": "0.500.0",
42
- "@nu-art/firebase-shared": "0.500.0",
43
- "@nu-art/thunder-core": "{{THUNDERSTORM_VERSION}}",
44
- "@nu-art/thunder-routing": "{{THUNDERSTORM_VERSION}}",
45
- "@nu-art/thunder-ui-modules": "{{THUNDERSTORM_VERSION}}",
46
- "@nu-art/thunder-notifications": "{{THUNDERSTORM_VERSION}}",
47
- "@nu-art/db-item-editor": "{{THUNDERSTORM_VERSION}}",
48
- "@nu-art/thunder-widgets": "{{THUNDERSTORM_VERSION}}",
49
- "@nu-art/editable-item": "{{THUNDERSTORM_VERSION}}",
50
- "@nu-art/ts-common": "0.500.0",
51
- "@nu-art/ts-styles": "0.500.0",
52
- "@nu-art/user-account-frontend": "0.500.0",
53
- "@nu-art/user-account-shared": "0.500.0",
37
+ "@nu-art/app-config-frontend": "0.500.6",
38
+ "@nu-art/db-api-frontend": "0.500.6",
39
+ "@nu-art/sync-manager-frontend": "0.500.6",
40
+ "@nu-art/db-api-shared": "0.500.6",
41
+ "@nu-art/permissions-shared": "0.500.6",
42
+ "@nu-art/firebase-frontend": "0.500.6",
43
+ "@nu-art/firebase-shared": "0.500.6",
44
+ "@nu-art/thunder-core": "0.500.6",
45
+ "@nu-art/thunder-routing": "0.500.6",
46
+ "@nu-art/thunder-ui-modules": "0.500.6",
47
+ "@nu-art/thunder-notifications": "0.500.6",
48
+ "@nu-art/db-item-editor": "0.500.6",
49
+ "@nu-art/thunder-widgets": "0.500.6",
50
+ "@nu-art/editable-item": "0.500.6",
51
+ "@nu-art/ts-common": "0.500.6",
52
+ "@nu-art/ts-styles": "0.500.6",
53
+ "@nu-art/user-account-frontend": "0.500.6",
54
+ "@nu-art/user-account-shared": "0.500.6",
54
55
  "express": "^4.18.2",
55
56
  "firebase": "^11.9.0",
56
57
  "firebase-admin": "13.4.0",
@@ -60,7 +61,7 @@
60
61
  "react-dom": "^18.0.0",
61
62
  "react-router-dom": "^6.9.0",
62
63
  "saml2-js": "^4.0.1",
63
- "@nu-art/http-client": "{{THUNDERSTORM_VERSION}}"
64
+ "@nu-art/http-client": "0.500.6"
64
65
  },
65
66
  "devDependencies": {
66
67
  "@types/react": "^18.0.0",
@@ -0,0 +1,2 @@
1
+ import './Page_Permissions.scss';
2
+ export declare const APage_Permissions: () => import("react/jsx-runtime").JSX.Element;