@itwin/access-control-client 2.1.0 → 2.3.0
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 +3 -0
- package/README.md +62 -0
- package/lib/cjs/AccessControlClient.d.ts +2 -1
- package/lib/cjs/AccessControlClient.d.ts.map +1 -1
- package/lib/cjs/AccessControlClient.js +2 -0
- package/lib/cjs/AccessControlClient.js.map +1 -1
- package/lib/cjs/accessControlTypes.d.ts +19 -1
- package/lib/cjs/accessControlTypes.d.ts.map +1 -1
- package/lib/cjs/accessControlTypes.js.map +1 -1
- package/lib/cjs/subClients/BaseClient.d.ts +6 -2
- package/lib/cjs/subClients/BaseClient.d.ts.map +1 -1
- package/lib/cjs/subClients/BaseClient.js +4 -3
- package/lib/cjs/subClients/BaseClient.js.map +1 -1
- package/lib/cjs/subClients/OwnerMembersClient.d.ts +30 -0
- package/lib/cjs/subClients/OwnerMembersClient.d.ts.map +1 -0
- package/lib/cjs/subClients/OwnerMembersClient.js +43 -0
- package/lib/cjs/subClients/OwnerMembersClient.js.map +1 -0
- package/lib/cjs/subClients/RolesClient.d.ts +3 -1
- package/lib/cjs/subClients/RolesClient.d.ts.map +1 -1
- package/lib/cjs/subClients/RolesClient.js +2 -2
- package/lib/cjs/subClients/RolesClient.js.map +1 -1
- package/lib/esm/AccessControlClient.d.ts +2 -1
- package/lib/esm/AccessControlClient.d.ts.map +1 -1
- package/lib/esm/AccessControlClient.js +2 -0
- package/lib/esm/AccessControlClient.js.map +1 -1
- package/lib/esm/accessControlTypes.d.ts +19 -1
- package/lib/esm/accessControlTypes.d.ts.map +1 -1
- package/lib/esm/accessControlTypes.js.map +1 -1
- package/lib/esm/subClients/BaseClient.d.ts +6 -2
- package/lib/esm/subClients/BaseClient.d.ts.map +1 -1
- package/lib/esm/subClients/BaseClient.js +4 -3
- package/lib/esm/subClients/BaseClient.js.map +1 -1
- package/lib/esm/subClients/OwnerMembersClient.d.ts +30 -0
- package/lib/esm/subClients/OwnerMembersClient.d.ts.map +1 -0
- package/lib/esm/subClients/OwnerMembersClient.js +39 -0
- package/lib/esm/subClients/OwnerMembersClient.js.map +1 -0
- package/lib/esm/subClients/RolesClient.d.ts +3 -1
- package/lib/esm/subClients/RolesClient.d.ts.map +1 -1
- package/lib/esm/subClients/RolesClient.js +2 -2
- package/lib/esm/subClients/RolesClient.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -276,7 +276,69 @@ async function printiTwinRole(): Promise<void> {
|
|
|
276
276
|
);
|
|
277
277
|
}
|
|
278
278
|
```
|
|
279
|
+
### Get list of Owner Members for an iTwin
|
|
279
280
|
|
|
281
|
+
```typescript
|
|
282
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
283
|
+
import {
|
|
284
|
+
AccessControlClient,
|
|
285
|
+
IAccessControlClient,
|
|
286
|
+
OwnerMember,
|
|
287
|
+
AccessControlAPIResponse,
|
|
288
|
+
} from "@itwin/access-control-client";
|
|
289
|
+
|
|
290
|
+
/** Function that queries all Owner Members for a given iTwin and prints their ids to the console. */
|
|
291
|
+
async function printiTwinOwnerMemberIds(): Promise<void> {
|
|
292
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
293
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
294
|
+
|
|
295
|
+
const iTwinsResponse: AccessControlAPIResponse<OwnerMember[]> =
|
|
296
|
+
await accessControlClient.ownerMembers.queryITwinOwnerMembersAsync(
|
|
297
|
+
accessToken,
|
|
298
|
+
"9bd7d24d-1508-4dba-99ab-23b3166401a0"
|
|
299
|
+
);
|
|
300
|
+
|
|
301
|
+
iTwinsResponse.data!.forEach((actualOwnerMember: OwnerMember) => {
|
|
302
|
+
console.log(actualOwnerMember.id);
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Create, and delete an Owner Member
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
311
|
+
import {
|
|
312
|
+
AccessControlClient,
|
|
313
|
+
IAccessControlClient,
|
|
314
|
+
OwnerMember,
|
|
315
|
+
AccessControlAPIResponse,
|
|
316
|
+
} from "@itwin/access-control-client";
|
|
317
|
+
|
|
318
|
+
/** Function that creates, and deletes an owner member. */
|
|
319
|
+
async function createAndRemoveOwnerMember(): Promise<void> {
|
|
320
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
321
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
322
|
+
|
|
323
|
+
// Create owner member
|
|
324
|
+
const createOwnerMemberResponse: AccessControlAPIResponse<OwnerMember> =
|
|
325
|
+
await accessControlClient.ownerMembers.addITwinOwnerMemberAsync(
|
|
326
|
+
accessToken,
|
|
327
|
+
"71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
|
|
328
|
+
{
|
|
329
|
+
email: "test.user@bentley.com",
|
|
330
|
+
}
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
// Delete owner member
|
|
334
|
+
const removeOwnerMemberResponse: AccessControlAPIResponse<undefined> =
|
|
335
|
+
await accessControlClient.ownerMembers.removeITwinOwnerMemberAsync(
|
|
336
|
+
accessToken,
|
|
337
|
+
"b1803a0c-d440-4902-b527-54bf7f72500f",
|
|
338
|
+
"6401109c-75d7-46b8-8dbd-182d02155141"
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
```
|
|
280
342
|
|
|
281
343
|
### Get list of Groups for an iTwin
|
|
282
344
|
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module AccessControlClient
|
|
3
3
|
*/
|
|
4
|
-
import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IPermissionsClient, IRolesClient, IUserMembersClient } from "./accessControlTypes";
|
|
4
|
+
import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IOwnerMembersClient, 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
9
|
userMembers: IUserMembersClient;
|
|
10
10
|
groupMembers: IGroupMembersClient;
|
|
11
|
+
ownerMembers: IOwnerMembersClient;
|
|
11
12
|
constructor(url?: string);
|
|
12
13
|
}
|
|
13
14
|
//# 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,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;
|
|
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,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,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;IAClC,YAAY,EAAE,mBAAmB,CAAC;gBAEtB,GAAG,CAAC,EAAE,MAAM;CAQhC"}
|
|
@@ -6,6 +6,7 @@ const RolesClient_1 = require("./subClients/RolesClient");
|
|
|
6
6
|
const GroupsClient_1 = require("./subClients/GroupsClient");
|
|
7
7
|
const UserMembersClient_1 = require("./subClients/UserMembersClient");
|
|
8
8
|
const GroupMembersClient_1 = require("./subClients/GroupMembersClient");
|
|
9
|
+
const OwnerMembersClient_1 = require("./subClients/OwnerMembersClient");
|
|
9
10
|
class AccessControlClient {
|
|
10
11
|
constructor(url) {
|
|
11
12
|
this.permissions = new PermissionsClient_1.PermissionsClient(url);
|
|
@@ -13,6 +14,7 @@ class AccessControlClient {
|
|
|
13
14
|
this.groups = new GroupsClient_1.GroupsClient(url);
|
|
14
15
|
this.userMembers = new UserMembersClient_1.UserMembersClient(url);
|
|
15
16
|
this.groupMembers = new GroupMembersClient_1.GroupMembersClient(url);
|
|
17
|
+
this.ownerMembers = new OwnerMembersClient_1.OwnerMembersClient(url);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
exports.AccessControlClient = AccessControlClient;
|
|
@@ -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":";;;AAgBA,sEAAmE;AACnE,0DAAuD;AACvD,4DAAyD;AACzD,sEAAmE;AACnE,wEAAqE;AACrE,wEAAqE;AAErE,MAAa,mBAAmB;IAQ9B,YAAmB,GAAY;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,2BAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,uCAAkB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,IAAI,uCAAkB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF;AAhBD,kDAgBC","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 IOwnerMembersClient,\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\nimport { OwnerMembersClient } from \"./subClients/OwnerMembersClient\";\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 public ownerMembers: IOwnerMembersClient;\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 this.ownerMembers = new OwnerMembersClient(url);\r\n }\r\n}\r\n"]}
|
|
@@ -8,6 +8,7 @@ export interface IAccessControlClient {
|
|
|
8
8
|
groups: IGroupsClient;
|
|
9
9
|
userMembers: IUserMembersClient;
|
|
10
10
|
groupMembers: IGroupMembersClient;
|
|
11
|
+
ownerMembers: IOwnerMembersClient;
|
|
11
12
|
}
|
|
12
13
|
export interface IPermissionsClient {
|
|
13
14
|
/** Retrieves the list of all available permissions **/
|
|
@@ -27,6 +28,14 @@ export interface IUserMembersClient {
|
|
|
27
28
|
/** Update iTwin user member roles */
|
|
28
29
|
updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
|
|
29
30
|
}
|
|
31
|
+
export interface IOwnerMembersClient {
|
|
32
|
+
/** Retrieves a list of owner members on a specified iTwin. */
|
|
33
|
+
queryITwinOwnerMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<OwnerMember[]>>;
|
|
34
|
+
/** Add new iTwin owner member */
|
|
35
|
+
addITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, newMember: OwnerMember): Promise<AccessControlAPIResponse<OwnerMember>>;
|
|
36
|
+
/** Remove the specified iTwin owner member */
|
|
37
|
+
removeITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
38
|
+
}
|
|
30
39
|
export interface IGroupMembersClient {
|
|
31
40
|
/** Retrieves a list of group members and their roles assigned to a specified iTwin. */
|
|
32
41
|
queryITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
@@ -41,7 +50,9 @@ export interface IGroupMembersClient {
|
|
|
41
50
|
}
|
|
42
51
|
export interface IRolesClient {
|
|
43
52
|
/** Retrieves a list of roles the for a specified iTwin */
|
|
44
|
-
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string
|
|
53
|
+
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string, additionalHeaders?: {
|
|
54
|
+
[key: string]: string;
|
|
55
|
+
}): Promise<AccessControlAPIResponse<Role[]>>;
|
|
45
56
|
/** Retrieves a role for a specified iTwin */
|
|
46
57
|
getITwinRoleAsync(accessToken: AccessToken, iTwinId: string, roleId: string): Promise<AccessControlAPIResponse<Role>>;
|
|
47
58
|
/** Creates a new iTwin Role */
|
|
@@ -93,6 +104,13 @@ export interface UserMember {
|
|
|
93
104
|
organization?: string;
|
|
94
105
|
roles?: Omit<Role, "permissions">[];
|
|
95
106
|
}
|
|
107
|
+
export interface OwnerMember {
|
|
108
|
+
id?: string;
|
|
109
|
+
email?: string;
|
|
110
|
+
givenName?: string;
|
|
111
|
+
surname?: string;
|
|
112
|
+
organization?: string;
|
|
113
|
+
}
|
|
96
114
|
export interface GroupMember {
|
|
97
115
|
id?: string;
|
|
98
116
|
groupName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessControlTypes.js","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","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\n\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport interface IAccessControlClient {\r\n permissions: IPermissionsClient;\r\n roles: IRolesClient;\r\n groups: IGroupsClient;\r\n userMembers: IUserMembersClient;\r\n groupMembers: IGroupMembersClient;\r\n}\r\n\r\nexport interface IPermissionsClient {\r\n /** Retrieves the list of all available permissions **/\r\n getPermissionsAsync(\r\n accessToken: AccessToken\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n\r\n /** Retrieves a list of permissions the identity has for a specified iTwin */\r\n getITwinPermissionsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n}\r\n\r\nexport interface IUserMembersClient {\r\n /** Retrieves a list of user members and their roles assigned to a specified iTwin. */\r\n queryITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Retrieves a specific user member for a specified iTwin. */\r\n getITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n\r\n /** Add new iTwin user members */\r\n addITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: UserMember[]\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Remove the specified iTwin user member */\r\n removeITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin user member roles */\r\n updateITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n}\r\n\r\nexport interface IGroupMembersClient {\r\n /** Retrieves a list of group members and their roles assigned to a specified iTwin. */\r\n queryITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Retrieves a specific group member for a specified iTwin. */\r\n getITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n\r\n /** Add new iTwin group members */\r\n addITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: GroupMember[]\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Remove the specified iTwin group member */\r\n removeITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin group member roles */\r\n updateITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n}\r\n\r\nexport interface IRolesClient {\r\n /** Retrieves a list of roles the for a specified iTwin */\r\n getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Role[]>>;\r\n\r\n /** Retrieves a role for a specified iTwin */\r\n getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Creates a new iTwin Role */\r\n createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Removes an existing iTwin Role */\r\n deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin Role */\r\n updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n}\r\n\r\nexport interface IGroupsClient {\r\n /** Retrieves a list of groups the for a specified iTwin */\r\n getITwinGroupsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Group[]>>;\r\n\r\n /** Retrieves a group for a specified iTwin */\r\n getITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Creates a new iTwin group */\r\n createITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n group: Group\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Removes an existing iTwin group */\r\n deleteITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin group */\r\n updateITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string,\r\n group: GroupUpdate\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n}\r\n\r\nexport interface AccessControlQueryArg {\r\n top?: number;\r\n skip?: number;\r\n}\r\n\r\nexport interface AccessControlAPIResponse<T> {\r\n data?: T;\r\n status: number;\r\n error?: Error;\r\n}\r\n\r\nexport interface Error {\r\n code: string;\r\n message: string;\r\n details?: ErrorDetail[];\r\n target?: string;\r\n}\r\n\r\nexport interface ErrorDetail {\r\n code: string;\r\n message: string;\r\n target?: string;\r\n}\r\n\r\nexport type Permission = string;\r\n\r\nexport interface UserMember {\r\n id?: string;\r\n roleid?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface GroupMember {\r\n id?: string;\r\n groupName?: string;\r\n groupDescription?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface Role {\r\n id?: string;\r\n displayName: string;\r\n description: string;\r\n permissions: Permission[];\r\n}\r\n\r\nexport interface Group {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: GroupUser[];\r\n imsGroups?: string[];\r\n}\r\n\r\nexport interface GroupUser {\r\n id?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n}\r\n\r\nexport interface GroupUpdate {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: string[];\r\n imsGroups?: string[];\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"accessControlTypes.js","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","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\n\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport interface IAccessControlClient {\r\n permissions: IPermissionsClient;\r\n roles: IRolesClient;\r\n groups: IGroupsClient;\r\n userMembers: IUserMembersClient;\r\n groupMembers: IGroupMembersClient;\r\n ownerMembers: IOwnerMembersClient;\r\n}\r\n\r\nexport interface IPermissionsClient {\r\n /** Retrieves the list of all available permissions **/\r\n getPermissionsAsync(\r\n accessToken: AccessToken\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n\r\n /** Retrieves a list of permissions the identity has for a specified iTwin */\r\n getITwinPermissionsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n}\r\n\r\nexport interface IUserMembersClient {\r\n /** Retrieves a list of user members and their roles assigned to a specified iTwin. */\r\n queryITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Retrieves a specific user member for a specified iTwin. */\r\n getITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n\r\n /** Add new iTwin user members */\r\n addITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: UserMember[]\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Remove the specified iTwin user member */\r\n removeITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin user member roles */\r\n updateITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n}\r\n\r\nexport interface IOwnerMembersClient {\r\n /** Retrieves a list of owner members on a specified iTwin. */\r\n queryITwinOwnerMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<OwnerMember[]>>;\r\n\r\n /** Add new iTwin owner member */\r\n addITwinOwnerMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMember: OwnerMember\r\n ): Promise<AccessControlAPIResponse<OwnerMember>>;\r\n\r\n /** Remove the specified iTwin owner member */\r\n removeITwinOwnerMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n}\r\n\r\nexport interface IGroupMembersClient {\r\n /** Retrieves a list of group members and their roles assigned to a specified iTwin. */\r\n queryITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Retrieves a specific group member for a specified iTwin. */\r\n getITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n\r\n /** Add new iTwin group members */\r\n addITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: GroupMember[]\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Remove the specified iTwin group member */\r\n removeITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin group member roles */\r\n updateITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n}\r\n\r\nexport interface IRolesClient {\r\n /** Retrieves a list of roles the for a specified iTwin */\r\n getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<Role[]>>;\r\n\r\n /** Retrieves a role for a specified iTwin */\r\n getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Creates a new iTwin Role */\r\n createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Removes an existing iTwin Role */\r\n deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin Role */\r\n updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n}\r\n\r\nexport interface IGroupsClient {\r\n /** Retrieves a list of groups the for a specified iTwin */\r\n getITwinGroupsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Group[]>>;\r\n\r\n /** Retrieves a group for a specified iTwin */\r\n getITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Creates a new iTwin group */\r\n createITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n group: Group\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Removes an existing iTwin group */\r\n deleteITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin group */\r\n updateITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string,\r\n group: GroupUpdate\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n}\r\n\r\nexport interface AccessControlQueryArg {\r\n top?: number;\r\n skip?: number;\r\n}\r\n\r\nexport interface AccessControlAPIResponse<T> {\r\n data?: T;\r\n status: number;\r\n error?: Error;\r\n}\r\n\r\nexport interface Error {\r\n code: string;\r\n message: string;\r\n details?: ErrorDetail[];\r\n target?: string;\r\n}\r\n\r\nexport interface ErrorDetail {\r\n code: string;\r\n message: string;\r\n target?: string;\r\n}\r\n\r\nexport type Permission = string;\r\n\r\nexport interface UserMember {\r\n id?: string;\r\n roleid?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface OwnerMember {\r\n id?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n}\r\n\r\nexport interface GroupMember {\r\n id?: string;\r\n groupName?: string;\r\n groupDescription?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface Role {\r\n id?: string;\r\n displayName: string;\r\n description: string;\r\n permissions: Permission[];\r\n}\r\n\r\nexport interface Group {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: GroupUser[];\r\n imsGroups?: string[];\r\n}\r\n\r\nexport interface GroupUser {\r\n id?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n}\r\n\r\nexport interface GroupUpdate {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: string[];\r\n imsGroups?: string[];\r\n}\r\n"]}
|
|
@@ -14,12 +14,16 @@ export declare class BaseClient {
|
|
|
14
14
|
* @param method The method type of the request (ex. GET, POST, DELETE, etc)
|
|
15
15
|
* @param url The url of the request
|
|
16
16
|
*/
|
|
17
|
-
protected sendGenericAPIRequest(accessToken: AccessToken, method: Method, url: string, data?: any, property?: string
|
|
17
|
+
protected sendGenericAPIRequest(accessToken: AccessToken, method: Method, url: string, data?: any, property?: string, additionalHeaders?: {
|
|
18
|
+
[key: string]: string;
|
|
19
|
+
}): Promise<AccessControlAPIResponse<any>>;
|
|
18
20
|
/**
|
|
19
21
|
* Build the request methods, headers, and other options
|
|
20
22
|
* @param accessTokenString The client access token string
|
|
21
23
|
*/
|
|
22
|
-
protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any
|
|
24
|
+
protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any, additionalHeaders?: {
|
|
25
|
+
[key: string]: string;
|
|
26
|
+
}): AxiosRequestConfig;
|
|
23
27
|
/**
|
|
24
28
|
* Build a query to be appended to a URL
|
|
25
29
|
* @param queryArg Object container queryable properties
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE7F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAsBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,kBAAkB;IAiBlK;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
|
|
@@ -23,8 +23,8 @@ class BaseClient {
|
|
|
23
23
|
* @param method The method type of the request (ex. GET, POST, DELETE, etc)
|
|
24
24
|
* @param url The url of the request
|
|
25
25
|
*/
|
|
26
|
-
async sendGenericAPIRequest(accessToken, method, url, data, property) {
|
|
27
|
-
const requestOptions = this.getRequestOptions(accessToken, method, url, data);
|
|
26
|
+
async sendGenericAPIRequest(accessToken, method, url, data, property, additionalHeaders) {
|
|
27
|
+
const requestOptions = this.getRequestOptions(accessToken, method, url, data, additionalHeaders);
|
|
28
28
|
try {
|
|
29
29
|
const response = await (0, axios_1.default)(requestOptions);
|
|
30
30
|
return {
|
|
@@ -47,7 +47,7 @@ class BaseClient {
|
|
|
47
47
|
* Build the request methods, headers, and other options
|
|
48
48
|
* @param accessTokenString The client access token string
|
|
49
49
|
*/
|
|
50
|
-
getRequestOptions(accessTokenString, method, url, data) {
|
|
50
|
+
getRequestOptions(accessTokenString, method, url, data, additionalHeaders) {
|
|
51
51
|
return {
|
|
52
52
|
method,
|
|
53
53
|
url,
|
|
@@ -56,6 +56,7 @@ class BaseClient {
|
|
|
56
56
|
"authorization": accessTokenString,
|
|
57
57
|
"content-type": "application/json",
|
|
58
58
|
"accept": "application/vnd.bentley.itwin-platform.v2+json",
|
|
59
|
+
...additionalHeaders,
|
|
59
60
|
},
|
|
60
61
|
validateStatus(status) {
|
|
61
62
|
return status < 500; // Resolve only if the status code is less than 500
|
|
@@ -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,
|
|
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,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,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,EACjB,iBAA6C;QAE7C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACjG,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,EACL,6DAA6D;iBAChE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU,EAAE,iBAA6C;QAC3I,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,gDAAgD;gBAC1D,GAAG,iBAAiB;aACrB;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;AA7FD,gCA6FC","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 additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data, additionalHeaders);\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, additionalHeaders?: { [key: string]: string }): 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 ...additionalHeaders,\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,30 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module AccessControlClient
|
|
3
|
+
*/
|
|
4
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
5
|
+
import type { AccessControlAPIResponse, AccessControlQueryArg, IOwnerMembersClient, OwnerMember } from "../accessControlTypes";
|
|
6
|
+
import { BaseClient } from "./BaseClient";
|
|
7
|
+
export declare class OwnerMembersClient extends BaseClient implements IOwnerMembersClient {
|
|
8
|
+
constructor(url?: string);
|
|
9
|
+
/** Retrieves a list of iTwin owner members on an iTwin.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
queryITwinOwnerMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<OwnerMember[]>>;
|
|
15
|
+
/** Add new iTwin owner member
|
|
16
|
+
* @param accessToken The client access token string
|
|
17
|
+
* @param iTwinId The id of the iTwin
|
|
18
|
+
* @param newMembers The list of new members to be added along with their role
|
|
19
|
+
* @returns Member[]
|
|
20
|
+
*/
|
|
21
|
+
addITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, newMember: OwnerMember): Promise<AccessControlAPIResponse<OwnerMember>>;
|
|
22
|
+
/** Remove the specified owner member from the iTwin
|
|
23
|
+
* @param accessToken The client access token string
|
|
24
|
+
* @param iTwinId The id of the iTwin
|
|
25
|
+
* @param memberId The id of the member
|
|
26
|
+
* @returns No Content
|
|
27
|
+
*/
|
|
28
|
+
removeITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=OwnerMembersClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerMembersClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/OwnerMembersClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACZ,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,SAAS,EAAE,WAAW,GACrB,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAWjD;;;;;OAKG;IACU,2BAA2B,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;CAIhD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OwnerMembersClient = void 0;
|
|
4
|
+
const BaseClient_1 = require("./BaseClient");
|
|
5
|
+
class OwnerMembersClient extends BaseClient_1.BaseClient {
|
|
6
|
+
constructor(url) {
|
|
7
|
+
super(url);
|
|
8
|
+
}
|
|
9
|
+
/** Retrieves a list of iTwin owner members on an iTwin.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
async queryITwinOwnerMembersAsync(accessToken, iTwinId, arg) {
|
|
15
|
+
let url = `${this._baseUrl}/${iTwinId}/members/owners`;
|
|
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
|
+
/** Add new iTwin owner member
|
|
22
|
+
* @param accessToken The client access token string
|
|
23
|
+
* @param iTwinId The id of the iTwin
|
|
24
|
+
* @param newMembers The list of new members to be added along with their role
|
|
25
|
+
* @returns Member[]
|
|
26
|
+
*/
|
|
27
|
+
async addITwinOwnerMemberAsync(accessToken, iTwinId, newMember) {
|
|
28
|
+
const url = `${this._baseUrl}/${iTwinId}/members/owners`;
|
|
29
|
+
return this.sendGenericAPIRequest(accessToken, "POST", url, newMember, "member");
|
|
30
|
+
}
|
|
31
|
+
/** Remove the specified owner member from the iTwin
|
|
32
|
+
* @param accessToken The client access token string
|
|
33
|
+
* @param iTwinId The id of the iTwin
|
|
34
|
+
* @param memberId The id of the member
|
|
35
|
+
* @returns No Content
|
|
36
|
+
*/
|
|
37
|
+
async removeITwinOwnerMemberAsync(accessToken, iTwinId, memberId) {
|
|
38
|
+
const url = `${this._baseUrl}/${iTwinId}/members/owners/${memberId}`;
|
|
39
|
+
return this.sendGenericAPIRequest(accessToken, "DELETE", url);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.OwnerMembersClient = OwnerMembersClient;
|
|
43
|
+
//# sourceMappingURL=OwnerMembersClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerMembersClient.js","sourceRoot":"","sources":["../../../src/subClients/OwnerMembersClient.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,SAAsB;QAEtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,iBAAiB,CAAC;QACzD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,MAAM,EACN,GAAG,EACH,SAAS,EACT,QAAQ,CACT,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;CACF;AAnED,gDAmEC","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 IOwnerMembersClient,\n OwnerMember,\n} from \"../accessControlTypes\";\nimport { BaseClient } from \"./BaseClient\";\n\nexport class OwnerMembersClient\n extends BaseClient\n implements IOwnerMembersClient {\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of iTwin owner members on an iTwin.\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 queryITwinOwnerMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n arg?: AccessControlQueryArg\n ): Promise<AccessControlAPIResponse<OwnerMember[]>> {\n let url = `${this._baseUrl}/${iTwinId}/members/owners`;\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 /** Add new iTwin owner member\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 addITwinOwnerMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n newMember: OwnerMember\n ): Promise<AccessControlAPIResponse<OwnerMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/owners`;\n return this.sendGenericAPIRequest(\n accessToken,\n \"POST\",\n url,\n newMember,\n \"member\"\n );\n }\n\n /** Remove the specified owner 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 removeITwinOwnerMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<undefined>> {\n const url = `${this._baseUrl}/${iTwinId}/members/owners/${memberId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n}\n"]}
|
|
@@ -11,7 +11,9 @@ export declare class RolesClient extends BaseClient implements IRolesClient {
|
|
|
11
11
|
* @param iTwinId The id of the iTwin
|
|
12
12
|
* @returns Roles
|
|
13
13
|
*/
|
|
14
|
-
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string
|
|
14
|
+
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string, additionalHeaders?: {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
}): Promise<AccessControlAPIResponse<Role[]>>;
|
|
15
17
|
/** Retrieves the specified role for the specified iTwin
|
|
16
18
|
* @param accessToken The client access token string
|
|
17
19
|
* @param iTwinId The id of the iTwin
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,WAAY,SAAQ,UAAW,YAAW,YAAY;gBAC9C,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;QAII;IACS,kBAAkB,CAC7B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RolesClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,WAAY,SAAQ,UAAW,YAAW,YAAY;gBAC9C,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;QAII;IACS,kBAAkB,CAC7B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;IAK5C;;;;QAII;IACS,iBAAiB,CAC5B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAK1C;;;;;QAKI;IACS,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAK1C;;;;;QAKI;IACS,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAK/C;;;;;;QAMI;IACS,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;CAI3C"}
|
|
@@ -11,9 +11,9 @@ class RolesClient extends BaseClient_1.BaseClient {
|
|
|
11
11
|
* @param iTwinId The id of the iTwin
|
|
12
12
|
* @returns Roles
|
|
13
13
|
*/
|
|
14
|
-
async getITwinRolesAsync(accessToken, iTwinId) {
|
|
14
|
+
async getITwinRolesAsync(accessToken, iTwinId, additionalHeaders) {
|
|
15
15
|
const url = `${this._baseUrl}/${iTwinId}/roles`;
|
|
16
|
-
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "roles");
|
|
16
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "roles", additionalHeaders);
|
|
17
17
|
}
|
|
18
18
|
/** Retrieves the specified role for the specified iTwin
|
|
19
19
|
* @param accessToken The client access token string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesClient.js","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":";;;AASA,6CAA0C;AAE1C,MAAa,WAAY,SAAQ,uBAAU;IACzC,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe;
|
|
1
|
+
{"version":3,"file":"RolesClient.js","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":";;;AASA,6CAA0C;AAE1C,MAAa,WAAY,SAAQ,uBAAU;IACzC,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe,EACf,iBAA6C;QAE7C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,iBAAiB,CAC5B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,IAAU;QAEV,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;QAMI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,MAAc,EACd,IAAU;QAEV,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;CACF;AA/ED,kCA+EC","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 { AccessControlAPIResponse, IRolesClient, Role } from \"../accessControlTypes\";\r\nimport { BaseClient } from \"./BaseClient\";\r\n\r\nexport class RolesClient extends BaseClient implements IRolesClient {\r\n public constructor(url?: string) {\r\n super(url);\r\n }\r\n\r\n /** Retrieves a list of available user roles that are defined for a specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Roles\r\n */\r\n public async getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<Role[]>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"roles\", additionalHeaders);\r\n }\r\n\r\n /** Retrieves the specified role for the specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Role\r\n */\r\n public async getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"role\");\r\n }\r\n\r\n /** Creates a new iTwin Role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param role The role to be created\r\n * @returns Role\r\n */\r\n public async createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"POST\", url, role, \"role\");\r\n }\r\n\r\n /** Delete the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to remove\r\n * @returns No Content\r\n */\r\n public async deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<undefined>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\r\n }\r\n\r\n /** Update the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to update\r\n * @param role The updated role\r\n * @returns Role\r\n */\r\n public async updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"PATCH\", url, role, \"role\");\r\n }\r\n}\r\n"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module AccessControlClient
|
|
3
3
|
*/
|
|
4
|
-
import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IPermissionsClient, IRolesClient, IUserMembersClient } from "./accessControlTypes";
|
|
4
|
+
import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IOwnerMembersClient, 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
9
|
userMembers: IUserMembersClient;
|
|
10
10
|
groupMembers: IGroupMembersClient;
|
|
11
|
+
ownerMembers: IOwnerMembersClient;
|
|
11
12
|
constructor(url?: string);
|
|
12
13
|
}
|
|
13
14
|
//# 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,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;
|
|
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,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,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;IAClC,YAAY,EAAE,mBAAmB,CAAC;gBAEtB,GAAG,CAAC,EAAE,MAAM;CAQhC"}
|
|
@@ -3,6 +3,7 @@ import { RolesClient } from "./subClients/RolesClient";
|
|
|
3
3
|
import { GroupsClient } from "./subClients/GroupsClient";
|
|
4
4
|
import { UserMembersClient } from "./subClients/UserMembersClient";
|
|
5
5
|
import { GroupMembersClient } from "./subClients/GroupMembersClient";
|
|
6
|
+
import { OwnerMembersClient } from "./subClients/OwnerMembersClient";
|
|
6
7
|
export class AccessControlClient {
|
|
7
8
|
constructor(url) {
|
|
8
9
|
this.permissions = new PermissionsClient(url);
|
|
@@ -10,6 +11,7 @@ export class AccessControlClient {
|
|
|
10
11
|
this.groups = new GroupsClient(url);
|
|
11
12
|
this.userMembers = new UserMembersClient(url);
|
|
12
13
|
this.groupMembers = new GroupMembersClient(url);
|
|
14
|
+
this.ownerMembers = new OwnerMembersClient(url);
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
//# 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":"AAgBA,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;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,OAAO,mBAAmB;IAQ9B,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;QAChD,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 IOwnerMembersClient,\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\nimport { OwnerMembersClient } from \"./subClients/OwnerMembersClient\";\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 public ownerMembers: IOwnerMembersClient;\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 this.ownerMembers = new OwnerMembersClient(url);\r\n }\r\n}\r\n"]}
|
|
@@ -8,6 +8,7 @@ export interface IAccessControlClient {
|
|
|
8
8
|
groups: IGroupsClient;
|
|
9
9
|
userMembers: IUserMembersClient;
|
|
10
10
|
groupMembers: IGroupMembersClient;
|
|
11
|
+
ownerMembers: IOwnerMembersClient;
|
|
11
12
|
}
|
|
12
13
|
export interface IPermissionsClient {
|
|
13
14
|
/** Retrieves the list of all available permissions **/
|
|
@@ -27,6 +28,14 @@ export interface IUserMembersClient {
|
|
|
27
28
|
/** Update iTwin user member roles */
|
|
28
29
|
updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
|
|
29
30
|
}
|
|
31
|
+
export interface IOwnerMembersClient {
|
|
32
|
+
/** Retrieves a list of owner members on a specified iTwin. */
|
|
33
|
+
queryITwinOwnerMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<OwnerMember[]>>;
|
|
34
|
+
/** Add new iTwin owner member */
|
|
35
|
+
addITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, newMember: OwnerMember): Promise<AccessControlAPIResponse<OwnerMember>>;
|
|
36
|
+
/** Remove the specified iTwin owner member */
|
|
37
|
+
removeITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
38
|
+
}
|
|
30
39
|
export interface IGroupMembersClient {
|
|
31
40
|
/** Retrieves a list of group members and their roles assigned to a specified iTwin. */
|
|
32
41
|
queryITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
@@ -41,7 +50,9 @@ export interface IGroupMembersClient {
|
|
|
41
50
|
}
|
|
42
51
|
export interface IRolesClient {
|
|
43
52
|
/** Retrieves a list of roles the for a specified iTwin */
|
|
44
|
-
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string
|
|
53
|
+
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string, additionalHeaders?: {
|
|
54
|
+
[key: string]: string;
|
|
55
|
+
}): Promise<AccessControlAPIResponse<Role[]>>;
|
|
45
56
|
/** Retrieves a role for a specified iTwin */
|
|
46
57
|
getITwinRoleAsync(accessToken: AccessToken, iTwinId: string, roleId: string): Promise<AccessControlAPIResponse<Role>>;
|
|
47
58
|
/** Creates a new iTwin Role */
|
|
@@ -93,6 +104,13 @@ export interface UserMember {
|
|
|
93
104
|
organization?: string;
|
|
94
105
|
roles?: Omit<Role, "permissions">[];
|
|
95
106
|
}
|
|
107
|
+
export interface OwnerMember {
|
|
108
|
+
id?: string;
|
|
109
|
+
email?: string;
|
|
110
|
+
givenName?: string;
|
|
111
|
+
surname?: string;
|
|
112
|
+
organization?: string;
|
|
113
|
+
}
|
|
96
114
|
export interface GroupMember {
|
|
97
115
|
id?: string;
|
|
98
116
|
groupName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessControlTypes.js","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","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\n\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport interface IAccessControlClient {\r\n permissions: IPermissionsClient;\r\n roles: IRolesClient;\r\n groups: IGroupsClient;\r\n userMembers: IUserMembersClient;\r\n groupMembers: IGroupMembersClient;\r\n}\r\n\r\nexport interface IPermissionsClient {\r\n /** Retrieves the list of all available permissions **/\r\n getPermissionsAsync(\r\n accessToken: AccessToken\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n\r\n /** Retrieves a list of permissions the identity has for a specified iTwin */\r\n getITwinPermissionsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n}\r\n\r\nexport interface IUserMembersClient {\r\n /** Retrieves a list of user members and their roles assigned to a specified iTwin. */\r\n queryITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Retrieves a specific user member for a specified iTwin. */\r\n getITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n\r\n /** Add new iTwin user members */\r\n addITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: UserMember[]\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Remove the specified iTwin user member */\r\n removeITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin user member roles */\r\n updateITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n}\r\n\r\nexport interface IGroupMembersClient {\r\n /** Retrieves a list of group members and their roles assigned to a specified iTwin. */\r\n queryITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Retrieves a specific group member for a specified iTwin. */\r\n getITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n\r\n /** Add new iTwin group members */\r\n addITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: GroupMember[]\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Remove the specified iTwin group member */\r\n removeITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin group member roles */\r\n updateITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n}\r\n\r\nexport interface IRolesClient {\r\n /** Retrieves a list of roles the for a specified iTwin */\r\n getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Role[]>>;\r\n\r\n /** Retrieves a role for a specified iTwin */\r\n getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Creates a new iTwin Role */\r\n createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Removes an existing iTwin Role */\r\n deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin Role */\r\n updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n}\r\n\r\nexport interface IGroupsClient {\r\n /** Retrieves a list of groups the for a specified iTwin */\r\n getITwinGroupsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Group[]>>;\r\n\r\n /** Retrieves a group for a specified iTwin */\r\n getITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Creates a new iTwin group */\r\n createITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n group: Group\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Removes an existing iTwin group */\r\n deleteITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin group */\r\n updateITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string,\r\n group: GroupUpdate\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n}\r\n\r\nexport interface AccessControlQueryArg {\r\n top?: number;\r\n skip?: number;\r\n}\r\n\r\nexport interface AccessControlAPIResponse<T> {\r\n data?: T;\r\n status: number;\r\n error?: Error;\r\n}\r\n\r\nexport interface Error {\r\n code: string;\r\n message: string;\r\n details?: ErrorDetail[];\r\n target?: string;\r\n}\r\n\r\nexport interface ErrorDetail {\r\n code: string;\r\n message: string;\r\n target?: string;\r\n}\r\n\r\nexport type Permission = string;\r\n\r\nexport interface UserMember {\r\n id?: string;\r\n roleid?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface GroupMember {\r\n id?: string;\r\n groupName?: string;\r\n groupDescription?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface Role {\r\n id?: string;\r\n displayName: string;\r\n description: string;\r\n permissions: Permission[];\r\n}\r\n\r\nexport interface Group {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: GroupUser[];\r\n imsGroups?: string[];\r\n}\r\n\r\nexport interface GroupUser {\r\n id?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n}\r\n\r\nexport interface GroupUpdate {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: string[];\r\n imsGroups?: string[];\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"accessControlTypes.js","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG","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\n\r\nimport type { AccessToken } from \"@itwin/core-bentley\";\r\n\r\nexport interface IAccessControlClient {\r\n permissions: IPermissionsClient;\r\n roles: IRolesClient;\r\n groups: IGroupsClient;\r\n userMembers: IUserMembersClient;\r\n groupMembers: IGroupMembersClient;\r\n ownerMembers: IOwnerMembersClient;\r\n}\r\n\r\nexport interface IPermissionsClient {\r\n /** Retrieves the list of all available permissions **/\r\n getPermissionsAsync(\r\n accessToken: AccessToken\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n\r\n /** Retrieves a list of permissions the identity has for a specified iTwin */\r\n getITwinPermissionsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Permission[]>>;\r\n}\r\n\r\nexport interface IUserMembersClient {\r\n /** Retrieves a list of user members and their roles assigned to a specified iTwin. */\r\n queryITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Retrieves a specific user member for a specified iTwin. */\r\n getITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n\r\n /** Add new iTwin user members */\r\n addITwinUserMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: UserMember[]\r\n ): Promise<AccessControlAPIResponse<UserMember[]>>;\r\n\r\n /** Remove the specified iTwin user member */\r\n removeITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin user member roles */\r\n updateITwinUserMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<UserMember>>;\r\n}\r\n\r\nexport interface IOwnerMembersClient {\r\n /** Retrieves a list of owner members on a specified iTwin. */\r\n queryITwinOwnerMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<OwnerMember[]>>;\r\n\r\n /** Add new iTwin owner member */\r\n addITwinOwnerMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMember: OwnerMember\r\n ): Promise<AccessControlAPIResponse<OwnerMember>>;\r\n\r\n /** Remove the specified iTwin owner member */\r\n removeITwinOwnerMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n}\r\n\r\nexport interface IGroupMembersClient {\r\n /** Retrieves a list of group members and their roles assigned to a specified iTwin. */\r\n queryITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n arg?: AccessControlQueryArg\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Retrieves a specific group member for a specified iTwin. */\r\n getITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n\r\n /** Add new iTwin group members */\r\n addITwinGroupMembersAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n newMembers: GroupMember[]\r\n ): Promise<AccessControlAPIResponse<GroupMember[]>>;\r\n\r\n /** Remove the specified iTwin group member */\r\n removeITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Update iTwin group member roles */\r\n updateITwinGroupMemberAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n memberId: string,\r\n roleIds: string[]\r\n ): Promise<AccessControlAPIResponse<GroupMember>>;\r\n}\r\n\r\nexport interface IRolesClient {\r\n /** Retrieves a list of roles the for a specified iTwin */\r\n getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<Role[]>>;\r\n\r\n /** Retrieves a role for a specified iTwin */\r\n getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Creates a new iTwin Role */\r\n createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n\r\n /** Removes an existing iTwin Role */\r\n deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin Role */\r\n updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>>;\r\n}\r\n\r\nexport interface IGroupsClient {\r\n /** Retrieves a list of groups the for a specified iTwin */\r\n getITwinGroupsAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string\r\n ): Promise<AccessControlAPIResponse<Group[]>>;\r\n\r\n /** Retrieves a group for a specified iTwin */\r\n getITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Creates a new iTwin group */\r\n createITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n group: Group\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n\r\n /** Removes an existing iTwin group */\r\n deleteITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string\r\n ): Promise<AccessControlAPIResponse<undefined>>;\r\n\r\n /** Updates an existing iTwin group */\r\n updateITwinGroupAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n groupId: string,\r\n group: GroupUpdate\r\n ): Promise<AccessControlAPIResponse<Group>>;\r\n}\r\n\r\nexport interface AccessControlQueryArg {\r\n top?: number;\r\n skip?: number;\r\n}\r\n\r\nexport interface AccessControlAPIResponse<T> {\r\n data?: T;\r\n status: number;\r\n error?: Error;\r\n}\r\n\r\nexport interface Error {\r\n code: string;\r\n message: string;\r\n details?: ErrorDetail[];\r\n target?: string;\r\n}\r\n\r\nexport interface ErrorDetail {\r\n code: string;\r\n message: string;\r\n target?: string;\r\n}\r\n\r\nexport type Permission = string;\r\n\r\nexport interface UserMember {\r\n id?: string;\r\n roleid?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface OwnerMember {\r\n id?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n}\r\n\r\nexport interface GroupMember {\r\n id?: string;\r\n groupName?: string;\r\n groupDescription?: string;\r\n roles?: Omit<Role, \"permissions\">[];\r\n}\r\n\r\nexport interface Role {\r\n id?: string;\r\n displayName: string;\r\n description: string;\r\n permissions: Permission[];\r\n}\r\n\r\nexport interface Group {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: GroupUser[];\r\n imsGroups?: string[];\r\n}\r\n\r\nexport interface GroupUser {\r\n id?: string;\r\n email?: string;\r\n givenName?: string;\r\n surname?: string;\r\n organization?: string;\r\n}\r\n\r\nexport interface GroupUpdate {\r\n id?: string;\r\n name?: string;\r\n description?: string;\r\n members?: string[];\r\n imsGroups?: string[];\r\n}\r\n"]}
|
|
@@ -14,12 +14,16 @@ export declare class BaseClient {
|
|
|
14
14
|
* @param method The method type of the request (ex. GET, POST, DELETE, etc)
|
|
15
15
|
* @param url The url of the request
|
|
16
16
|
*/
|
|
17
|
-
protected sendGenericAPIRequest(accessToken: AccessToken, method: Method, url: string, data?: any, property?: string
|
|
17
|
+
protected sendGenericAPIRequest(accessToken: AccessToken, method: Method, url: string, data?: any, property?: string, additionalHeaders?: {
|
|
18
|
+
[key: string]: string;
|
|
19
|
+
}): Promise<AccessControlAPIResponse<any>>;
|
|
18
20
|
/**
|
|
19
21
|
* Build the request methods, headers, and other options
|
|
20
22
|
* @param accessTokenString The client access token string
|
|
21
23
|
*/
|
|
22
|
-
protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any
|
|
24
|
+
protected getRequestOptions(accessTokenString: string, method: Method, url: string, data?: any, additionalHeaders?: {
|
|
25
|
+
[key: string]: string;
|
|
26
|
+
}): AxiosRequestConfig;
|
|
23
27
|
/**
|
|
24
28
|
* Build a query to be appended to a URL
|
|
25
29
|
* @param queryArg Object container queryable properties
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE7F,qBAAa,UAAU;IACrB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAkD;gBAEzD,GAAG,CAAC,EAAE,MAAM;IAa/B;;;;;QAKI;cACY,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,QAAQ,CAAC,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAsBzC;;;QAGI;IACJ,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,kBAAkB;IAiBlK;;;;QAII;IACJ,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM;CAgBlE"}
|
|
@@ -20,8 +20,8 @@ export class BaseClient {
|
|
|
20
20
|
* @param method The method type of the request (ex. GET, POST, DELETE, etc)
|
|
21
21
|
* @param url The url of the request
|
|
22
22
|
*/
|
|
23
|
-
async sendGenericAPIRequest(accessToken, method, url, data, property) {
|
|
24
|
-
const requestOptions = this.getRequestOptions(accessToken, method, url, data);
|
|
23
|
+
async sendGenericAPIRequest(accessToken, method, url, data, property, additionalHeaders) {
|
|
24
|
+
const requestOptions = this.getRequestOptions(accessToken, method, url, data, additionalHeaders);
|
|
25
25
|
try {
|
|
26
26
|
const response = await axios(requestOptions);
|
|
27
27
|
return {
|
|
@@ -44,7 +44,7 @@ export class BaseClient {
|
|
|
44
44
|
* Build the request methods, headers, and other options
|
|
45
45
|
* @param accessTokenString The client access token string
|
|
46
46
|
*/
|
|
47
|
-
getRequestOptions(accessTokenString, method, url, data) {
|
|
47
|
+
getRequestOptions(accessTokenString, method, url, data, additionalHeaders) {
|
|
48
48
|
return {
|
|
49
49
|
method,
|
|
50
50
|
url,
|
|
@@ -53,6 +53,7 @@ export class BaseClient {
|
|
|
53
53
|
"authorization": accessTokenString,
|
|
54
54
|
"content-type": "application/json",
|
|
55
55
|
"accept": "application/vnd.bentley.itwin-platform.v2+json",
|
|
56
|
+
...additionalHeaders,
|
|
56
57
|
},
|
|
57
58
|
validateStatus(status) {
|
|
58
59
|
return status < 500; // Resolve only if the status code is less than 500
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,
|
|
1
|
+
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../src/subClients/BaseClient.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,UAAU;IAGrB,YAAmB,GAAY;QAFrB,aAAQ,GAAW,8CAA8C,CAAC;QAG1E,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,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,EACjB,iBAA6C;QAE7C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACjG,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,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,EACL,6DAA6D;iBAChE;aACF,CAAC;SACH;IACH,CAAC;IAED;;;QAGI;IACM,iBAAiB,CAAC,iBAAyB,EAAE,MAAc,EAAE,GAAW,EAAE,IAAU,EAAE,iBAA6C;QAC3I,OAAO;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,OAAO,EAAE;gBACP,eAAe,EAAE,iBAAiB;gBAClC,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,gDAAgD;gBAC1D,GAAG,iBAAiB;aACrB;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","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 additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<any>> { // TODO: Change any response\r\n const requestOptions = this.getRequestOptions(accessToken, method, url, data, additionalHeaders);\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, additionalHeaders?: { [key: string]: string }): 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 ...additionalHeaders,\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,30 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module AccessControlClient
|
|
3
|
+
*/
|
|
4
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
5
|
+
import type { AccessControlAPIResponse, AccessControlQueryArg, IOwnerMembersClient, OwnerMember } from "../accessControlTypes";
|
|
6
|
+
import { BaseClient } from "./BaseClient";
|
|
7
|
+
export declare class OwnerMembersClient extends BaseClient implements IOwnerMembersClient {
|
|
8
|
+
constructor(url?: string);
|
|
9
|
+
/** Retrieves a list of iTwin owner members on an iTwin.
|
|
10
|
+
* @param accessToken The client access token string
|
|
11
|
+
* @param iTwinId The id of the iTwin
|
|
12
|
+
* @returns Array of members
|
|
13
|
+
*/
|
|
14
|
+
queryITwinOwnerMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<OwnerMember[]>>;
|
|
15
|
+
/** Add new iTwin owner member
|
|
16
|
+
* @param accessToken The client access token string
|
|
17
|
+
* @param iTwinId The id of the iTwin
|
|
18
|
+
* @param newMembers The list of new members to be added along with their role
|
|
19
|
+
* @returns Member[]
|
|
20
|
+
*/
|
|
21
|
+
addITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, newMember: OwnerMember): Promise<AccessControlAPIResponse<OwnerMember>>;
|
|
22
|
+
/** Remove the specified owner member from the iTwin
|
|
23
|
+
* @param accessToken The client access token string
|
|
24
|
+
* @param iTwinId The id of the iTwin
|
|
25
|
+
* @param memberId The id of the member
|
|
26
|
+
* @returns No Content
|
|
27
|
+
*/
|
|
28
|
+
removeITwinOwnerMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=OwnerMembersClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerMembersClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/OwnerMembersClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACZ,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,SAAS,EAAE,WAAW,GACrB,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAWjD;;;;;OAKG;IACU,2BAA2B,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;CAIhD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseClient } from "./BaseClient";
|
|
2
|
+
export class OwnerMembersClient extends BaseClient {
|
|
3
|
+
constructor(url) {
|
|
4
|
+
super(url);
|
|
5
|
+
}
|
|
6
|
+
/** Retrieves a list of iTwin owner members on an iTwin.
|
|
7
|
+
* @param accessToken The client access token string
|
|
8
|
+
* @param iTwinId The id of the iTwin
|
|
9
|
+
* @returns Array of members
|
|
10
|
+
*/
|
|
11
|
+
async queryITwinOwnerMembersAsync(accessToken, iTwinId, arg) {
|
|
12
|
+
let url = `${this._baseUrl}/${iTwinId}/members/owners`;
|
|
13
|
+
if (arg) {
|
|
14
|
+
url += `?${this.getQueryString(arg)}`;
|
|
15
|
+
}
|
|
16
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "members"); // TODO: Consider how to handle paging
|
|
17
|
+
}
|
|
18
|
+
/** Add new iTwin owner member
|
|
19
|
+
* @param accessToken The client access token string
|
|
20
|
+
* @param iTwinId The id of the iTwin
|
|
21
|
+
* @param newMembers The list of new members to be added along with their role
|
|
22
|
+
* @returns Member[]
|
|
23
|
+
*/
|
|
24
|
+
async addITwinOwnerMemberAsync(accessToken, iTwinId, newMember) {
|
|
25
|
+
const url = `${this._baseUrl}/${iTwinId}/members/owners`;
|
|
26
|
+
return this.sendGenericAPIRequest(accessToken, "POST", url, newMember, "member");
|
|
27
|
+
}
|
|
28
|
+
/** Remove the specified owner member from the iTwin
|
|
29
|
+
* @param accessToken The client access token string
|
|
30
|
+
* @param iTwinId The id of the iTwin
|
|
31
|
+
* @param memberId The id of the member
|
|
32
|
+
* @returns No Content
|
|
33
|
+
*/
|
|
34
|
+
async removeITwinOwnerMemberAsync(accessToken, iTwinId, memberId) {
|
|
35
|
+
const url = `${this._baseUrl}/${iTwinId}/members/owners/${memberId}`;
|
|
36
|
+
return this.sendGenericAPIRequest(accessToken, "DELETE", url);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=OwnerMembersClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwnerMembersClient.js","sourceRoot":"","sources":["../../../src/subClients/OwnerMembersClient.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,OAAO,kBACX,SAAQ,UAAU;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,SAAsB;QAEtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,iBAAiB,CAAC;QACzD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,WAAW,EACX,MAAM,EACN,GAAG,EACH,SAAS,EACT,QAAQ,CACT,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;CACF","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 IOwnerMembersClient,\n OwnerMember,\n} from \"../accessControlTypes\";\nimport { BaseClient } from \"./BaseClient\";\n\nexport class OwnerMembersClient\n extends BaseClient\n implements IOwnerMembersClient {\n public constructor(url?: string) {\n super(url);\n }\n\n /** Retrieves a list of iTwin owner members on an iTwin.\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 queryITwinOwnerMembersAsync(\n accessToken: AccessToken,\n iTwinId: string,\n arg?: AccessControlQueryArg\n ): Promise<AccessControlAPIResponse<OwnerMember[]>> {\n let url = `${this._baseUrl}/${iTwinId}/members/owners`;\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 /** Add new iTwin owner member\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 addITwinOwnerMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n newMember: OwnerMember\n ): Promise<AccessControlAPIResponse<OwnerMember>> {\n const url = `${this._baseUrl}/${iTwinId}/members/owners`;\n return this.sendGenericAPIRequest(\n accessToken,\n \"POST\",\n url,\n newMember,\n \"member\"\n );\n }\n\n /** Remove the specified owner 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 removeITwinOwnerMemberAsync(\n accessToken: AccessToken,\n iTwinId: string,\n memberId: string\n ): Promise<AccessControlAPIResponse<undefined>> {\n const url = `${this._baseUrl}/${iTwinId}/members/owners/${memberId}`;\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\n }\n}\n"]}
|
|
@@ -11,7 +11,9 @@ export declare class RolesClient extends BaseClient implements IRolesClient {
|
|
|
11
11
|
* @param iTwinId The id of the iTwin
|
|
12
12
|
* @returns Roles
|
|
13
13
|
*/
|
|
14
|
-
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string
|
|
14
|
+
getITwinRolesAsync(accessToken: AccessToken, iTwinId: string, additionalHeaders?: {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
}): Promise<AccessControlAPIResponse<Role[]>>;
|
|
15
17
|
/** Retrieves the specified role for the specified iTwin
|
|
16
18
|
* @param accessToken The client access token string
|
|
17
19
|
* @param iTwinId The id of the iTwin
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,WAAY,SAAQ,UAAW,YAAW,YAAY;gBAC9C,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;QAII;IACS,kBAAkB,CAC7B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RolesClient.d.ts","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,WAAY,SAAQ,UAAW,YAAW,YAAY;gBAC9C,GAAG,CAAC,EAAE,MAAM;IAI/B;;;;QAII;IACS,kBAAkB,CAC7B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;IAK5C;;;;QAII;IACS,iBAAiB,CAC5B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAK1C;;;;;QAKI;IACS,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAK1C;;;;;QAKI;IACS,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAK/C;;;;;;QAMI;IACS,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;CAI3C"}
|
|
@@ -8,9 +8,9 @@ export class RolesClient extends BaseClient {
|
|
|
8
8
|
* @param iTwinId The id of the iTwin
|
|
9
9
|
* @returns Roles
|
|
10
10
|
*/
|
|
11
|
-
async getITwinRolesAsync(accessToken, iTwinId) {
|
|
11
|
+
async getITwinRolesAsync(accessToken, iTwinId, additionalHeaders) {
|
|
12
12
|
const url = `${this._baseUrl}/${iTwinId}/roles`;
|
|
13
|
-
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "roles");
|
|
13
|
+
return this.sendGenericAPIRequest(accessToken, "GET", url, undefined, "roles", additionalHeaders);
|
|
14
14
|
}
|
|
15
15
|
/** Retrieves the specified role for the specified iTwin
|
|
16
16
|
* @param accessToken The client access token string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RolesClient.js","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe;
|
|
1
|
+
{"version":3,"file":"RolesClient.js","sourceRoot":"","sources":["../../../src/subClients/RolesClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,YAAmB,GAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,kBAAkB,CAC7B,WAAwB,EACxB,OAAe,EACf,iBAA6C;QAE7C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACpG,CAAC;IAED;;;;QAII;IACG,KAAK,CAAC,iBAAiB,CAC5B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,IAAU;QAEV,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;QAKI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;QAMI;IACG,KAAK,CAAC,oBAAoB,CAC/B,WAAwB,EACxB,OAAe,EACf,MAAc,EACd,IAAU;QAEV,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,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 { AccessToken } from \"@itwin/core-bentley\";\r\nimport type { AccessControlAPIResponse, IRolesClient, Role } from \"../accessControlTypes\";\r\nimport { BaseClient } from \"./BaseClient\";\r\n\r\nexport class RolesClient extends BaseClient implements IRolesClient {\r\n public constructor(url?: string) {\r\n super(url);\r\n }\r\n\r\n /** Retrieves a list of available user roles that are defined for a specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Roles\r\n */\r\n public async getITwinRolesAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n additionalHeaders?: { [key: string]: string }\r\n ): Promise<AccessControlAPIResponse<Role[]>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"roles\", additionalHeaders);\r\n }\r\n\r\n /** Retrieves the specified role for the specified iTwin\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @returns Role\r\n */\r\n public async getITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"GET\", url, undefined, \"role\");\r\n }\r\n\r\n /** Creates a new iTwin Role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param role The role to be created\r\n * @returns Role\r\n */\r\n public async createITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles`;\r\n return this.sendGenericAPIRequest(accessToken, \"POST\", url, role, \"role\");\r\n }\r\n\r\n /** Delete the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to remove\r\n * @returns No Content\r\n */\r\n public async deleteITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n ): Promise<AccessControlAPIResponse<undefined>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"DELETE\", url);\r\n }\r\n\r\n /** Update the specified iTwin role\r\n * @param accessToken The client access token string\r\n * @param iTwinId The id of the iTwin\r\n * @param roleId The id of the role to update\r\n * @param role The updated role\r\n * @returns Role\r\n */\r\n public async updateITwinRoleAsync(\r\n accessToken: AccessToken,\r\n iTwinId: string,\r\n roleId: string,\r\n role: Role\r\n ): Promise<AccessControlAPIResponse<Role>> {\r\n const url = `${this._baseUrl}/${iTwinId}/roles/${roleId}`;\r\n return this.sendGenericAPIRequest(accessToken, \"PATCH\", url, role, \"role\");\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/access-control-client",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Access control client for the iTwin platform",
|
|
5
5
|
"main": "lib/cjs/access-control-client.js",
|
|
6
6
|
"module": "lib/esm/access-control-client.js",
|
|
@@ -66,4 +66,4 @@
|
|
|
66
66
|
"@typescript-eslint/consistent-type-imports": "error"
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
}
|
|
69
|
+
}
|