@itwin/access-control-client 1.3.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +297 -30
- package/lib/cjs/AccessControlClient.d.ts +4 -2
- package/lib/cjs/AccessControlClient.d.ts.map +1 -1
- package/lib/cjs/AccessControlClient.js +6 -2
- package/lib/cjs/AccessControlClient.js.map +1 -1
- package/lib/cjs/accessControlTypes.d.ts +52 -13
- package/lib/cjs/accessControlTypes.d.ts.map +1 -1
- package/lib/cjs/accessControlTypes.js.map +1 -1
- package/lib/cjs/subClients/BaseClient.js +1 -1
- package/lib/cjs/subClients/BaseClient.js.map +1 -1
- package/lib/cjs/subClients/GroupMembersClient.d.ts +45 -0
- package/lib/cjs/subClients/GroupMembersClient.d.ts.map +1 -0
- package/lib/cjs/subClients/GroupMembersClient.js +70 -0
- package/lib/cjs/subClients/GroupMembersClient.js.map +1 -0
- package/lib/cjs/subClients/GroupsClient.d.ts +44 -0
- package/lib/cjs/subClients/GroupsClient.d.ts.map +1 -0
- package/lib/cjs/subClients/GroupsClient.js +60 -0
- package/lib/cjs/subClients/GroupsClient.js.map +1 -0
- package/lib/cjs/subClients/UserMembersClient.d.ts +45 -0
- package/lib/cjs/subClients/UserMembersClient.d.ts.map +1 -0
- package/lib/cjs/subClients/UserMembersClient.js +70 -0
- package/lib/cjs/subClients/UserMembersClient.js.map +1 -0
- package/lib/esm/AccessControlClient.d.ts +4 -2
- package/lib/esm/AccessControlClient.d.ts.map +1 -1
- package/lib/esm/AccessControlClient.js +6 -2
- package/lib/esm/AccessControlClient.js.map +1 -1
- package/lib/esm/accessControlTypes.d.ts +52 -13
- package/lib/esm/accessControlTypes.d.ts.map +1 -1
- package/lib/esm/accessControlTypes.js.map +1 -1
- package/lib/esm/subClients/BaseClient.js +1 -1
- package/lib/esm/subClients/BaseClient.js.map +1 -1
- package/lib/esm/subClients/GroupMembersClient.d.ts +45 -0
- package/lib/esm/subClients/GroupMembersClient.d.ts.map +1 -0
- package/lib/esm/subClients/GroupMembersClient.js +66 -0
- package/lib/esm/subClients/GroupMembersClient.js.map +1 -0
- package/lib/esm/subClients/GroupsClient.d.ts +44 -0
- package/lib/esm/subClients/GroupsClient.d.ts.map +1 -0
- package/lib/esm/subClients/GroupsClient.js +56 -0
- package/lib/esm/subClients/GroupsClient.js.map +1 -0
- package/lib/esm/subClients/UserMembersClient.d.ts +45 -0
- package/lib/esm/subClients/UserMembersClient.d.ts.map +1 -0
- package/lib/esm/subClients/UserMembersClient.js +66 -0
- package/lib/esm/subClients/UserMembersClient.js.map +1 -0
- package/package.json +1 -1
- package/lib/cjs/subClients/MembersClient.d.ts +0 -45
- package/lib/cjs/subClients/MembersClient.d.ts.map +0 -1
- package/lib/cjs/subClients/MembersClient.js +0 -69
- package/lib/cjs/subClients/MembersClient.js.map +0 -1
- package/lib/esm/subClients/MembersClient.d.ts +0 -45
- package/lib/esm/subClients/MembersClient.d.ts.map +0 -1
- package/lib/esm/subClients/MembersClient.js +0 -65
- package/lib/esm/subClients/MembersClient.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Change Log - @itwin/access-control-client
|
|
2
2
|
|
|
3
|
+
## 2.0.0
|
|
4
|
+
- Added groups client
|
|
5
|
+
- Added group member client
|
|
6
|
+
- Added user member client
|
|
7
|
+
- Removed members client
|
|
8
|
+
|
|
9
|
+
## 1.3.0
|
|
10
|
+
- Added support for the `accept` header inside of `BaseClient`.
|
|
11
|
+
|
|
3
12
|
## 1.2.0
|
|
4
13
|
|
|
5
14
|
- Return newly added members.
|
package/README.md
CHANGED
|
@@ -144,7 +144,7 @@ async function printiTwinRole(): Promise<void> {
|
|
|
144
144
|
}
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
### Get list of Members for an iTwin
|
|
147
|
+
### Get list of User Members for an iTwin
|
|
148
148
|
|
|
149
149
|
```typescript
|
|
150
150
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
@@ -155,24 +155,24 @@ import {
|
|
|
155
155
|
AccessControlAPIResponse,
|
|
156
156
|
} from "@itwin/access-control-client";
|
|
157
157
|
|
|
158
|
-
/** Function that queries all Members for a given iTwin and prints their ids to the console. */
|
|
159
|
-
async function
|
|
158
|
+
/** Function that queries all User Members for a given iTwin and prints their ids to the console. */
|
|
159
|
+
async function printiTwinUserMemberIds(): Promise<void> {
|
|
160
160
|
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
161
161
|
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
162
162
|
|
|
163
|
-
const iTwinsResponse: AccessControlAPIResponse<
|
|
164
|
-
await accessControlClient.
|
|
163
|
+
const iTwinsResponse: AccessControlAPIResponse<UserMember[]> =
|
|
164
|
+
await accessControlClient.userMembers.queryITwinUserMembersAsync(
|
|
165
165
|
accessToken,
|
|
166
166
|
"9bd7d24d-1508-4dba-99ab-23b3166401a0"
|
|
167
167
|
);
|
|
168
168
|
|
|
169
|
-
iTwinsResponse.data!.forEach((
|
|
170
|
-
console.log(
|
|
169
|
+
iTwinsResponse.data!.forEach((actualUserMember: UserMember) => {
|
|
170
|
+
console.log(actualUserMember.id);
|
|
171
171
|
});
|
|
172
172
|
}
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
### Get a filtered list of Members for an iTwin using $top/$skip
|
|
175
|
+
### Get a filtered list of User Members for an iTwin using $top/$skip
|
|
176
176
|
|
|
177
177
|
```typescript
|
|
178
178
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
@@ -183,27 +183,27 @@ import {
|
|
|
183
183
|
AccessControlAPIResponse,
|
|
184
184
|
} from "@itwin/access-control-client";
|
|
185
185
|
|
|
186
|
-
/** Function that queries all Members for a given iTwin and prints their ids to the console. */
|
|
187
|
-
async function
|
|
186
|
+
/** Function that queries all User Members for a given iTwin and prints their ids to the console. */
|
|
187
|
+
async function printiTwinUserMemberIds(): Promise<void> {
|
|
188
188
|
const skipAmmount = 5;
|
|
189
189
|
const topAmount = 3;
|
|
190
190
|
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
191
191
|
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
192
192
|
|
|
193
|
-
const iTwinsResponse: AccessControlAPIResponse<
|
|
194
|
-
await accessControlClient.
|
|
193
|
+
const iTwinsResponse: AccessControlAPIResponse<UserMember[]> =
|
|
194
|
+
await accessControlClient.userMembers.queryITwinUserMembersAsync(
|
|
195
195
|
accessToken,
|
|
196
196
|
"9bd7d24d-1508-4dba-99ab-23b3166401a0",
|
|
197
197
|
{ skip: skipAmmount, top: topAmount }
|
|
198
198
|
);
|
|
199
199
|
|
|
200
|
-
iTwinsResponse.data!.forEach((
|
|
201
|
-
console.log(
|
|
200
|
+
iTwinsResponse.data!.forEach((actualUserMember: UserMember) => {
|
|
201
|
+
console.log(actualUserMember.id);
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
204
|
```
|
|
205
205
|
|
|
206
|
-
### Get a specific Member of an iTwin
|
|
206
|
+
### Get a specific User Member of an iTwin
|
|
207
207
|
|
|
208
208
|
```typescript
|
|
209
209
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
@@ -215,23 +215,23 @@ import {
|
|
|
215
215
|
} from "@itwin/access-control-client";
|
|
216
216
|
|
|
217
217
|
/** Function that gets a member of an iTwin prints the id and email to the console. */
|
|
218
|
-
async function
|
|
218
|
+
async function printiTwinUserMemberIds(): Promise<void> {
|
|
219
219
|
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
220
220
|
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
221
221
|
|
|
222
|
-
const iTwinsResponse: AccessControlAPIResponse<
|
|
223
|
-
await accessControlClient.
|
|
222
|
+
const iTwinsResponse: AccessControlAPIResponse<UserMember> =
|
|
223
|
+
await accessControlClient.userMembers.getITwinUserMemberAsync(
|
|
224
224
|
accessToken,
|
|
225
225
|
"9bd7d24d-1508-4dba-99ab-23b3166401a0",
|
|
226
226
|
"a083cc1c-f51a-4c52-8614-5774ab79eca1"
|
|
227
227
|
);
|
|
228
228
|
|
|
229
|
-
const
|
|
230
|
-
console.log(
|
|
229
|
+
const actualUserMember = iTwinsResponse.data!;
|
|
230
|
+
console.log(actualUserMember.id, actualUserMember.email);
|
|
231
231
|
}
|
|
232
232
|
```
|
|
233
233
|
|
|
234
|
-
### Create, update, and delete
|
|
234
|
+
### Create, update, and delete an User Member
|
|
235
235
|
|
|
236
236
|
```typescript
|
|
237
237
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
@@ -242,22 +242,22 @@ import {
|
|
|
242
242
|
AccessControlAPIResponse,
|
|
243
243
|
} from "@itwin/access-control-client";
|
|
244
244
|
|
|
245
|
-
/** Function that creates, updates, and deletes a member. */
|
|
245
|
+
/** Function that creates, updates, and deletes a user member. */
|
|
246
246
|
async function printiTwinRole(): Promise<void> {
|
|
247
247
|
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
248
248
|
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
249
249
|
|
|
250
|
-
// Create member
|
|
250
|
+
// Create user member
|
|
251
251
|
const createResponse: AccessControlAPIResponse<Role> =
|
|
252
|
-
await accessControlClient.
|
|
252
|
+
await accessControlClient.userMembers.addITwinUserMembersAsync(
|
|
253
253
|
accessToken,
|
|
254
254
|
"71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
|
|
255
255
|
"d8215a6b-465d-44ff-910b-40d4541d1ebf"
|
|
256
256
|
);
|
|
257
257
|
|
|
258
|
-
// Update member's role
|
|
259
|
-
const
|
|
260
|
-
await accessControlClient.
|
|
258
|
+
// Update user member's role
|
|
259
|
+
const updatedUserMemberResponse: AccessControlAPIResponse<UserMember> =
|
|
260
|
+
await accessControlClient.userMembers.updateITwinUserMemberAsync(
|
|
261
261
|
accessToken,
|
|
262
262
|
"b1803a0c-d440-4902-b527-54bf7f72500f",
|
|
263
263
|
"6401109c-75d7-46b8-8dbd-182d02155141",
|
|
@@ -267,9 +267,276 @@ async function printiTwinRole(): Promise<void> {
|
|
|
267
267
|
]
|
|
268
268
|
);
|
|
269
269
|
|
|
270
|
-
// Delete member
|
|
271
|
-
const
|
|
272
|
-
await accessControlClient.
|
|
270
|
+
// Delete user member
|
|
271
|
+
const removeUserMemberResponse: AccessControlAPIResponse<undefined> =
|
|
272
|
+
await accessControlClient.userMembers.removeITwinUserMemberAsync(
|
|
273
|
+
accessToken,
|
|
274
|
+
"b1803a0c-d440-4902-b527-54bf7f72500f",
|
|
275
|
+
"6401109c-75d7-46b8-8dbd-182d02155141"
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
### Get list of Groups for an iTwin
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
285
|
+
import {
|
|
286
|
+
AccessControlClient,
|
|
287
|
+
IAccessControlClient,
|
|
288
|
+
Group,
|
|
289
|
+
AccessControlAPIResponse,
|
|
290
|
+
} from "@itwin/access-control-client";
|
|
291
|
+
|
|
292
|
+
/** Function that queries all Groups for a given iTwin and prints their ids to the console. */
|
|
293
|
+
async function printiTwinGroupIds(): Promise<void> {
|
|
294
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
295
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
296
|
+
|
|
297
|
+
const iTwinsResponse: AccessControlAPIResponse<Group[]> =
|
|
298
|
+
await accessControlClient.groups.getITwinGroupsAsync(
|
|
299
|
+
accessToken,
|
|
300
|
+
"2f981e83-47e4-4f36-8ee9-4264453688a1"
|
|
301
|
+
);
|
|
302
|
+
|
|
303
|
+
iTwinsResponse.data!.forEach((actualGroup: Group) => {
|
|
304
|
+
console.log(actualGroup.id);
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Get list of Groups for an iTwin (with custom url)
|
|
310
|
+
|
|
311
|
+
```typescript
|
|
312
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
313
|
+
import {
|
|
314
|
+
AccessControlClient,
|
|
315
|
+
IAccessControlClient,
|
|
316
|
+
Group,
|
|
317
|
+
AccessControlAPIResponse,
|
|
318
|
+
} from "@itwin/access-control-client";
|
|
319
|
+
|
|
320
|
+
/** Function that queries all Groups for a given iTwin and prints their ids to the console. */
|
|
321
|
+
async function printiTwinGroupIds(): Promise<void> {
|
|
322
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient("https://api.bentley.com/accesscontrol/itwins");
|
|
323
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
324
|
+
|
|
325
|
+
const iTwinsResponse: AccessControlAPIResponse<Group[]> =
|
|
326
|
+
await accessControlClient.groups.getITwinGroupsAsync(
|
|
327
|
+
accessToken,
|
|
328
|
+
"2f981e83-47e4-4f36-8ee9-4264453688a1"
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
iTwinsResponse.data!.forEach((actualGroup: Group) => {
|
|
332
|
+
console.log(actualGroup.id);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Get specific Group for an iTwin
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
341
|
+
import {
|
|
342
|
+
AccessControlClient,
|
|
343
|
+
IAccessControlClient,
|
|
344
|
+
Group,
|
|
345
|
+
AccessControlAPIResponse,
|
|
346
|
+
} from "@itwin/access-control-client";
|
|
347
|
+
|
|
348
|
+
/** Function that gets a specific role for an iTwin and then prints the id and displayName to the console. */
|
|
349
|
+
async function printiTwinGroup(): Promise<void> {
|
|
350
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
351
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
352
|
+
|
|
353
|
+
const iTwinsResponse: AccessControlAPIResponse<Group> =
|
|
354
|
+
await accessControlClient.groups.getITwinGroupAsync(
|
|
355
|
+
accessToken,
|
|
356
|
+
"2f981e83-47e4-4f36-8ee9-4264453688a1",
|
|
357
|
+
"2d593231-db14-4c1f-9db4-96f2b91b0bde"
|
|
358
|
+
);
|
|
359
|
+
|
|
360
|
+
const actualGroup = iTwinsResponse.data!;
|
|
361
|
+
console.log(actualGroup.id, actualGroup.displayName);
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Create, update, and delete a Group
|
|
366
|
+
|
|
367
|
+
```typescript
|
|
368
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
369
|
+
import {
|
|
370
|
+
AccessControlClient,
|
|
371
|
+
IAccessControlClient,
|
|
372
|
+
Group,
|
|
373
|
+
AccessControlAPIResponse,
|
|
374
|
+
} from "@itwin/access-control-client";
|
|
375
|
+
|
|
376
|
+
/** Function that creates, updates, and deletes a role. */
|
|
377
|
+
async function printiTwinGroup(): Promise<void> {
|
|
378
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
379
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
380
|
+
|
|
381
|
+
// Create role
|
|
382
|
+
const createResponse: AccessControlAPIResponse<Group> =
|
|
383
|
+
await accessControlClient.groups.createITwinGroupAsync(
|
|
384
|
+
accessToken,
|
|
385
|
+
"71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
|
|
386
|
+
"d8215a6b-465d-44ff-910b-40d4541d1ebf"
|
|
387
|
+
);
|
|
388
|
+
|
|
389
|
+
// Update role
|
|
390
|
+
const updatedGroup: Group = {
|
|
391
|
+
name: "Some new group name",
|
|
392
|
+
description: "UPDATED GROUP DESCRIPTION",
|
|
393
|
+
user: ["John.Johnson@example.com"],
|
|
394
|
+
imsGroups: ["Sample IMS Group"]
|
|
395
|
+
};
|
|
396
|
+
const updateResponse: AccessControlAPIResponse<Group> =
|
|
397
|
+
await accessControlClient.groups.updateITwinGroupAsync(
|
|
398
|
+
accessToken,
|
|
399
|
+
"71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
|
|
400
|
+
createResponse.data!.id,
|
|
401
|
+
updatedGroup
|
|
402
|
+
);
|
|
403
|
+
|
|
404
|
+
// Delete Group
|
|
405
|
+
const deleteResponse: AccessControlAPIResponse<undefined> =
|
|
406
|
+
await accessControlClient.groups.deleteITwinGRoupAsync(
|
|
407
|
+
accessToken,
|
|
408
|
+
"71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
|
|
409
|
+
createResponse.data!.id
|
|
410
|
+
);
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Get list of Group Members for an iTwin
|
|
415
|
+
|
|
416
|
+
```typescript
|
|
417
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
418
|
+
import {
|
|
419
|
+
AccessControlClient,
|
|
420
|
+
IAccessControlClient,
|
|
421
|
+
Member,
|
|
422
|
+
AccessControlAPIResponse,
|
|
423
|
+
} from "@itwin/access-control-client";
|
|
424
|
+
|
|
425
|
+
/** Function that queries all User Members for a given iTwin and prints their ids to the console. */
|
|
426
|
+
async function printiTwinGroupMemberIds(): Promise<void> {
|
|
427
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
428
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
429
|
+
|
|
430
|
+
const iTwinsResponse: AccessControlAPIResponse<GroupMember[]> =
|
|
431
|
+
await accessControlClient.groupMembers.queryITwinGroupMembersAsync(
|
|
432
|
+
accessToken,
|
|
433
|
+
"9bd7d24d-1508-4dba-99ab-23b3166401a0"
|
|
434
|
+
);
|
|
435
|
+
|
|
436
|
+
iTwinsResponse.data!.forEach((actualGroupMember: GroupMember) => {
|
|
437
|
+
console.log(actualGroupMember.id);
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Get a filtered list of Group Members for an iTwin using $top/$skip
|
|
443
|
+
|
|
444
|
+
```typescript
|
|
445
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
446
|
+
import {
|
|
447
|
+
AccessControlClient,
|
|
448
|
+
IAccessControlClient,
|
|
449
|
+
Member,
|
|
450
|
+
AccessControlAPIResponse,
|
|
451
|
+
} from "@itwin/access-control-client";
|
|
452
|
+
|
|
453
|
+
/** Function that queries all User Members for a given iTwin and prints their ids to the console. */
|
|
454
|
+
async function printiTwinGroupMemberIds(): Promise<void> {
|
|
455
|
+
const skipAmmount = 5;
|
|
456
|
+
const topAmount = 3;
|
|
457
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
458
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
459
|
+
|
|
460
|
+
const iTwinsResponse: AccessControlAPIResponse<GroupMember[]> =
|
|
461
|
+
await accessControlClient.groupMembers.queryITwinGroupMembersAsync(
|
|
462
|
+
accessToken,
|
|
463
|
+
"9bd7d24d-1508-4dba-99ab-23b3166401a0",
|
|
464
|
+
{ skip: skipAmmount, top: topAmount }
|
|
465
|
+
);
|
|
466
|
+
|
|
467
|
+
iTwinsResponse.data!.forEach((actualGroupMember: GroupMember) => {
|
|
468
|
+
console.log(actualGroupMember.id);
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
### Get a specific Group Member of an iTwin
|
|
474
|
+
|
|
475
|
+
```typescript
|
|
476
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
477
|
+
import {
|
|
478
|
+
AccessControlClient,
|
|
479
|
+
IAccessControlClient,
|
|
480
|
+
Member,
|
|
481
|
+
AccessControlAPIResponse,
|
|
482
|
+
} from "@itwin/access-control-client";
|
|
483
|
+
|
|
484
|
+
/** Function that gets a member of an iTwin prints the id and email to the console. */
|
|
485
|
+
async function printiTwinGroupMemberIds(): Promise<void> {
|
|
486
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
487
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
488
|
+
|
|
489
|
+
const iTwinsResponse: AccessControlAPIResponse<GroupMember> =
|
|
490
|
+
await accessControlClient.groupMembers.getITwinGroupMemberAsync(
|
|
491
|
+
accessToken,
|
|
492
|
+
"9bd7d24d-1508-4dba-99ab-23b3166401a0",
|
|
493
|
+
"a083cc1c-f51a-4c52-8614-5774ab79eca1"
|
|
494
|
+
);
|
|
495
|
+
|
|
496
|
+
const actualGroupMember = iTwinsResponse.data!;
|
|
497
|
+
console.log(actualGroupMember.id, actualGroupMember.email);
|
|
498
|
+
}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Create, update, and delete a Group Member
|
|
502
|
+
|
|
503
|
+
```typescript
|
|
504
|
+
import type { AccessToken } from "@itwin/core-bentley";
|
|
505
|
+
import {
|
|
506
|
+
AccessControlClient,
|
|
507
|
+
IAccessControlClient,
|
|
508
|
+
Member,
|
|
509
|
+
AccessControlAPIResponse,
|
|
510
|
+
} from "@itwin/access-control-client";
|
|
511
|
+
|
|
512
|
+
/** Function that creates, updates, and deletes a user member. */
|
|
513
|
+
async function printiTwinRole(): Promise<void> {
|
|
514
|
+
const accessControlClient: IAccessControlClient = new AccessControlClient();
|
|
515
|
+
const accessToken: AccessToken = { get_access_token_logic_here };
|
|
516
|
+
|
|
517
|
+
// Create user member
|
|
518
|
+
const createResponse: AccessControlAPIResponse<Role> =
|
|
519
|
+
await accessControlClient.groupMembers.addITwinGroupMembersAsync(
|
|
520
|
+
accessToken,
|
|
521
|
+
"71fd32ed-5ee4-4e22-bc4d-b8e973e0b7b7",
|
|
522
|
+
"d8215a6b-465d-44ff-910b-40d4541d1ebf"
|
|
523
|
+
);
|
|
524
|
+
|
|
525
|
+
// Update user member's role
|
|
526
|
+
const updatedGroupMemberResponse: AccessControlAPIResponse<GroupMember> =
|
|
527
|
+
await accessControlClient.groupMembers.updateITwinGroupMemberAsync(
|
|
528
|
+
accessToken,
|
|
529
|
+
"b1803a0c-d440-4902-b527-54bf7f72500f",
|
|
530
|
+
"6401109c-75d7-46b8-8dbd-182d02155141",
|
|
531
|
+
[
|
|
532
|
+
"25162c0c-dce7-419e-bb51-fd13efd5b54a",
|
|
533
|
+
"10e3d778-0d35-4c4d-bf77-547bb366cb14",
|
|
534
|
+
]
|
|
535
|
+
);
|
|
536
|
+
|
|
537
|
+
// Delete user member
|
|
538
|
+
const removeGroupMemberResponse: AccessControlAPIResponse<undefined> =
|
|
539
|
+
await accessControlClient.groupMembers.removeITwinGroupMemberAsync(
|
|
273
540
|
accessToken,
|
|
274
541
|
"b1803a0c-d440-4902-b527-54bf7f72500f",
|
|
275
542
|
"6401109c-75d7-46b8-8dbd-182d02155141"
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module AccessControlClient
|
|
3
3
|
*/
|
|
4
|
-
import type { IAccessControlClient,
|
|
4
|
+
import type { IAccessControlClient, IGroupMembersClient, IGroupsClient, IPermissionsClient, IRolesClient, IUserMembersClient } from "./accessControlTypes";
|
|
5
5
|
export declare class AccessControlClient implements IAccessControlClient {
|
|
6
6
|
permissions: IPermissionsClient;
|
|
7
7
|
roles: IRolesClient;
|
|
8
|
-
|
|
8
|
+
groups: IGroupsClient;
|
|
9
|
+
userMembers: IUserMembersClient;
|
|
10
|
+
groupMembers: IGroupMembersClient;
|
|
9
11
|
constructor(url?: string);
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=AccessControlClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlClient.d.ts","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"AccessControlClient.d.ts","sourceRoot":"","sources":["../../src/AccessControlClient.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,mBAAoB,YAAW,oBAAoB;IACvD,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;gBAEtB,GAAG,CAAC,EAAE,MAAM;CAOhC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AccessControlClient = void 0;
|
|
4
|
-
const MembersClient_1 = require("./subClients/MembersClient");
|
|
5
4
|
const PermissionsClient_1 = require("./subClients/PermissionsClient");
|
|
6
5
|
const RolesClient_1 = require("./subClients/RolesClient");
|
|
6
|
+
const GroupsClient_1 = require("./subClients/GroupsClient");
|
|
7
|
+
const UserMembersClient_1 = require("./subClients/UserMembersClient");
|
|
8
|
+
const GroupMembersClient_1 = require("./subClients/GroupMembersClient");
|
|
7
9
|
class AccessControlClient {
|
|
8
10
|
constructor(url) {
|
|
9
11
|
this.permissions = new PermissionsClient_1.PermissionsClient(url);
|
|
10
12
|
this.roles = new RolesClient_1.RolesClient(url);
|
|
11
|
-
this.
|
|
13
|
+
this.groups = new GroupsClient_1.GroupsClient(url);
|
|
14
|
+
this.userMembers = new UserMembersClient_1.UserMembersClient(url);
|
|
15
|
+
this.groupMembers = new GroupMembersClient_1.GroupMembersClient(url);
|
|
12
16
|
}
|
|
13
17
|
}
|
|
14
18
|
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":";;;AAeA,sEAAmE;AACnE,0DAAuD;AACvD,4DAAyD;AACzD,sEAAmE;AACnE,wEAAqE;AAErE,MAAa,mBAAmB;IAO9B,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;IAClD,CAAC;CACF;AAdD,kDAcC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccessControlClient\r\n */\r\nimport type {\r\n IAccessControlClient,\r\n IGroupMembersClient,\r\n IGroupsClient,\r\n IPermissionsClient,\r\n IRolesClient,\r\n IUserMembersClient,\r\n} from \"./accessControlTypes\";\r\nimport { PermissionsClient } from \"./subClients/PermissionsClient\";\r\nimport { RolesClient } from \"./subClients/RolesClient\";\r\nimport { GroupsClient } from \"./subClients/GroupsClient\";\r\nimport { UserMembersClient } from \"./subClients/UserMembersClient\";\r\nimport { GroupMembersClient } from \"./subClients/GroupMembersClient\";\r\n\r\nexport class AccessControlClient implements IAccessControlClient {\r\n public permissions: IPermissionsClient;\r\n public roles: IRolesClient;\r\n public groups: IGroupsClient;\r\n public userMembers: IUserMembersClient;\r\n public groupMembers: IGroupMembersClient;\r\n\r\n public constructor(url?: string) {\r\n this.permissions = new PermissionsClient(url);\r\n this.roles = new RolesClient(url);\r\n this.groups = new GroupsClient(url);\r\n this.userMembers = new UserMembersClient(url);\r\n this.groupMembers = new GroupMembersClient(url);\r\n }\r\n}\r\n"]}
|
|
@@ -5,7 +5,9 @@ import type { AccessToken } from "@itwin/core-bentley";
|
|
|
5
5
|
export interface IAccessControlClient {
|
|
6
6
|
permissions: IPermissionsClient;
|
|
7
7
|
roles: IRolesClient;
|
|
8
|
-
|
|
8
|
+
groups: IGroupsClient;
|
|
9
|
+
userMembers: IUserMembersClient;
|
|
10
|
+
groupMembers: IGroupMembersClient;
|
|
9
11
|
}
|
|
10
12
|
export interface IPermissionsClient {
|
|
11
13
|
/** Retrieves the list of all available permissions **/
|
|
@@ -13,17 +15,29 @@ export interface IPermissionsClient {
|
|
|
13
15
|
/** Retrieves a list of permissions the identity has for a specified iTwin */
|
|
14
16
|
getITwinPermissionsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Permission[]>>;
|
|
15
17
|
}
|
|
16
|
-
export interface
|
|
17
|
-
/** Retrieves a list of
|
|
18
|
-
|
|
19
|
-
/** Retrieves a specific member for a specified iTwin. */
|
|
20
|
-
|
|
21
|
-
/** Add new iTwin members */
|
|
22
|
-
|
|
23
|
-
/** Remove the specified iTwin member */
|
|
24
|
-
|
|
25
|
-
/** Update iTwin
|
|
26
|
-
|
|
18
|
+
export interface IUserMembersClient {
|
|
19
|
+
/** Retrieves a list of user members and their roles assigned to a specified iTwin. */
|
|
20
|
+
queryITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<UserMember[]>>;
|
|
21
|
+
/** Retrieves a specific user member for a specified iTwin. */
|
|
22
|
+
getITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<UserMember>>;
|
|
23
|
+
/** Add new iTwin user members */
|
|
24
|
+
addITwinUserMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: UserMember[]): Promise<AccessControlAPIResponse<UserMember[]>>;
|
|
25
|
+
/** Remove the specified iTwin user member */
|
|
26
|
+
removeITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
27
|
+
/** Update iTwin user member roles */
|
|
28
|
+
updateITwinUserMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<UserMember>>;
|
|
29
|
+
}
|
|
30
|
+
export interface IGroupMembersClient {
|
|
31
|
+
/** Retrieves a list of group members and their roles assigned to a specified iTwin. */
|
|
32
|
+
queryITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, arg?: AccessControlQueryArg): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
33
|
+
/** Retrieves a specific group member for a specified iTwin. */
|
|
34
|
+
getITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<GroupMember>>;
|
|
35
|
+
/** Add new iTwin group members */
|
|
36
|
+
addITwinGroupMembersAsync(accessToken: AccessToken, iTwinId: string, newMembers: GroupMember[]): Promise<AccessControlAPIResponse<GroupMember[]>>;
|
|
37
|
+
/** Remove the specified iTwin group member */
|
|
38
|
+
removeITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
39
|
+
/** Update iTwin group member roles */
|
|
40
|
+
updateITwinGroupMemberAsync(accessToken: AccessToken, iTwinId: string, memberId: string, roleIds: string[]): Promise<AccessControlAPIResponse<GroupMember>>;
|
|
27
41
|
}
|
|
28
42
|
export interface IRolesClient {
|
|
29
43
|
/** Retrieves a list of roles the for a specified iTwin */
|
|
@@ -37,6 +51,18 @@ export interface IRolesClient {
|
|
|
37
51
|
/** Updates an existing iTwin Role */
|
|
38
52
|
updateITwinRoleAsync(accessToken: AccessToken, iTwinId: string, roleId: string, role: Role): Promise<AccessControlAPIResponse<Role>>;
|
|
39
53
|
}
|
|
54
|
+
export interface IGroupsClient {
|
|
55
|
+
/** Retrieves a list of groups the for a specified iTwin */
|
|
56
|
+
getITwinGroupsAsync(accessToken: AccessToken, iTwinId: string): Promise<AccessControlAPIResponse<Group[]>>;
|
|
57
|
+
/** Retrieves a group for a specified iTwin */
|
|
58
|
+
getITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<Group>>;
|
|
59
|
+
/** Creates a new iTwin group */
|
|
60
|
+
createITwinGroupAsync(accessToken: AccessToken, iTwinId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
|
|
61
|
+
/** Removes an existing iTwin group */
|
|
62
|
+
deleteITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string): Promise<AccessControlAPIResponse<undefined>>;
|
|
63
|
+
/** Updates an existing iTwin group */
|
|
64
|
+
updateITwinGroupAsync(accessToken: AccessToken, iTwinId: string, groupId: string, group: Group): Promise<AccessControlAPIResponse<Group>>;
|
|
65
|
+
}
|
|
40
66
|
export interface AccessControlQueryArg {
|
|
41
67
|
top?: number;
|
|
42
68
|
skip?: number;
|
|
@@ -58,7 +84,7 @@ export interface ErrorDetail {
|
|
|
58
84
|
target?: string;
|
|
59
85
|
}
|
|
60
86
|
export declare type Permission = string;
|
|
61
|
-
export interface
|
|
87
|
+
export interface UserMember {
|
|
62
88
|
id?: string;
|
|
63
89
|
roleid?: string;
|
|
64
90
|
email?: string;
|
|
@@ -67,10 +93,23 @@ export interface Member {
|
|
|
67
93
|
organization?: string;
|
|
68
94
|
roles?: Omit<Role, "permissions">[];
|
|
69
95
|
}
|
|
96
|
+
export interface GroupMember {
|
|
97
|
+
id?: string;
|
|
98
|
+
groupName?: string;
|
|
99
|
+
groupDescription?: string;
|
|
100
|
+
roles?: Omit<Role, "permissions">[];
|
|
101
|
+
}
|
|
70
102
|
export interface Role {
|
|
71
103
|
id?: string;
|
|
72
104
|
displayName: string;
|
|
73
105
|
description: string;
|
|
74
106
|
permissions: Permission[];
|
|
75
107
|
}
|
|
108
|
+
export interface Group {
|
|
109
|
+
id?: string;
|
|
110
|
+
name?: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
users?: string[];
|
|
113
|
+
imsGroups?: string[];
|
|
114
|
+
}
|
|
76
115
|
//# sourceMappingURL=accessControlTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"accessControlTypes.d.ts","sourceRoot":"","sources":["../../src/accessControlTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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: Group\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 users?: string[];\r\n imsGroups?: string[];\r\n}\r\n"]}
|
|
@@ -55,7 +55,7 @@ class BaseClient {
|
|
|
55
55
|
headers: {
|
|
56
56
|
"authorization": accessTokenString,
|
|
57
57
|
"content-type": "application/json",
|
|
58
|
-
"accept": "application/vnd.bentley.itwin-platform.
|
|
58
|
+
"accept": "application/vnd.bentley.itwin-platform.v2+json",
|
|
59
59
|
},
|
|
60
60
|
validateStatus(status) {
|
|
61
61
|
return status < 500; // Resolve only if the status code is less than 500
|