@esri/hub-common 11.23.2 → 12.0.0-alpha.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/esm/ArcGISContext.js +24 -1
- package/dist/esm/ArcGISContext.js.map +1 -1
- package/dist/esm/ArcGISContextManager.js +48 -0
- package/dist/esm/ArcGISContextManager.js.map +1 -1
- package/dist/esm/content/compose.js +12 -0
- package/dist/esm/content/compose.js.map +1 -1
- package/dist/esm/core/HubItemEntity.js +39 -57
- package/dist/esm/core/HubItemEntity.js.map +1 -1
- package/dist/esm/core/_internal/PropertyMapper.js +10 -2
- package/dist/esm/core/_internal/PropertyMapper.js.map +1 -1
- package/dist/esm/core/_internal/getBasePropertyMap.js +1 -0
- package/dist/esm/core/_internal/getBasePropertyMap.js.map +1 -1
- package/dist/esm/core/behaviors/IWithPermissionBehavior.js +0 -68
- package/dist/esm/core/behaviors/IWithPermissionBehavior.js.map +1 -1
- package/dist/esm/core/fetchHubEntity.js +28 -0
- package/dist/esm/core/fetchHubEntity.js.map +1 -0
- package/dist/esm/core/getTypeFromEntity.js +26 -0
- package/dist/esm/core/getTypeFromEntity.js.map +1 -0
- package/dist/esm/core/index.js +2 -1
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/types/HubEntity.js +1 -0
- package/dist/esm/core/types/HubEntity.js.map +1 -0
- package/dist/esm/core/types/HubEntityType.js +1 -0
- package/dist/esm/core/types/HubEntityType.js.map +1 -0
- package/dist/esm/core/types/ISystemStatus.js +21 -0
- package/dist/esm/core/types/ISystemStatus.js.map +1 -0
- package/dist/esm/core/types/index.js +3 -2
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiatives/HubInitiative.js +0 -13
- package/dist/esm/initiatives/HubInitiative.js.map +1 -1
- package/dist/esm/permissions/HubPermissionPolicies.js +18 -0
- package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -0
- package/dist/esm/permissions/_internal/checkAuthentication.js +24 -0
- package/dist/esm/permissions/_internal/checkAuthentication.js.map +1 -0
- package/dist/esm/permissions/_internal/checkEdit.js +35 -0
- package/dist/esm/permissions/_internal/checkEdit.js.map +1 -0
- package/dist/esm/permissions/_internal/checkEntityPolicy.js +56 -0
- package/dist/esm/permissions/_internal/checkEntityPolicy.js.map +1 -0
- package/dist/esm/permissions/_internal/checkLicense.js +27 -0
- package/dist/esm/permissions/_internal/checkLicense.js.map +1 -0
- package/dist/esm/permissions/_internal/checkOwner.js +36 -0
- package/dist/esm/permissions/_internal/checkOwner.js.map +1 -0
- package/dist/esm/permissions/_internal/checkPrivileges.js +27 -0
- package/dist/esm/permissions/_internal/checkPrivileges.js.map +1 -0
- package/dist/esm/permissions/_internal/getPolicyResponseCode.js +29 -0
- package/dist/esm/permissions/_internal/getPolicyResponseCode.js.map +1 -0
- package/dist/esm/permissions/checkPermission.js +88 -0
- package/dist/esm/permissions/checkPermission.js.map +1 -0
- package/dist/esm/permissions/index.js +5 -0
- package/dist/esm/permissions/index.js.map +1 -0
- package/dist/esm/permissions/types/HubLicense.js +1 -0
- package/dist/esm/permissions/types/HubLicense.js.map +1 -0
- package/dist/esm/permissions/types/IAccessResponse.js +1 -0
- package/dist/esm/permissions/types/IAccessResponse.js.map +1 -0
- package/dist/esm/permissions/types/IEntityPermissionPolicy.js +1 -0
- package/dist/esm/permissions/types/IEntityPermissionPolicy.js.map +1 -0
- package/dist/esm/permissions/types/IPermissionPolicy.js +1 -0
- package/dist/esm/permissions/types/IPermissionPolicy.js.map +1 -0
- package/dist/esm/permissions/types/IPolicyCheck.js +1 -0
- package/dist/esm/permissions/types/IPolicyCheck.js.map +1 -0
- package/dist/esm/permissions/types/Permission.js +24 -0
- package/dist/esm/permissions/types/Permission.js.map +1 -0
- package/dist/esm/permissions/types/PlatformPrivilege.js +5 -0
- package/dist/esm/permissions/types/PlatformPrivilege.js.map +1 -0
- package/dist/esm/permissions/types/PolicyResponse.js +4 -0
- package/dist/esm/permissions/types/PolicyResponse.js.map +1 -0
- package/dist/esm/permissions/types/index.js +9 -0
- package/dist/esm/permissions/types/index.js.map +1 -0
- package/dist/esm/permissions/utils.js +26 -0
- package/dist/esm/permissions/utils.js.map +1 -0
- package/dist/esm/projects/HubProject.js +0 -13
- package/dist/esm/projects/HubProject.js.map +1 -1
- package/dist/esm/projects/_internal/ProjectPermissionPolicies.js +35 -0
- package/dist/esm/projects/_internal/ProjectPermissionPolicies.js.map +1 -0
- package/dist/esm/search/Catalog.js.map +1 -1
- package/dist/esm/sites/HubSite.js +0 -13
- package/dist/esm/sites/HubSite.js.map +1 -1
- package/dist/esm/sites/_internal/SitesPermissionPolicies.js +34 -0
- package/dist/esm/sites/_internal/SitesPermissionPolicies.js.map +1 -0
- package/dist/node/ArcGISContext.js +28 -5
- package/dist/node/ArcGISContext.js.map +1 -1
- package/dist/node/ArcGISContextManager.js +48 -0
- package/dist/node/ArcGISContextManager.js.map +1 -1
- package/dist/node/content/compose.js +12 -0
- package/dist/node/content/compose.js.map +1 -1
- package/dist/node/core/HubItemEntity.js +38 -56
- package/dist/node/core/HubItemEntity.js.map +1 -1
- package/dist/node/core/_internal/PropertyMapper.js +9 -1
- package/dist/node/core/_internal/PropertyMapper.js.map +1 -1
- package/dist/node/core/_internal/getBasePropertyMap.js +1 -0
- package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -1
- package/dist/node/core/behaviors/IWithPermissionBehavior.js +0 -73
- package/dist/node/core/behaviors/IWithPermissionBehavior.js.map +1 -1
- package/dist/node/core/fetchHubEntity.js +32 -0
- package/dist/node/core/fetchHubEntity.js.map +1 -0
- package/dist/node/core/getTypeFromEntity.js +30 -0
- package/dist/node/core/getTypeFromEntity.js.map +1 -0
- package/dist/node/core/index.js +2 -1
- package/dist/node/core/index.js.map +1 -1
- package/dist/node/core/types/{IHubPermission.js → HubEntity.js} +1 -1
- package/dist/node/core/types/HubEntity.js.map +1 -0
- package/dist/node/core/types/HubEntityType.js +3 -0
- package/dist/node/core/types/HubEntityType.js.map +1 -0
- package/dist/node/core/types/ISystemStatus.js +25 -0
- package/dist/node/core/types/ISystemStatus.js.map +1 -0
- package/dist/node/core/types/index.js +3 -2
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiatives/HubInitiative.js +0 -13
- package/dist/node/initiatives/HubInitiative.js.map +1 -1
- package/dist/node/permissions/HubPermissionPolicies.js +22 -0
- package/dist/node/permissions/HubPermissionPolicies.js.map +1 -0
- package/dist/node/permissions/_internal/checkAuthentication.js +28 -0
- package/dist/node/permissions/_internal/checkAuthentication.js.map +1 -0
- package/dist/node/permissions/_internal/checkEdit.js +39 -0
- package/dist/node/permissions/_internal/checkEdit.js.map +1 -0
- package/dist/node/permissions/_internal/checkEntityPolicy.js +60 -0
- package/dist/node/permissions/_internal/checkEntityPolicy.js.map +1 -0
- package/dist/node/permissions/_internal/checkLicense.js +31 -0
- package/dist/node/permissions/_internal/checkLicense.js.map +1 -0
- package/dist/node/permissions/_internal/checkOwner.js +40 -0
- package/dist/node/permissions/_internal/checkOwner.js.map +1 -0
- package/dist/node/permissions/_internal/checkPrivileges.js +31 -0
- package/dist/node/permissions/_internal/checkPrivileges.js.map +1 -0
- package/dist/node/permissions/_internal/getPolicyResponseCode.js +33 -0
- package/dist/node/permissions/_internal/getPolicyResponseCode.js.map +1 -0
- package/dist/node/permissions/checkPermission.js +92 -0
- package/dist/node/permissions/checkPermission.js.map +1 -0
- package/dist/node/permissions/index.js +8 -0
- package/dist/node/permissions/index.js.map +1 -0
- package/dist/node/permissions/types/HubLicense.js +3 -0
- package/dist/node/permissions/types/HubLicense.js.map +1 -0
- package/dist/node/permissions/types/IAccessResponse.js +3 -0
- package/dist/node/permissions/types/IAccessResponse.js.map +1 -0
- package/dist/node/permissions/types/IEntityPermissionPolicy.js +3 -0
- package/dist/node/permissions/types/IEntityPermissionPolicy.js.map +1 -0
- package/dist/node/permissions/types/IPermissionPolicy.js +3 -0
- package/dist/node/permissions/types/IPermissionPolicy.js.map +1 -0
- package/dist/node/permissions/types/IPolicyCheck.js +3 -0
- package/dist/node/permissions/types/IPolicyCheck.js.map +1 -0
- package/dist/node/permissions/types/Permission.js +28 -0
- package/dist/node/permissions/types/Permission.js.map +1 -0
- package/dist/node/permissions/types/PlatformPrivilege.js +7 -0
- package/dist/node/permissions/types/PlatformPrivilege.js.map +1 -0
- package/dist/node/permissions/types/PolicyResponse.js +6 -0
- package/dist/node/permissions/types/PolicyResponse.js.map +1 -0
- package/dist/node/permissions/types/index.js +12 -0
- package/dist/node/permissions/types/index.js.map +1 -0
- package/dist/node/permissions/utils.js +31 -0
- package/dist/node/permissions/utils.js.map +1 -0
- package/dist/node/projects/HubProject.js +0 -13
- package/dist/node/projects/HubProject.js.map +1 -1
- package/dist/node/projects/_internal/ProjectPermissionPolicies.js +38 -0
- package/dist/node/projects/_internal/ProjectPermissionPolicies.js.map +1 -0
- package/dist/node/search/Catalog.js.map +1 -1
- package/dist/node/sites/HubSite.js +0 -13
- package/dist/node/sites/HubSite.js.map +1 -1
- package/dist/node/sites/_internal/SitesPermissionPolicies.js +37 -0
- package/dist/node/sites/_internal/SitesPermissionPolicies.js.map +1 -0
- package/dist/types/ArcGISContext.d.ts +23 -1
- package/dist/types/ArcGISContextManager.d.ts +6 -1
- package/dist/types/content/_internal.d.ts +15 -5
- package/dist/types/core/HubItemEntity.d.ts +29 -4
- package/dist/types/core/behaviors/IWithPermissionBehavior.d.ts +23 -35
- package/dist/types/core/behaviors/IWithStoreBehavior.d.ts +10 -10
- package/dist/types/core/fetchHubEntity.d.ts +11 -0
- package/dist/types/core/getTypeFromEntity.d.ts +8 -0
- package/dist/types/core/index.d.ts +2 -1
- package/dist/types/core/traits/IWithPermissions.d.ts +3 -3
- package/dist/types/core/types/HubEntity.d.ts +5 -0
- package/dist/types/core/types/HubEntityType.d.ts +1 -0
- package/dist/types/core/types/IHubContent.d.ts +2 -1
- package/dist/types/core/types/IHubItemEntity.d.ts +19 -2
- package/dist/types/core/types/ISystemStatus.d.ts +22 -0
- package/dist/types/core/types/index.d.ts +3 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/initiatives/HubInitiative.d.ts +1 -7
- package/dist/types/permissions/HubPermissionPolicies.d.ts +11 -0
- package/dist/types/permissions/_internal/checkAuthentication.d.ts +11 -0
- package/dist/types/permissions/_internal/checkEdit.d.ts +11 -0
- package/dist/types/permissions/_internal/checkEntityPolicy.d.ts +9 -0
- package/dist/types/permissions/_internal/checkLicense.d.ts +10 -0
- package/dist/types/permissions/_internal/checkOwner.d.ts +11 -0
- package/dist/types/permissions/_internal/checkPrivileges.d.ts +11 -0
- package/dist/types/permissions/_internal/getPolicyResponseCode.d.ts +7 -0
- package/dist/types/permissions/checkPermission.d.ts +11 -0
- package/dist/types/permissions/index.d.ts +4 -0
- package/dist/types/permissions/types/HubLicense.d.ts +4 -0
- package/dist/types/permissions/types/IAccessResponse.d.ts +29 -0
- package/dist/types/permissions/types/IEntityPermissionPolicy.d.ts +22 -0
- package/dist/types/permissions/types/IPermissionPolicy.d.ts +48 -0
- package/dist/types/permissions/types/IPolicyCheck.d.ts +25 -0
- package/dist/types/permissions/types/Permission.d.ts +17 -0
- package/dist/types/permissions/types/PlatformPrivilege.d.ts +5 -0
- package/dist/types/permissions/types/PolicyResponse.d.ts +4 -0
- package/dist/types/permissions/types/index.d.ts +8 -0
- package/dist/types/permissions/utils.d.ts +18 -0
- package/dist/types/projects/HubProject.d.ts +1 -7
- package/dist/types/projects/_internal/ProjectPermissionPolicies.d.ts +7 -0
- package/dist/types/sites/HubSite.d.ts +1 -7
- package/dist/types/sites/_internal/SitesPermissionPolicies.d.ts +6 -0
- package/package.json +1 -1
- package/dist/esm/core/PermissionManager.js +0 -60
- package/dist/esm/core/PermissionManager.js.map +0 -1
- package/dist/esm/core/types/IHubPermission.js +0 -1
- package/dist/esm/core/types/IHubPermission.js.map +0 -1
- package/dist/node/core/PermissionManager.js +0 -64
- package/dist/node/core/PermissionManager.js.map +0 -1
- package/dist/node/core/types/IHubPermission.js.map +0 -1
- package/dist/types/core/PermissionManager.d.ts +0 -43
- package/dist/types/core/types/IHubPermission.d.ts +0 -23
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { HubEntity } from "../../core";
|
|
3
|
+
import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Validate authentication policy
|
|
6
|
+
* @param policy
|
|
7
|
+
* @param context
|
|
8
|
+
* @param entity
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkAuthentication(policy: IPermissionPolicy, context: IArcGISContext, entity?: HubEntity): IPolicyCheck[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { HubEntity } from "../../core";
|
|
3
|
+
import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Validate entityEdit policy
|
|
6
|
+
* @param policy
|
|
7
|
+
* @param context
|
|
8
|
+
* @param entity
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkEdit(policy: IPermissionPolicy, context: IArcGISContext, entity?: HubEntity): IPolicyCheck[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { IPolicyCheck, IEntityPermissionPolicy } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Validate user meets entity policy
|
|
5
|
+
* @param policy
|
|
6
|
+
* @param context
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function checkEntityPolicy(policy: IEntityPermissionPolicy, context: IArcGISContext): IPolicyCheck;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Validate license policy
|
|
5
|
+
* @param policy
|
|
6
|
+
* @param response
|
|
7
|
+
* @param context
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare function checkLicense(policy: IPermissionPolicy, context: IArcGISContext): IPolicyCheck[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { HubEntity } from "../../core";
|
|
3
|
+
import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Validate entityOwner policy
|
|
6
|
+
* @param policy
|
|
7
|
+
* @param context
|
|
8
|
+
* @param entity
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkOwner(policy: IPermissionPolicy, context: IArcGISContext, entity?: HubEntity): IPolicyCheck[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IArcGISContext } from "../../ArcGISContext";
|
|
2
|
+
import { HubEntity } from "../../core";
|
|
3
|
+
import { IPermissionPolicy, IPolicyCheck } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Validate privilege policy
|
|
6
|
+
* @param policy
|
|
7
|
+
* @param context
|
|
8
|
+
* @param entity
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkPrivileges(policy: IPermissionPolicy, context: IArcGISContext, entity?: HubEntity): IPolicyCheck[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IArcGISContext } from "../ArcGISContext";
|
|
2
|
+
import { HubEntity } from "../core";
|
|
3
|
+
import { IAccessResponse, Permission } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Check a permission against the system policies, and possibly an entity policy
|
|
6
|
+
* @param permission
|
|
7
|
+
* @param context
|
|
8
|
+
* @param entity
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkPermission(permission: Permission, context: IArcGISContext, entity?: HubEntity): IAccessResponse;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Permission } from "./Permission";
|
|
2
|
+
import { IPolicyCheck } from "./IPolicyCheck";
|
|
3
|
+
import { PolicyResponse } from "./PolicyResponse";
|
|
4
|
+
/**
|
|
5
|
+
* Response from a permission check
|
|
6
|
+
*/
|
|
7
|
+
export interface IAccessResponse {
|
|
8
|
+
/**
|
|
9
|
+
* Permission being checked
|
|
10
|
+
*/
|
|
11
|
+
permission: Permission;
|
|
12
|
+
/**
|
|
13
|
+
* Is the user allowed to perform the action
|
|
14
|
+
*/
|
|
15
|
+
access: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Code for the access response. Used for i18n and UX level messages
|
|
18
|
+
*/
|
|
19
|
+
code: string;
|
|
20
|
+
/**
|
|
21
|
+
* Reason for the access response
|
|
22
|
+
*/
|
|
23
|
+
response: PolicyResponse;
|
|
24
|
+
/**
|
|
25
|
+
* List of all the policies that were checked, and their responses
|
|
26
|
+
* For debugging / observability
|
|
27
|
+
*/
|
|
28
|
+
checks: IPolicyCheck[];
|
|
29
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Permission } from "./Permission";
|
|
2
|
+
/**
|
|
3
|
+
* Association of a Permission with a set of collaborators
|
|
4
|
+
*/
|
|
5
|
+
export interface IEntityPermissionPolicy {
|
|
6
|
+
/**
|
|
7
|
+
* Permission being granted
|
|
8
|
+
*/
|
|
9
|
+
permission: Permission;
|
|
10
|
+
/**
|
|
11
|
+
* Type of the collaboration - org, group, group-admin or user
|
|
12
|
+
*/
|
|
13
|
+
collaborationType: CollaborationType;
|
|
14
|
+
/**
|
|
15
|
+
* Id of the collaboration set
|
|
16
|
+
*/
|
|
17
|
+
collaborationId: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Type of collaboration set. Used when associating a permission with a set of collaborators
|
|
21
|
+
*/
|
|
22
|
+
export declare type CollaborationType = "user" | "group" | "group-admin" | "org";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { HubLicense } from "./HubLicense";
|
|
2
|
+
import { HubSubsystem } from "../../core/types/ISystemStatus";
|
|
3
|
+
import { Permission } from "./Permission";
|
|
4
|
+
import { PlatformPrivilege } from "./PlatformPrivilege";
|
|
5
|
+
/**
|
|
6
|
+
* Defines a system level policy for a specific permission.
|
|
7
|
+
* All conditions must be met for the permission to be granted. Additinonal conditions may be added by an entity to further
|
|
8
|
+
* limit access when the permission is checed in the contex to the entity.
|
|
9
|
+
* e.g. "hub:project:create" in the context of an Initiative, may further restrict to members of a specfic group
|
|
10
|
+
*/
|
|
11
|
+
export interface IPermissionPolicy {
|
|
12
|
+
/**
|
|
13
|
+
* Permission being defined
|
|
14
|
+
*/
|
|
15
|
+
permission: Permission;
|
|
16
|
+
/**
|
|
17
|
+
* What subsystems are required to be online for this permission to be granted
|
|
18
|
+
*/
|
|
19
|
+
subsystems: HubSubsystem[];
|
|
20
|
+
/**
|
|
21
|
+
* Must the user authenticated?
|
|
22
|
+
*/
|
|
23
|
+
authenticated: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* What licenses are required for this permission to be granted.
|
|
26
|
+
* This is checking the licese of the current user's org. It is not transitive to the entity being accessed.
|
|
27
|
+
* e.g. If a user is in a Partner "hub-basic" org, they can not create "premium" entities (e.g. Projects)
|
|
28
|
+
*/
|
|
29
|
+
licenses: HubLicense[];
|
|
30
|
+
/**
|
|
31
|
+
* Any platform level privileges required for this permission to be granted
|
|
32
|
+
* e.g. "portal:user:createItem"
|
|
33
|
+
*/
|
|
34
|
+
privileges?: PlatformPrivilege[];
|
|
35
|
+
/**
|
|
36
|
+
* Does the user need to be in a specific platform role to be granted this permission?
|
|
37
|
+
* This is likely extremely rare.
|
|
38
|
+
*/
|
|
39
|
+
roles?: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Does the user require edit access to the entity to be granted this permission?
|
|
42
|
+
*/
|
|
43
|
+
entityEdit?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Does the user need to be the owner of the entity to be granted this permission?
|
|
46
|
+
*/
|
|
47
|
+
entityOwner?: boolean;
|
|
48
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PolicyResponse } from "./PolicyResponse";
|
|
2
|
+
/**
|
|
3
|
+
* Information about a specific policy check, and its response
|
|
4
|
+
* Used for debugging / observability
|
|
5
|
+
*/
|
|
6
|
+
export interface IPolicyCheck {
|
|
7
|
+
/**
|
|
8
|
+
* Description of the policy being checked
|
|
9
|
+
* e.g. License Required: "hub-premium"
|
|
10
|
+
*/
|
|
11
|
+
name: string;
|
|
12
|
+
/**
|
|
13
|
+
* Value determined for the current user
|
|
14
|
+
* e.g. "hub-basic"
|
|
15
|
+
*/
|
|
16
|
+
value: string;
|
|
17
|
+
/**
|
|
18
|
+
* Policy Response code, for i18n
|
|
19
|
+
*/
|
|
20
|
+
code: string;
|
|
21
|
+
/**
|
|
22
|
+
* Policy Response string
|
|
23
|
+
*/
|
|
24
|
+
response: PolicyResponse;
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the values for Permissions
|
|
3
|
+
* Note: This needs to be managed as a single list or typechecking does not work
|
|
4
|
+
* We use an array so we can check for valid permissions
|
|
5
|
+
*/
|
|
6
|
+
declare const validPermissions: readonly ["hub:site:create", "hub:site:delete", "hub:site:edit", "hub:site:view", "hub:project:create", "hub:project:delete", "hub:project:edit", "hub:project:view"];
|
|
7
|
+
/**
|
|
8
|
+
* Defines the possible values for Permissions
|
|
9
|
+
*/
|
|
10
|
+
export declare type Permission = typeof validPermissions[number];
|
|
11
|
+
/**
|
|
12
|
+
* Validate a Permission
|
|
13
|
+
* @param permission
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function isPermission(maybePermission: string): boolean;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type that defines Platform Privileges
|
|
3
|
+
* TODO: Ensure this is a complete list
|
|
4
|
+
*/
|
|
5
|
+
export declare type PlatformPrivilege = "opendata:user:designateGroup" | "opendata:user:openDataAdmin" | "portal:admin:assignToGroups" | "portal:admin:categorizeItems" | "portal:admin:changeUserRoles" | "portal:admin:createGPWebhook" | "portal:admin:createUpdateCapableGroup" | "portal:admin:deleteGroups" | "portal:admin:deleteItems" | "portal:admin:deleteUsers" | "portal:admin:disableUsers" | "portal:admin:inviteUsers" | "portal:admin:manageCollaborations" | "portal:admin:manageCredits" | "portal:admin:manageEnterpriseGroups" | "portal:admin:manageLicenses" | "portal:admin:manageRoles" | "portal:admin:manageSecurity" | "portal:admin:manageServers" | "portal:admin:manageUtilityServices" | "portal:admin:manageWebhooks" | "portal:admin:manageWebsite" | "portal:admin:reassignGroups" | "portal:admin:reassignItems" | "portal:admin:reassignUsers" | "portal:admin:shareToGroup" | "portal:admin:shareToOrg" | "portal:admin:shareToPublic" | "portal:admin:updateGroups" | "portal:admin:updateItemCategorySchema" | "portal:admin:updateItems" | "portal:admin:updateMemberCategorySchema" | "portal:admin:updateUsers" | "portal:admin:viewGroups" | "portal:admin:viewItems" | "portal:admin:viewUsers" | "portal:publisher:bulkPublishFromDataStores" | "portal:publisher:createFeatureWebhook" | "portal:publisher:publishBigDataAnalytics" | "portal:publisher:publishDynamicImagery" | "portal:publisher:publishFeatures" | "portal:publisher:publishFeeds" | "portal:publisher:publishKnowledgeGraph" | "portal:publisher:publishRealTimeAnalytics" | "portal:publisher:publishScenes" | "portal:publisher:publishServerGPServices" | "portal:publisher:publishServerServices" | "portal:publisher:publishTiledImagery" | "portal:publisher:publishTiles" | "portal:publisher:registerDataStores" | "portal:user:addExternalMembersToGroup" | "portal:user:categorizeItems" | "portal:user:createGroup" | "portal:user:createItem" | "portal:user:invitePartneredCollaborationMembers" | "portal:user:joinGroup" | "portal:user:joinNonOrgGroup" | "portal:user:reassignItems" | "portal:user:receiveItems" | "portal:user:runWebTool" | "portal:user:shareGroupToOrg" | "portal:user:shareGroupToPublic" | "portal:user:shareToGroup" | "portal:user:shareToOrg" | "portal:user:shareToPublic" | "portal:user:viewHostedFeatureServices" | "portal:user:viewHostedTileServices" | "portal:user:viewOrgGroups" | "portal:user:viewOrgItems" | "portal:user:viewOrgUsers" | "portal:user:viewTracks";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**`
|
|
2
|
+
* Human readable response from a policy check
|
|
3
|
+
*/
|
|
4
|
+
export declare type PolicyResponse = "granted" | "org-member" | "not-org-member" | "group-member" | "not-group-member" | "not-group-admin" | "is-user" | "not-owner" | "not-licensed" | "not-licensed-available" | "not-available" | "not-granted" | "no-edit-access" | "invalid-permission" | "privilege-required" | "system-offline" | "system-maintenance" | "entity-required" | "not-authenticated";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./HubLicense";
|
|
2
|
+
export * from "./IAccessResponse";
|
|
3
|
+
export * from "./IEntityPermissionPolicy";
|
|
4
|
+
export * from "./IPermissionPolicy";
|
|
5
|
+
export * from "./IPolicyCheck";
|
|
6
|
+
export * from "./Permission";
|
|
7
|
+
export * from "./PlatformPrivilege";
|
|
8
|
+
export * from "./PolicyResponse";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IEntityPermissionPolicy, Permission } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Add a policy to an array of entity policies
|
|
4
|
+
* Returns a new array
|
|
5
|
+
* @param permissions
|
|
6
|
+
* @param policy
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function addPermissionPolicy(permissions: IEntityPermissionPolicy[], policy: IEntityPermissionPolicy): IEntityPermissionPolicy[];
|
|
10
|
+
/**
|
|
11
|
+
* Remove a policy from an array of entity policies
|
|
12
|
+
* Returns a new array
|
|
13
|
+
* @param permissions
|
|
14
|
+
* @param permission
|
|
15
|
+
* @param id
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export declare function removePermissionPolicy(permissions: IEntityPermissionPolicy[], permission: Permission, id: string): IEntityPermissionPolicy[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IHubProject, IWithPermissionBehavior, IWithCatalogBehavior,
|
|
1
|
+
import { IHubProject, IWithPermissionBehavior, IWithCatalogBehavior, IWithStoreBehavior, IWithSharingBehavior, UiSchemaElementOptions } from "../core";
|
|
2
2
|
import { Catalog } from "../search/Catalog";
|
|
3
3
|
import { IArcGISContext } from "../ArcGISContext";
|
|
4
4
|
import { HubItemEntity } from "../core/HubItemEntity";
|
|
@@ -8,7 +8,6 @@ import { EditorConfigType, IEditorConfig } from "../core/behaviors/IWithEditorBe
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class HubProject extends HubItemEntity<IHubProject> implements IWithStoreBehavior<IHubProject>, IWithPermissionBehavior, IWithCatalogBehavior, IWithSharingBehavior {
|
|
10
10
|
private _catalog;
|
|
11
|
-
private _permissionManager;
|
|
12
11
|
/**
|
|
13
12
|
* Private constructor so we don't have `new` all over the place. Allows for
|
|
14
13
|
* more flexibility in how we create the HubProjectManager over time.
|
|
@@ -20,11 +19,6 @@ export declare class HubProject extends HubItemEntity<IHubProject> implements IW
|
|
|
20
19
|
* @returns
|
|
21
20
|
*/
|
|
22
21
|
get catalog(): Catalog;
|
|
23
|
-
/**
|
|
24
|
-
* PermissionManager instance for this project. Note: Do not hold direct references to this object; always access it from the project.
|
|
25
|
-
* @returns
|
|
26
|
-
*/
|
|
27
|
-
get permissions(): PermissionManager;
|
|
28
22
|
/**
|
|
29
23
|
* Create an instance from an IHubProject object
|
|
30
24
|
* @param json - JSON object to create a HubProject from
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IHubSite, IWithPermissionBehavior, IWithCatalogBehavior,
|
|
1
|
+
import { IHubSite, IWithPermissionBehavior, IWithCatalogBehavior, IWithStoreBehavior, IWithSharingBehavior } from "../core";
|
|
2
2
|
import { Catalog } from "../search/Catalog";
|
|
3
3
|
import { IArcGISContext } from "../ArcGISContext";
|
|
4
4
|
import { HubItemEntity } from "../core/HubItemEntity";
|
|
@@ -9,7 +9,6 @@ import { IContainsResponse, IDeepCatalogInfo } from "../search";
|
|
|
9
9
|
*/
|
|
10
10
|
export declare class HubSite extends HubItemEntity<IHubSite> implements IWithStoreBehavior<IHubSite>, IWithPermissionBehavior, IWithCatalogBehavior, IWithSharingBehavior {
|
|
11
11
|
private _catalog;
|
|
12
|
-
private _permissionManager;
|
|
13
12
|
private _catalogCache;
|
|
14
13
|
/**
|
|
15
14
|
* Private constructor so we don't have `new` all over the place. Allows for
|
|
@@ -22,11 +21,6 @@ export declare class HubSite extends HubItemEntity<IHubSite> implements IWithSto
|
|
|
22
21
|
* @returns
|
|
23
22
|
*/
|
|
24
23
|
get catalog(): Catalog;
|
|
25
|
-
/**
|
|
26
|
-
* PermissionManager instance for this site. Note: Do not hold direct references to this object; always access it from the site.
|
|
27
|
-
* @returns
|
|
28
|
-
*/
|
|
29
|
-
get permissions(): PermissionManager;
|
|
30
24
|
/**
|
|
31
25
|
* Create an instance from an IHubSite object
|
|
32
26
|
* @param json - JSON object to create a HubSite from
|
package/package.json
CHANGED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { cloneObject, createId } from "../util";
|
|
2
|
-
import { checkPermission, getPermissions, addPermission, removePermission, } from "./behaviors/IWithPermissionBehavior";
|
|
3
|
-
/**
|
|
4
|
-
* Permission Manager class that provides permission behavior for a given entity
|
|
5
|
-
*/
|
|
6
|
-
export class PermissionManager {
|
|
7
|
-
constructor(permissions, context) {
|
|
8
|
-
this._permissions = permissions;
|
|
9
|
-
this._context = context;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Create a new PermissionManager instance from configuration and context
|
|
13
|
-
* @param permissions
|
|
14
|
-
* @param context
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
static fromJson(permissions, context) {
|
|
18
|
-
return new PermissionManager(permissions, context);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Check if the user has a specific permission in the context of an entity
|
|
22
|
-
* @param permission
|
|
23
|
-
*/
|
|
24
|
-
check(permission) {
|
|
25
|
-
return checkPermission(permission, this._context.currentUser, this._permissions);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get all the permission definitions for the specific permission
|
|
29
|
-
* @param key permission to check for
|
|
30
|
-
*/
|
|
31
|
-
get(permission) {
|
|
32
|
-
return getPermissions(permission, this._permissions);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Set a permission for the given entity
|
|
36
|
-
* @param permission
|
|
37
|
-
*/
|
|
38
|
-
add(permission) {
|
|
39
|
-
if (!permission.id) {
|
|
40
|
-
permission.id = createId("p");
|
|
41
|
-
}
|
|
42
|
-
this._permissions = addPermission(permission, this._permissions);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Remove a permission by targetId
|
|
46
|
-
* @param permission
|
|
47
|
-
* @param targetId
|
|
48
|
-
*/
|
|
49
|
-
remove(permission, targetId) {
|
|
50
|
-
this._permissions = removePermission(permission, targetId, this._permissions);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Return the current permissions as a JSON object
|
|
54
|
-
* @returns {IHubPermission[]}
|
|
55
|
-
*/
|
|
56
|
-
toJson() {
|
|
57
|
-
return cloneObject(this._permissions);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=PermissionManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../../src/core/PermissionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAG7C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAI5B,YAAoB,WAA6B,EAAE,OAAuB;QACxE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,WAA6B,EAC7B,OAAuB;QAEvB,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAyB;QAC7B,OAAO,eAAe,CACpB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAAyB;QAC3B,OAAO,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAA0B;QAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YAClB,UAAU,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAyB,EAAE,QAAgB;QAChD,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAClC,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=IHubPermission.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IHubPermission.js","sourceRoot":"","sources":["../../../../src/core/types/IHubPermission.ts"],"names":[],"mappings":""}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermissionManager = void 0;
|
|
4
|
-
const util_1 = require("../util");
|
|
5
|
-
const IWithPermissionBehavior_1 = require("./behaviors/IWithPermissionBehavior");
|
|
6
|
-
/**
|
|
7
|
-
* Permission Manager class that provides permission behavior for a given entity
|
|
8
|
-
*/
|
|
9
|
-
class PermissionManager {
|
|
10
|
-
constructor(permissions, context) {
|
|
11
|
-
this._permissions = permissions;
|
|
12
|
-
this._context = context;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Create a new PermissionManager instance from configuration and context
|
|
16
|
-
* @param permissions
|
|
17
|
-
* @param context
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
static fromJson(permissions, context) {
|
|
21
|
-
return new PermissionManager(permissions, context);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Check if the user has a specific permission in the context of an entity
|
|
25
|
-
* @param permission
|
|
26
|
-
*/
|
|
27
|
-
check(permission) {
|
|
28
|
-
return IWithPermissionBehavior_1.checkPermission(permission, this._context.currentUser, this._permissions);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Get all the permission definitions for the specific permission
|
|
32
|
-
* @param key permission to check for
|
|
33
|
-
*/
|
|
34
|
-
get(permission) {
|
|
35
|
-
return IWithPermissionBehavior_1.getPermissions(permission, this._permissions);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Set a permission for the given entity
|
|
39
|
-
* @param permission
|
|
40
|
-
*/
|
|
41
|
-
add(permission) {
|
|
42
|
-
if (!permission.id) {
|
|
43
|
-
permission.id = util_1.createId("p");
|
|
44
|
-
}
|
|
45
|
-
this._permissions = IWithPermissionBehavior_1.addPermission(permission, this._permissions);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Remove a permission by targetId
|
|
49
|
-
* @param permission
|
|
50
|
-
* @param targetId
|
|
51
|
-
*/
|
|
52
|
-
remove(permission, targetId) {
|
|
53
|
-
this._permissions = IWithPermissionBehavior_1.removePermission(permission, targetId, this._permissions);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Return the current permissions as a JSON object
|
|
57
|
-
* @returns {IHubPermission[]}
|
|
58
|
-
*/
|
|
59
|
-
toJson() {
|
|
60
|
-
return util_1.cloneObject(this._permissions);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.PermissionManager = PermissionManager;
|
|
64
|
-
//# sourceMappingURL=PermissionManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionManager.js","sourceRoot":"","sources":["../../../src/core/PermissionManager.ts"],"names":[],"mappings":";;;AACA,kCAAgD;AAChD,iFAK6C;AAG7C;;GAEG;AACH,MAAa,iBAAiB;IAI5B,YAAoB,WAA6B,EAAE,OAAuB;QACxE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,WAA6B,EAC7B,OAAuB;QAEvB,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAyB;QAC7B,OAAO,yCAAe,CACpB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAAyB;QAC3B,OAAO,wCAAc,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,UAA0B;QAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YAClB,UAAU,CAAC,EAAE,GAAG,eAAQ,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,YAAY,GAAG,uCAAa,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAyB,EAAE,QAAgB;QAChD,IAAI,CAAC,YAAY,GAAG,0CAAgB,CAClC,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,kBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;CACF;AAzED,8CAyEC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IHubPermission.js","sourceRoot":"","sources":["../../../../src/core/types/IHubPermission.ts"],"names":[],"mappings":""}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { IArcGISContext } from "../ArcGISContext";
|
|
2
|
-
import { HubPermission, IHubPermission } from "./types/IHubPermission";
|
|
3
|
-
/**
|
|
4
|
-
* Permission Manager class that provides permission behavior for a given entity
|
|
5
|
-
*/
|
|
6
|
-
export declare class PermissionManager {
|
|
7
|
-
private _permissions;
|
|
8
|
-
private _context;
|
|
9
|
-
private constructor();
|
|
10
|
-
/**
|
|
11
|
-
* Create a new PermissionManager instance from configuration and context
|
|
12
|
-
* @param permissions
|
|
13
|
-
* @param context
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
static fromJson(permissions: IHubPermission[], context: IArcGISContext): PermissionManager;
|
|
17
|
-
/**
|
|
18
|
-
* Check if the user has a specific permission in the context of an entity
|
|
19
|
-
* @param permission
|
|
20
|
-
*/
|
|
21
|
-
check(permission: HubPermission): boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Get all the permission definitions for the specific permission
|
|
24
|
-
* @param key permission to check for
|
|
25
|
-
*/
|
|
26
|
-
get(permission: HubPermission): IHubPermission[];
|
|
27
|
-
/**
|
|
28
|
-
* Set a permission for the given entity
|
|
29
|
-
* @param permission
|
|
30
|
-
*/
|
|
31
|
-
add(permission: IHubPermission): void;
|
|
32
|
-
/**
|
|
33
|
-
* Remove a permission by targetId
|
|
34
|
-
* @param permission
|
|
35
|
-
* @param targetId
|
|
36
|
-
*/
|
|
37
|
-
remove(permission: HubPermission, targetId: string): void;
|
|
38
|
-
/**
|
|
39
|
-
* Return the current permissions as a JSON object
|
|
40
|
-
* @returns {IHubPermission[]}
|
|
41
|
-
*/
|
|
42
|
-
toJson(): IHubPermission[];
|
|
43
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structure of a Hub Permission
|
|
3
|
-
*/
|
|
4
|
-
export interface IHubPermission {
|
|
5
|
-
/**
|
|
6
|
-
* Unique identifier of the permission
|
|
7
|
-
*/
|
|
8
|
-
id?: string;
|
|
9
|
-
/**
|
|
10
|
-
* What action is being enabled for the target
|
|
11
|
-
*/
|
|
12
|
-
permission: HubPermission;
|
|
13
|
-
/**
|
|
14
|
-
* What is the target of the permission
|
|
15
|
-
*/
|
|
16
|
-
target: PermissionTarget;
|
|
17
|
-
/**
|
|
18
|
-
* Id of the entity that this permission is granted for
|
|
19
|
-
*/
|
|
20
|
-
targetId: string;
|
|
21
|
-
}
|
|
22
|
-
export declare type HubPermission = "addEvent" | "createEvent" | "editEvent" | "deleteEvent" | "addInitiative" | "createInitiative" | "editInitiative" | "deleteInitiative" | "addProject" | "createProject" | "editProject" | "deleteProject";
|
|
23
|
-
export declare type PermissionTarget = "org" | "group" | "user";
|