@itwin/access-control-client 1.3.0 → 2.0.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/CHANGELOG.md +9 -0
- package/README.md +297 -30
- package/lib/cjs/AccessControlClient.d.ts +4 -2
- package/lib/cjs/AccessControlClient.d.ts.map +1 -1
- package/lib/cjs/AccessControlClient.js +6 -2
- package/lib/cjs/AccessControlClient.js.map +1 -1
- package/lib/cjs/accessControlTypes.d.ts +52 -13
- package/lib/cjs/accessControlTypes.d.ts.map +1 -1
- package/lib/cjs/accessControlTypes.js.map +1 -1
- package/lib/cjs/subClients/BaseClient.js +1 -1
- package/lib/cjs/subClients/BaseClient.js.map +1 -1
- package/lib/cjs/subClients/GroupMembersClient.d.ts +45 -0
- package/lib/cjs/subClients/GroupMembersClient.d.ts.map +1 -0
- package/lib/cjs/subClients/GroupMembersClient.js +70 -0
- package/lib/cjs/subClients/GroupMembersClient.js.map +1 -0
- package/lib/cjs/subClients/GroupsClient.d.ts +44 -0
- package/lib/cjs/subClients/GroupsClient.d.ts.map +1 -0
- package/lib/cjs/subClients/GroupsClient.js +60 -0
- package/lib/cjs/subClients/GroupsClient.js.map +1 -0
- package/lib/cjs/subClients/UserMembersClient.d.ts +45 -0
- package/lib/cjs/subClients/UserMembersClient.d.ts.map +1 -0
- package/lib/cjs/subClients/UserMembersClient.js +70 -0
- package/lib/cjs/subClients/UserMembersClient.js.map +1 -0
- package/lib/esm/AccessControlClient.d.ts +4 -2
- package/lib/esm/AccessControlClient.d.ts.map +1 -1
- package/lib/esm/AccessControlClient.js +6 -2
- package/lib/esm/AccessControlClient.js.map +1 -1
- package/lib/esm/accessControlTypes.d.ts +52 -13
- package/lib/esm/accessControlTypes.d.ts.map +1 -1
- package/lib/esm/accessControlTypes.js.map +1 -1
- package/lib/esm/subClients/BaseClient.js +1 -1
- package/lib/esm/subClients/BaseClient.js.map +1 -1
- package/lib/esm/subClients/GroupMembersClient.d.ts +45 -0
- package/lib/esm/subClients/GroupMembersClient.d.ts.map +1 -0
- package/lib/esm/subClients/GroupMembersClient.js +66 -0
- package/lib/esm/subClients/GroupMembersClient.js.map +1 -0
- package/lib/esm/subClients/GroupsClient.d.ts +44 -0
- package/lib/esm/subClients/GroupsClient.d.ts.map +1 -0
- package/lib/esm/subClients/GroupsClient.js +56 -0
- package/lib/esm/subClients/GroupsClient.js.map +1 -0
- package/lib/esm/subClients/UserMembersClient.d.ts +45 -0
- package/lib/esm/subClients/UserMembersClient.d.ts.map +1 -0
- package/lib/esm/subClients/UserMembersClient.js +66 -0
- package/lib/esm/subClients/UserMembersClient.js.map +1 -0
- package/package.json +1 -1
- package/lib/cjs/subClients/MembersClient.d.ts +0 -45
- package/lib/cjs/subClients/MembersClient.d.ts.map +0 -1
- package/lib/cjs/subClients/MembersClient.js +0 -69
- package/lib/cjs/subClients/MembersClient.js.map +0 -1
- package/lib/esm/subClients/MembersClient.d.ts +0 -45
- package/lib/esm/subClients/MembersClient.d.ts.map +0 -1
- package/lib/esm/subClients/MembersClient.js +0 -65
- package/lib/esm/subClients/MembersClient.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":";;;AAUA,iCAA0B;AAG1B,MAAa,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAG,GAAG,KAAK,SAAS,EAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;aAAM;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;aAC9B;SACF;IACH,CAAC;IAED;;;;;QAKI;IACM,KAAK,CAAC,qBAAqB,CACnC,WAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAU,EACV,QAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,cAAc,CAAC,CAAC;YAE7C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBAClH,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACJ,6DAA6D;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU;QAC5F,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,gDAAgD;aAC3D;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,mDAAmD;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;QAII;IACM,cAAc,CAAC,QAA+B;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,WAAW,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,WAAW,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1C;QAED,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA5FD,gCA4FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { Method } from \"axios\";\r\nimport type { AxiosRequestConfig } from \"axios\";\r\nimport axios from \"axios\";\r\nimport type { AccessControlAPIResponse, AccessControlQueryArg} from \"../accessControlTypes\";\r\n\r\nexport class BaseClient {\r\n protected _baseUrl: string = \"https://api.bentley.com/accesscontrol/itwins\";\r\n\r\n public constructor(url?: string) {\r\n if(url !== undefined){\r\n this._baseUrl = url;\r\n } else {\r\n const urlPrefix = process.env.IMJS_URL_PREFIX;\r\n if (urlPrefix) {\r\n const baseUrl = new URL(this._baseUrl);\r\n baseUrl.hostname = urlPrefix + baseUrl.hostname;\r\n this._baseUrl = baseUrl.href;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sends a basic API request\r\n * @param accessTokenString The client access token string\r\n * @param method The method type of the request (ex. GET, POST, DELETE, etc)\r\n * @param url The url of the request\r\n */\r\n protected async sendGenericAPIRequest(\r\n accessToken: AccessToken,\r\n method: Method,\r\n url: string,\r\n data?: any,\r\n property?: string\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data);\r\n\r\n try {\r\n const response = await axios(requestOptions);\r\n\r\n return {\r\n status: response.status,\r\n data: response.data.error || response.data === \"\" ? undefined : property ? response.data[property] : response.data,\r\n error: response.data.error,\r\n };\r\n } catch (err) {\r\n return {\r\n status: 500,\r\n error: {\r\n code: \"InternalServerError\",\r\n message:\r\n \"An internal exception happened while calling iTwins Service\",\r\n },\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Build the request methods, headers, and other options\r\n * @param accessTokenString The client access token string\r\n */\r\n protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any): AxiosRequestConfig {\r\n return {\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n \"authorization\": accessTokenString,\r\n \"content-type\": \"application/json\",\r\n \"accept\": \"application/vnd.bentley.itwin-platform.
|
|
1
|
+
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":";;;AAUA,iCAA0B;AAG1B,MAAa,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAG,GAAG,KAAK,SAAS,EAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;aAAM;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;aAC9B;SACF;IACH,CAAC;IAED;;;;;QAKI;IACM,KAAK,CAAC,qBAAqB,CACnC,WAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAU,EACV,QAAiB;QAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9E,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,cAAc,CAAC,CAAC;YAE7C,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBAClH,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACJ,6DAA6D;iBACjE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU;QAC5F,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,gDAAgD;aAC3D;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,mDAAmD;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;QAII;IACM,cAAc,CAAC,QAA+B;QACtD,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,QAAQ,CAAC,GAAG,EAAE;YAChB,WAAW,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,WAAW,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1C;QAED,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA5FD,gCA4FC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { Method } from \"axios\";\r\nimport type { AxiosRequestConfig } from \"axios\";\r\nimport axios from \"axios\";\r\nimport type { AccessControlAPIResponse, AccessControlQueryArg} from \"../accessControlTypes\";\r\n\r\nexport class BaseClient {\r\n protected _baseUrl: string = \"https://api.bentley.com/accesscontrol/itwins\";\r\n\r\n public constructor(url?: string) {\r\n if(url !== undefined){\r\n this._baseUrl = url;\r\n } else {\r\n const urlPrefix = process.env.IMJS_URL_PREFIX;\r\n if (urlPrefix) {\r\n const baseUrl = new URL(this._baseUrl);\r\n baseUrl.hostname = urlPrefix + baseUrl.hostname;\r\n this._baseUrl = baseUrl.href;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sends a basic API request\r\n * @param accessTokenString The client access token string\r\n * @param method The method type of the request (ex. GET, POST, DELETE, etc)\r\n * @param url The url of the request\r\n */\r\n protected async sendGenericAPIRequest(\r\n accessToken: AccessToken,\r\n method: Method,\r\n url: string,\r\n data?: any,\r\n property?: string\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data);\r\n\r\n try {\r\n const response = await axios(requestOptions);\r\n\r\n return {\r\n status: response.status,\r\n data: response.data.error || response.data === \"\" ? undefined : property ? response.data[property] : response.data,\r\n error: response.data.error,\r\n };\r\n } catch (err) {\r\n return {\r\n status: 500,\r\n error: {\r\n code: \"InternalServerError\",\r\n message:\r\n \"An internal exception happened while calling iTwins Service\",\r\n },\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Build the request methods, headers, and other options\r\n * @param accessTokenString The client access token string\r\n */\r\n protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any): AxiosRequestConfig {\r\n return {\r\n method,\r\n url,\r\n data,\r\n headers: {\r\n \"authorization\": accessTokenString,\r\n \"content-type\": \"application/json\",\r\n \"accept\": \"application/vnd.bentley.itwin-platform.v2+json\",\r\n },\r\n validateStatus(status) {\r\n return status < 500; // Resolve only if the status code is less than 500\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Build a query to be appended to a URL\r\n * @param queryArg Object container queryable properties\r\n * @returns query string with AccessControlQueryArg applied, which should be appended to a url\r\n */\r\n protected getQueryString(queryArg: AccessControlQueryArg): string {\r\n let queryString = \"\";\r\n\r\n if (queryArg.top) {\r\n queryString += `&$top=${queryArg.top}`;\r\n }\r\n\r\n if (queryArg.skip) {\r\n queryString += `&$skip=${queryArg.skip}`;\r\n }\r\n\r\n // trim & from start of string\r\n queryString.replace(/^&+/, \"\");\r\n\r\n return queryString;\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module AccessControlClient
|
|
3
|
+
*/
|
|
4
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
5
|
+
import type { AccessControlAPIResponse, AccessControlQueryArg, GroupMember, IGroupMembersClient } from "../accessControlTypes";
|
|
6
|
+
import { BaseClient } from "./BaseClient";
|
|
7
|
+
export declare class GroupMembersClient extends BaseClient implements IGroupMembersClient {
|
|
8
|
+
constructor(url?: string);
|
|
9
|
+
/** Retrieves a list of iTwin group members and their roles assignments.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
queryITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
15
|
+
/** Retrieves a specific group member for a specified iTwin.
|
|
16
|
+
* @param accessToken The client access token string
|
|
17
|
+
* @param iTwinId The id of the iTwin
|
|
18
|
+
* @param memberId The id of the member
|
|
19
|
+
* @returns Member
|
|
20
|
+
*/
|
|
21
|
+
getITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<GroupMember>>;
|
|
22
|
+
/** Add new iTwin group members
|
|
23
|
+
* @param accessToken The client access token string
|
|
24
|
+
* @param iTwinId The id of the iTwin
|
|
25
|
+
* @param newMembers The list of new members to be added along with their role
|
|
26
|
+
* @returns Member[]
|
|
27
|
+
*/
|
|
28
|
+
addITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: GroupMember[]): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
29
|
+
/** Remove the specified group member from the iTwin
|
|
30
|
+
* @param accessToken The client access token string
|
|
31
|
+
* @param iTwinId The id of the iTwin
|
|
32
|
+
* @param memberId The id of the member
|
|
33
|
+
* @returns No Content
|
|
34
|
+
*/
|
|
35
|
+
removeITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
36
|
+
/** Update iTwin group member roles
|
|
37
|
+
* @param accessToken The client access token string
|
|
38
|
+
* @param iTwinId The id of the iTwin
|
|
39
|
+
* @param memberId The id of the member
|
|
40
|
+
* @param roleIds The ids of the roles to be assigned
|
|
41
|
+
* @returns Member
|
|
42
|
+
*/
|
|
43
|
+
updateITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<GroupMember>>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=GroupMembersClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupMembersClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/GroupMembersClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,kBACX,SAAQ,UACR,YAAW,mBAAmB;gBACX,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;OAIG;IACU,2BAA2B,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,qBAAqB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC;IAgBnD;;;;;OAKG;IACU,wBAAwB,CACnC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAWjD;;;;;OAKG;IACU,yBAAyB,CACpC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,WAAW,EAAE,GACxB,OAAO,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC;IAcnD;;;;;OAKG;IACU,2BAA2B,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAK/C;;;;;;OAMG;IACU,2BAA2B,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;CAalD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupMembersClient = void 0;
|
|
4
|
+
const BaseClient_1 = require("./BaseClient");
|
|
5
|
+
class GroupMembersClient extends BaseClient_1.BaseClient {
|
|
6
|
+
constructor(url) {
|
|
7
|
+
super(url);
|
|
8
|
+
}
|
|
9
|
+
/** Retrieves a list of iTwin group members and their roles assignments.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
async queryITwinGroupMembersAsync(accessToken, iTwinId, arg) {
|
|
15
|
+
let url = `${this._baseUrl}/${iTwinId}/members/groups`;
|
|
16
|
+
if (arg) {
|
|
17
|
+
url += `?${this.getQueryString(arg)}`;
|
|
18
|
+
}
|
|
19
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "members"); // TODO: Consider how to handle paging
|
|
20
|
+
}
|
|
21
|
+
/** Retrieves a specific group member for a specified iTwin.
|
|
22
|
+
* @param accessToken The client access token string
|
|
23
|
+
* @param iTwinId The id of the iTwin
|
|
24
|
+
* @param memberId The id of the member
|
|
25
|
+
* @returns Member
|
|
26
|
+
*/
|
|
27
|
+
async getITwinGroupMemberAsync(accessToken, iTwinId, memberId) {
|
|
28
|
+
const url = `${this._baseUrl}/${iTwinId}/members/groups/${memberId}`;
|
|
29
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "member");
|
|
30
|
+
}
|
|
31
|
+
/** Add new iTwin group members
|
|
32
|
+
* @param accessToken The client access token string
|
|
33
|
+
* @param iTwinId The id of the iTwin
|
|
34
|
+
* @param newMembers The list of new members to be added along with their role
|
|
35
|
+
* @returns Member[]
|
|
36
|
+
*/
|
|
37
|
+
async addITwinGroupMembersAsync(accessToken, iTwinId, newMembers) {
|
|
38
|
+
const url = `${this._baseUrl}/${iTwinId}/members/groups`;
|
|
39
|
+
const body = {
|
|
40
|
+
members: newMembers,
|
|
41
|
+
};
|
|
42
|
+
return this.sendGenericAPIRequest(accessToken, "POST", url, body, "members");
|
|
43
|
+
}
|
|
44
|
+
/** Remove the specified group member from the iTwin
|
|
45
|
+
* @param accessToken The client access token string
|
|
46
|
+
* @param iTwinId The id of the iTwin
|
|
47
|
+
* @param memberId The id of the member
|
|
48
|
+
* @returns No Content
|
|
49
|
+
*/
|
|
50
|
+
async removeITwinGroupMemberAsync(accessToken, iTwinId, memberId) {
|
|
51
|
+
const url = `${this._baseUrl}/${iTwinId}/members/groups/${memberId}`;
|
|
52
|
+
return this.sendGenericAPIRequest(accessToken, "DELETE", url);
|
|
53
|
+
}
|
|
54
|
+
/** Update iTwin group member roles
|
|
55
|
+
* @param accessToken The client access token string
|
|
56
|
+
* @param iTwinId The id of the iTwin
|
|
57
|
+
* @param memberId The id of the member
|
|
58
|
+
* @param roleIds The ids of the roles to be assigned
|
|
59
|
+
* @returns Member
|
|
60
|
+
*/
|
|
61
|
+
async updateITwinGroupMemberAsync(accessToken, iTwinId, memberId, roleIds) {
|
|
62
|
+
const url = `${this._baseUrl}/${iTwinId}/members/groups/${memberId}`;
|
|
63
|
+
const body = {
|
|
64
|
+
roleIds,
|
|
65
|
+
};
|
|
66
|
+
return this.sendGenericAPIRequest(accessToken, "PATCH", url, body, "member");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.GroupMembersClient = GroupMembersClient;
|
|
70
|
+
//# sourceMappingURL=GroupMembersClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupMembersClient.js","sourceRoot":"","sources":["../../../src/subClients/GroupMembersClient.ts"],"names":[],"mappings":";;;AAcA,6CAA0C;AAE1C,MAAa,kBACX,SAAQ,uBAAU;IAElB,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,2BAA2B,CACtC,WAAwB,EACxB,OAAe,EACf,GAA2B;QAE3B,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,iBAAiB,CAAC;QAEvD,IAAI,GAAG,EAAE;YACP,GAAG,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,EACT,SAAS,CACV,CAAC,CAAC,sCAAsC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,wBAAwB,CACnC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,yBAAyB,CACpC,WAAwB,EACxB,OAAe,EACf,UAAyB;QAEzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,iBAAiB,CAAC;QACzD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,UAAU;SACpB,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,MAAM,EACN,GAAG,EACH,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,2BAA2B,CACtC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,2BAA2B,CACtC,WAAwB,EACxB,OAAe,EACf,QAAgB,EAChB,OAAiB;QAEjB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG;YACX,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,OAAO,EACP,GAAG,EACH,IAAI,EACJ,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AArHD,gDAqHC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccessControlClient\n */\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type {\n AccessControlAPIResponse,\n AccessControlQueryArg,\n GroupMember,\n IGroupMembersClient,\n} from \"../accessControlTypes\";\nimport { BaseClient } from \"./BaseClient\";\n\nexport class GroupMembersClient\n extends BaseClient\n implements IGroupMembersClient {\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of iTwin group members and their roles assignments.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @returns Array of members\n */\n public async queryITwinGroupMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n arg?: AccessControlQueryArg\n ): Promise<AccessControlAPIResponse<GroupMember[]>> {\n let url = `${this._baseUrl}/${iTwinId}/members/groups`;\n\n if (arg) {\n url += `?${this.getQueryString(arg)}`;\n }\n\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined,\n \"members\"\n ); // TODO: Consider how to handle paging\n }\n\n /** Retrieves a specific group member for a specified iTwin.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns Member\n */\n public async getITwinGroupMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<GroupMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/groups/${memberId}`;\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined,\n \"member\"\n );\n }\n\n /** Add new iTwin group members\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param newMembers The list of new members to be added along with their role\n * @returns Member[]\n */\n public async addITwinGroupMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n newMembers: GroupMember[]\n ): Promise<AccessControlAPIResponse<GroupMember[]>> {\n const url = `${this._baseUrl}/${iTwinId}/members/groups`;\n const body = {\n members: newMembers,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"POST\",\n url,\n body,\n \"members\"\n );\n }\n\n /** Remove the specified group member from the iTwin\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns No Content\n */\n public async removeITwinGroupMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<undefined>> {\n const url = `${this._baseUrl}/${iTwinId}/members/groups/${memberId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n\n /** Update iTwin group member roles\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @param roleIds The ids of the roles to be assigned\n * @returns Member\n */\n public async updateITwinGroupMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string,\n roleIds: string[]\n ): Promise<AccessControlAPIResponse<GroupMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/groups/${memberId}`;\n const body = {\n roleIds,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"PATCH\",\n url,\n body,\n \"member\"\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module AccessControlClient
|
|
3
|
+
*/
|
|
4
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
5
|
+
import type { AccessControlAPIResponse, Group, IGroupsClient } from "../accessControlTypes";
|
|
6
|
+
import { BaseClient } from "./BaseClient";
|
|
7
|
+
export declare class GroupsClient extends BaseClient implements IGroupsClient {
|
|
8
|
+
constructor(url?: string);
|
|
9
|
+
/** Retrieves a list of available user roles that are defined for a specified iTwin
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Group[]
|
|
13
|
+
*/
|
|
14
|
+
getITwinGroupsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Group[]>>;
|
|
15
|
+
/** Retrieves the specified role for the specified iTwin
|
|
16
|
+
* @param accessToken The client access token string
|
|
17
|
+
* @param iTwinId The id of the iTwin
|
|
18
|
+
* @returns Group
|
|
19
|
+
*/
|
|
20
|
+
getITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<Group>>;
|
|
21
|
+
/** Creates a new iTwin group
|
|
22
|
+
* @param accessToken The client access token string
|
|
23
|
+
* @param iTwinId The id of the iTwin
|
|
24
|
+
* @param group The group to be created
|
|
25
|
+
* @returns Group
|
|
26
|
+
*/
|
|
27
|
+
createITwinGroupAsync(accessToken: AccessToken, iTwinId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
|
|
28
|
+
/** Delete the specified iTwin group
|
|
29
|
+
* @param accessToken The client access token string
|
|
30
|
+
* @param iTwinId The id of the iTwin
|
|
31
|
+
* @param groupId The id of the group to remove
|
|
32
|
+
* @returns No Content
|
|
33
|
+
*/
|
|
34
|
+
deleteITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
35
|
+
/** Update the specified iTwin group
|
|
36
|
+
* @param accessToken The client access token string
|
|
37
|
+
* @param iTwinId The id of the iTwin
|
|
38
|
+
* @param groupId The id of the role to update
|
|
39
|
+
* @param group The updated group
|
|
40
|
+
* @returns Role
|
|
41
|
+
*/
|
|
42
|
+
updateITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=GroupsClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupsClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/GroupsClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,YAAa,SAAQ,UAAW,YAAW,aAAa;gBAChD,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;QAII;IACS,mBAAmB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC;IAK7C;;;;QAII;IACS,kBAAkB,CAC7B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAK3C;;;;;QAKI;IACS,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAK3C;;;;;QAKI;IACS,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAK/C;;;;;;QAMI;IACS,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;CAI5C"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupsClient = void 0;
|
|
4
|
+
const BaseClient_1 = require("./BaseClient");
|
|
5
|
+
class GroupsClient extends BaseClient_1.BaseClient {
|
|
6
|
+
constructor(url) {
|
|
7
|
+
super(url);
|
|
8
|
+
}
|
|
9
|
+
/** Retrieves a list of available user roles that are defined for a specified iTwin
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Group[]
|
|
13
|
+
*/
|
|
14
|
+
async getITwinGroupsAsync(accessToken, iTwinId) {
|
|
15
|
+
const url = `${this._baseUrl}/${iTwinId}/groups`;
|
|
16
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "groups");
|
|
17
|
+
}
|
|
18
|
+
/** Retrieves the specified role for the specified iTwin
|
|
19
|
+
* @param accessToken The client access token string
|
|
20
|
+
* @param iTwinId The id of the iTwin
|
|
21
|
+
* @returns Group
|
|
22
|
+
*/
|
|
23
|
+
async getITwinGroupAsync(accessToken, iTwinId, groupId) {
|
|
24
|
+
const url = `${this._baseUrl}/${iTwinId}/groups/${groupId}`;
|
|
25
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "group");
|
|
26
|
+
}
|
|
27
|
+
/** Creates a new iTwin group
|
|
28
|
+
* @param accessToken The client access token string
|
|
29
|
+
* @param iTwinId The id of the iTwin
|
|
30
|
+
* @param group The group to be created
|
|
31
|
+
* @returns Group
|
|
32
|
+
*/
|
|
33
|
+
async createITwinGroupAsync(accessToken, iTwinId, group) {
|
|
34
|
+
const url = `${this._baseUrl}/${iTwinId}/groups`;
|
|
35
|
+
return this.sendGenericAPIRequest(accessToken, "POST", url, group, "group");
|
|
36
|
+
}
|
|
37
|
+
/** Delete the specified iTwin group
|
|
38
|
+
* @param accessToken The client access token string
|
|
39
|
+
* @param iTwinId The id of the iTwin
|
|
40
|
+
* @param groupId The id of the group to remove
|
|
41
|
+
* @returns No Content
|
|
42
|
+
*/
|
|
43
|
+
async deleteITwinGroupAsync(accessToken, iTwinId, groupId) {
|
|
44
|
+
const url = `${this._baseUrl}/${iTwinId}/groups/${groupId}`;
|
|
45
|
+
return this.sendGenericAPIRequest(accessToken, "DELETE", url);
|
|
46
|
+
}
|
|
47
|
+
/** Update the specified iTwin group
|
|
48
|
+
* @param accessToken The client access token string
|
|
49
|
+
* @param iTwinId The id of the iTwin
|
|
50
|
+
* @param groupId The id of the role to update
|
|
51
|
+
* @param group The updated group
|
|
52
|
+
* @returns Role
|
|
53
|
+
*/
|
|
54
|
+
async updateITwinGroupAsync(accessToken, iTwinId, groupId, group) {
|
|
55
|
+
const url = `${this._baseUrl}/${iTwinId}/groups/${groupId}`;
|
|
56
|
+
return this.sendGenericAPIRequest(accessToken, "PATCH", url, group, "group");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.GroupsClient = GroupsClient;
|
|
60
|
+
//# sourceMappingURL=GroupsClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupsClient.js","sourceRoot":"","sources":["../../../src/subClients/GroupsClient.ts"],"names":[],"mappings":";;;AASA,6CAA0C;AAE1C,MAAa,YAAa,SAAQ,uBAAU;IAC1C,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,mBAAmB,CAC9B,WAAwB,EACxB,OAAe;QAEf,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe,EACf,OAAe;QAEf,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,WAAW,OAAO,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,qBAAqB,CAChC,WAAwB,EACxB,OAAe,EACf,KAAY;QAEZ,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,qBAAqB,CAChC,WAAwB,EACxB,OAAe,EACf,OAAe;QAEf,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,WAAW,OAAO,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;QAMI;IACG,KAAK,CAAC,qBAAqB,CAChC,WAAwB,EACxB,OAAe,EACf,OAAe,EACf,KAAY;QAEZ,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,WAAW,OAAO,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;CACF;AA9ED,oCA8EC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccessControlClient\n */\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type { AccessControlAPIResponse, Group, IGroupsClient } from \"../accessControlTypes\";\nimport { BaseClient } from \"./BaseClient\";\n\nexport class GroupsClient extends BaseClient implements IGroupsClient{\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of available user roles that are defined for a specified iTwin\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @returns Group[]\n */\n public async getITwinGroupsAsync(\n accessToken: AccessToken,\n iTwinId: string,\n ): Promise<AccessControlAPIResponse<Group[]>>{\n const url = `${this._baseUrl}/${iTwinId}/groups`;\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"groups\");\n }\n\n /** Retrieves the specified role for the specified iTwin\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @returns Group\n */\n public async getITwinGroupAsync(\n accessToken: AccessToken,\n iTwinId: string,\n groupId: string,\n ): Promise<AccessControlAPIResponse<Group>>{\n const url = `${this._baseUrl}/${iTwinId}/groups/${groupId}`;\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"group\");\n }\n\n /** Creates a new iTwin group\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param group The group to be created\n * @returns Group\n */\n public async createITwinGroupAsync(\n accessToken: AccessToken,\n iTwinId: string,\n group: Group\n ): Promise<AccessControlAPIResponse<Group>>{\n const url = `${this._baseUrl}/${iTwinId}/groups`;\n return this.sendGenericAPIRequest(accessToken, \"POST\", url, group, \"group\");\n }\n\n /** Delete the specified iTwin group\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param groupId The id of the group to remove\n * @returns No Content\n */\n public async deleteITwinGroupAsync(\n accessToken: AccessToken,\n iTwinId: string,\n groupId: string,\n ): Promise<AccessControlAPIResponse<undefined>>{\n const url = `${this._baseUrl}/${iTwinId}/groups/${groupId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n\n /** Update the specified iTwin group\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param groupId The id of the role to update\n * @param group The updated group\n * @returns Role\n */\n public async updateITwinGroupAsync(\n accessToken: AccessToken,\n iTwinId: string,\n groupId: string,\n group: Group\n ): Promise<AccessControlAPIResponse<Group>>{\n const url = `${this._baseUrl}/${iTwinId}/groups/${groupId}`;\n return this.sendGenericAPIRequest(accessToken, \"PATCH\", url, group, \"group\");\n }\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module AccessControlClient
|
|
3
|
+
*/
|
|
4
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
5
|
+
import type { AccessControlAPIResponse, AccessControlQueryArg, IUserMembersClient, UserMember } from "../accessControlTypes";
|
|
6
|
+
import { BaseClient } from "./BaseClient";
|
|
7
|
+
export declare class UserMembersClient extends BaseClient implements IUserMembersClient {
|
|
8
|
+
constructor(url?: string);
|
|
9
|
+
/** Retrieves a list of iTwin user members and their roles assignments.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
queryITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<UserMember[]>>;
|
|
15
|
+
/** Retrieves a specific user member for a specified iTwin.
|
|
16
|
+
* @param accessToken The client access token string
|
|
17
|
+
* @param iTwinId The id of the iTwin
|
|
18
|
+
* @param memberId The id of the member
|
|
19
|
+
* @returns Member
|
|
20
|
+
*/
|
|
21
|
+
getITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<UserMember>>;
|
|
22
|
+
/** Add new iTwin user members
|
|
23
|
+
* @param accessToken The client access token string
|
|
24
|
+
* @param iTwinId The id of the iTwin
|
|
25
|
+
* @param newMembers The list of new members to be added along with their role
|
|
26
|
+
* @returns Member[]
|
|
27
|
+
*/
|
|
28
|
+
addITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: UserMember[]): Promise<AccessControlAPIResponse<UserMember[]>>;
|
|
29
|
+
/** Remove the specified user member from the iTwin
|
|
30
|
+
* @param accessToken The client access token string
|
|
31
|
+
* @param iTwinId The id of the iTwin
|
|
32
|
+
* @param memberId The id of the member
|
|
33
|
+
* @returns No Content
|
|
34
|
+
*/
|
|
35
|
+
removeITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
36
|
+
/** Update iTwin user member roles
|
|
37
|
+
* @param accessToken The client access token string
|
|
38
|
+
* @param iTwinId The id of the iTwin
|
|
39
|
+
* @param memberId The id of the member
|
|
40
|
+
* @param roleIds The ids of the roles to be assigned
|
|
41
|
+
* @returns Member
|
|
42
|
+
*/
|
|
43
|
+
updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=UserMembersClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMembersClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/UserMembersClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,iBACX,SAAQ,UACR,YAAW,kBAAkB;gBACV,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;OAIG;IACU,0BAA0B,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,qBAAqB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC,CAAC;IAgBlD;;;;;OAKG;IACU,uBAAuB,CAClC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAWhD;;;;;OAKG;IACU,wBAAwB,CACnC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EAAE,GACvB,OAAO,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC,CAAC;IAclD;;;;;OAKG;IACU,0BAA0B,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAK/C;;;;;;OAMG;IACU,0BAA0B,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;CAajD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserMembersClient = void 0;
|
|
4
|
+
const BaseClient_1 = require("./BaseClient");
|
|
5
|
+
class UserMembersClient extends BaseClient_1.BaseClient {
|
|
6
|
+
constructor(url) {
|
|
7
|
+
super(url);
|
|
8
|
+
}
|
|
9
|
+
/** Retrieves a list of iTwin user members and their roles assignments.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
async queryITwinUserMembersAsync(accessToken, iTwinId, arg) {
|
|
15
|
+
let url = `${this._baseUrl}/${iTwinId}/members/users`;
|
|
16
|
+
if (arg) {
|
|
17
|
+
url += `?${this.getQueryString(arg)}`;
|
|
18
|
+
}
|
|
19
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "members"); // TODO: Consider how to handle paging
|
|
20
|
+
}
|
|
21
|
+
/** Retrieves a specific user member for a specified iTwin.
|
|
22
|
+
* @param accessToken The client access token string
|
|
23
|
+
* @param iTwinId The id of the iTwin
|
|
24
|
+
* @param memberId The id of the member
|
|
25
|
+
* @returns Member
|
|
26
|
+
*/
|
|
27
|
+
async getITwinUserMemberAsync(accessToken, iTwinId, memberId) {
|
|
28
|
+
const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;
|
|
29
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "member");
|
|
30
|
+
}
|
|
31
|
+
/** Add new iTwin user members
|
|
32
|
+
* @param accessToken The client access token string
|
|
33
|
+
* @param iTwinId The id of the iTwin
|
|
34
|
+
* @param newMembers The list of new members to be added along with their role
|
|
35
|
+
* @returns Member[]
|
|
36
|
+
*/
|
|
37
|
+
async addITwinUserMembersAsync(accessToken, iTwinId, newMembers) {
|
|
38
|
+
const url = `${this._baseUrl}/${iTwinId}/members/users`;
|
|
39
|
+
const body = {
|
|
40
|
+
members: newMembers,
|
|
41
|
+
};
|
|
42
|
+
return this.sendGenericAPIRequest(accessToken, "POST", url, body, "members");
|
|
43
|
+
}
|
|
44
|
+
/** Remove the specified user member from the iTwin
|
|
45
|
+
* @param accessToken The client access token string
|
|
46
|
+
* @param iTwinId The id of the iTwin
|
|
47
|
+
* @param memberId The id of the member
|
|
48
|
+
* @returns No Content
|
|
49
|
+
*/
|
|
50
|
+
async removeITwinUserMemberAsync(accessToken, iTwinId, memberId) {
|
|
51
|
+
const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;
|
|
52
|
+
return this.sendGenericAPIRequest(accessToken, "DELETE", url);
|
|
53
|
+
}
|
|
54
|
+
/** Update iTwin user member roles
|
|
55
|
+
* @param accessToken The client access token string
|
|
56
|
+
* @param iTwinId The id of the iTwin
|
|
57
|
+
* @param memberId The id of the member
|
|
58
|
+
* @param roleIds The ids of the roles to be assigned
|
|
59
|
+
* @returns Member
|
|
60
|
+
*/
|
|
61
|
+
async updateITwinUserMemberAsync(accessToken, iTwinId, memberId, roleIds) {
|
|
62
|
+
const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;
|
|
63
|
+
const body = {
|
|
64
|
+
roleIds,
|
|
65
|
+
};
|
|
66
|
+
return this.sendGenericAPIRequest(accessToken, "PATCH", url, body, "member");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.UserMembersClient = UserMembersClient;
|
|
70
|
+
//# sourceMappingURL=UserMembersClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMembersClient.js","sourceRoot":"","sources":["../../../src/subClients/UserMembersClient.ts"],"names":[],"mappings":";;;AAcA,6CAA0C;AAE1C,MAAa,iBACX,SAAQ,uBAAU;IAElB,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,0BAA0B,CACrC,WAAwB,EACxB,OAAe,EACf,GAA2B;QAE3B,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,gBAAgB,CAAC;QAEtD,IAAI,GAAG,EAAE;YACP,GAAG,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACvC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,EACT,SAAS,CACV,CAAC,CAAC,sCAAsC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,uBAAuB,CAClC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,wBAAwB,CACnC,WAAwB,EACxB,OAAe,EACf,UAAwB;QAExB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,gBAAgB,CAAC;QACxD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,UAAU;SACpB,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,MAAM,EACN,GAAG,EACH,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,0BAA0B,CACrC,WAAwB,EACxB,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,0BAA0B,CACrC,WAAwB,EACxB,OAAe,EACf,QAAgB,EAChB,OAAiB;QAEjB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG;YACX,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,OAAO,EACP,GAAG,EACH,IAAI,EACJ,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AArHD,8CAqHC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module AccessControlClient\n */\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type {\n AccessControlAPIResponse,\n AccessControlQueryArg,\n IUserMembersClient,\n UserMember,\n} from \"../accessControlTypes\";\nimport { BaseClient } from \"./BaseClient\";\n\nexport class UserMembersClient\n extends BaseClient\n implements IUserMembersClient {\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of iTwin user members and their roles assignments.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @returns Array of members\n */\n public async queryITwinUserMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n arg?: AccessControlQueryArg\n ): Promise<AccessControlAPIResponse<UserMember[]>> {\n let url = `${this._baseUrl}/${iTwinId}/members/users`;\n\n if (arg) {\n url += `?${this.getQueryString(arg)}`;\n }\n\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined,\n \"members\"\n ); // TODO: Consider how to handle paging\n }\n\n /** Retrieves a specific user member for a specified iTwin.\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns Member\n */\n public async getITwinUserMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<UserMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n return this.sendGenericAPIRequest(\n accessToken,\n \"GET\",\n url,\n undefined,\n \"member\"\n );\n }\n\n /** Add new iTwin user members\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param newMembers The list of new members to be added along with their role\n * @returns Member[]\n */\n public async addITwinUserMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n newMembers: UserMember[]\n ): Promise<AccessControlAPIResponse<UserMember[]>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users`;\n const body = {\n members: newMembers,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"POST\",\n url,\n body,\n \"members\"\n );\n }\n\n /** Remove the specified user member from the iTwin\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @returns No Content\n */\n public async removeITwinUserMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<undefined>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n\n /** Update iTwin user member roles\n * @param accessToken The client access token string\n * @param iTwinId The id of the iTwin\n * @param memberId The id of the member\n * @param roleIds The ids of the roles to be assigned\n * @returns Member\n */\n public async updateITwinUserMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string,\n roleIds: string[]\n ): Promise<AccessControlAPIResponse<UserMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/users/${memberId}`;\n const body = {\n roleIds,\n };\n return this.sendGenericAPIRequest(\n accessToken,\n \"PATCH\",\n url,\n body,\n \"member\"\n );\n }\n}\n"]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module AccessControlClient
|
|
3
3
|
*/
|
|
4
|
-
import type { IAccessControlClient,
|
|
4
|
+
import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IPermissionsClient, IRolesClient, IUserMembersClient } from "./accessControlTypes";
|
|
5
5
|
export declare class AccessControlClient implements IAccessControlClient {
|
|
6
6
|
permissions: IPermissionsClient;
|
|
7
7
|
roles: IRolesClient;
|
|
8
|
-
|
|
8
|
+
groups: IGroupsClient;
|
|
9
|
+
userMembers: IUserMembersClient;
|
|
10
|
+
groupMembers: IGroupMembersClient;
|
|
9
11
|
constructor(url?: string);
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=AccessControlClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlClient.d.ts","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"AccessControlClient.d.ts","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,mBAAoB,YAAW,oBAAoB;IACvD,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;gBAEtB,GAAG,CAAC,EAAE,MAAM;CAOhC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { MembersClient } from "./subClients/MembersClient";
|
|
2
1
|
import { PermissionsClient } from "./subClients/PermissionsClient";
|
|
3
2
|
import { RolesClient } from "./subClients/RolesClient";
|
|
3
|
+
import { GroupsClient } from "./subClients/GroupsClient";
|
|
4
|
+
import { UserMembersClient } from "./subClients/UserMembersClient";
|
|
5
|
+
import { GroupMembersClient } from "./subClients/GroupMembersClient";
|
|
4
6
|
export class AccessControlClient {
|
|
5
7
|
constructor(url) {
|
|
6
8
|
this.permissions = new PermissionsClient(url);
|
|
7
9
|
this.roles = new RolesClient(url);
|
|
8
|
-
this.
|
|
10
|
+
this.groups = new GroupsClient(url);
|
|
11
|
+
this.userMembers = new UserMembersClient(url);
|
|
12
|
+
this.groupMembers = new GroupMembersClient(url);
|
|
9
13
|
}
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=AccessControlClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlClient.js","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccessControlClient.js","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,OAAO,mBAAmB;IAO9B,YAAmB,GAAY;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type {\r\n IAccessControlClient,\r\n IGroupMembersClient,\r\n IGroupsClient,\r\n IPermissionsClient,\r\n IRolesClient,\r\n IUserMembersClient,\r\n} from \"./accessControlTypes\";\r\nimport { PermissionsClient } from \"./subClients/PermissionsClient\";\r\nimport { RolesClient } from \"./subClients/RolesClient\";\r\nimport { GroupsClient } from \"./subClients/GroupsClient\";\r\nimport { UserMembersClient } from \"./subClients/UserMembersClient\";\r\nimport { GroupMembersClient } from \"./subClients/GroupMembersClient\";\r\n\r\nexport class AccessControlClient implements IAccessControlClient {\r\n public permissions: IPermissionsClient;\r\n public roles: IRolesClient;\r\n public groups: IGroupsClient;\r\n public userMembers: IUserMembersClient;\r\n public groupMembers: IGroupMembersClient;\r\n\r\n public constructor(url?: string) {\r\n this.permissions = new PermissionsClient(url);\r\n this.roles = new RolesClient(url);\r\n this.groups = new GroupsClient(url);\r\n this.userMembers = new UserMembersClient(url);\r\n this.groupMembers = new GroupMembersClient(url);\r\n }\r\n}\r\n"]}
|
|
@@ -5,7 +5,9 @@ import type { AccessToken } from "@itwin/core-bentley";
|
|
|
5
5
|
export interface IAccessControlClient {
|
|
6
6
|
permissions: IPermissionsClient;
|
|
7
7
|
roles: IRolesClient;
|
|
8
|
-
|
|
8
|
+
groups: IGroupsClient;
|
|
9
|
+
userMembers: IUserMembersClient;
|
|
10
|
+
groupMembers: IGroupMembersClient;
|
|
9
11
|
}
|
|
10
12
|
export interface IPermissionsClient {
|
|
11
13
|
/** Retrieves the list of all available permissions **/
|
|
@@ -13,17 +15,29 @@ export interface IPermissionsClient {
|
|
|
13
15
|
/** Retrieves a list of permissions the identity has for a specified iTwin */
|
|
14
16
|
getITwinPermissionsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Permission[]>>;
|
|
15
17
|
}
|
|
16
|
-
export interface
|
|
17
|
-
/** Retrieves a list of
|
|
18
|
-
|
|
19
|
-
/** Retrieves a specific member for a specified iTwin. */
|
|
20
|
-
|
|
21
|
-
/** Add new iTwin members */
|
|
22
|
-
|
|
23
|
-
/** Remove the specified iTwin member */
|
|
24
|
-
|
|
25
|
-
/** Update iTwin
|
|
26
|
-
|
|
18
|
+
export interface IUserMembersClient {
|
|
19
|
+
/** Retrieves a list of user members and their roles assigned to a specified iTwin. */
|
|
20
|
+
queryITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<UserMember[]>>;
|
|
21
|
+
/** Retrieves a specific user member for a specified iTwin. */
|
|
22
|
+
getITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<UserMember>>;
|
|
23
|
+
/** Add new iTwin user members */
|
|
24
|
+
addITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: UserMember[]): Promise<AccessControlAPIResponse<UserMember[]>>;
|
|
25
|
+
/** Remove the specified iTwin user member */
|
|
26
|
+
removeITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
27
|
+
/** Update iTwin user member roles */
|
|
28
|
+
updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
|
|
29
|
+
}
|
|
30
|
+
export interface IGroupMembersClient {
|
|
31
|
+
/** Retrieves a list of group members and their roles assigned to a specified iTwin. */
|
|
32
|
+
queryITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
33
|
+
/** Retrieves a specific group member for a specified iTwin. */
|
|
34
|
+
getITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<GroupMember>>;
|
|
35
|
+
/** Add new iTwin group members */
|
|
36
|
+
addITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: GroupMember[]): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
37
|
+
/** Remove the specified iTwin group member */
|
|
38
|
+
removeITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
39
|
+
/** Update iTwin group member roles */
|
|
40
|
+
updateITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<GroupMember>>;
|
|
27
41
|
}
|
|
28
42
|
export interface IRolesClient {
|
|
29
43
|
/** Retrieves a list of roles the for a specified iTwin */
|
|
@@ -37,6 +51,18 @@ export interface IRolesClient {
|
|
|
37
51
|
/** Updates an existing iTwin Role */
|
|
38
52
|
updateITwinRoleAsync(accessToken: AccessToken, iTwinId: string, roleId: string, role: Role): Promise<AccessControlAPIResponse<Role>>;
|
|
39
53
|
}
|
|
54
|
+
export interface IGroupsClient {
|
|
55
|
+
/** Retrieves a list of groups the for a specified iTwin */
|
|
56
|
+
getITwinGroupsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Group[]>>;
|
|
57
|
+
/** Retrieves a group for a specified iTwin */
|
|
58
|
+
getITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<Group>>;
|
|
59
|
+
/** Creates a new iTwin group */
|
|
60
|
+
createITwinGroupAsync(accessToken: AccessToken, iTwinId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
|
|
61
|
+
/** Removes an existing iTwin group */
|
|
62
|
+
deleteITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
63
|
+
/** Updates an existing iTwin group */
|
|
64
|
+
updateITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
|
|
65
|
+
}
|
|
40
66
|
export interface AccessControlQueryArg {
|
|
41
67
|
top?: number;
|
|
42
68
|
skip?: number;
|
|
@@ -58,7 +84,7 @@ export interface ErrorDetail {
|
|
|
58
84
|
target?: string;
|
|
59
85
|
}
|
|
60
86
|
export declare type Permission = string;
|
|
61
|
-
export interface
|
|
87
|
+
export interface UserMember {
|
|
62
88
|
id?: string;
|
|
63
89
|
roleid?: string;
|
|
64
90
|
email?: string;
|
|
@@ -67,10 +93,23 @@ export interface Member {
|
|
|
67
93
|
organization?: string;
|
|
68
94
|
roles?: Omit<Role, "permissions">[];
|
|
69
95
|
}
|
|
96
|
+
export interface GroupMember {
|
|
97
|
+
id?: string;
|
|
98
|
+
groupName?: string;
|
|
99
|
+
groupDescription?: string;
|
|
100
|
+
roles?: Omit<Role, "permissions">[];
|
|
101
|
+
}
|
|
70
102
|
export interface Role {
|
|
71
103
|
id?: string;
|
|
72
104
|
displayName: string;
|
|
73
105
|
description: string;
|
|
74
106
|
permissions: Permission[];
|
|
75
107
|
}
|
|
108
|
+
export interface Group {
|
|
109
|
+
id?: string;
|
|
110
|
+
name?: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
users?: string[];
|
|
113
|
+
imsGroups?: string[];
|
|
114
|
+
}
|
|
76
115
|
//# sourceMappingURL=accessControlTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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"}
|