@boxyhq/saml-jackson 1.9.10 → 1.10.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/dist/controller/utils.d.ts +1 -0
- package/dist/controller/utils.js +2 -1
- package/dist/controller/utils.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonIndex.js +2 -3
- package/dist/db/planetscale/entity/JacksonIndex.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonStore.js +2 -3
- package/dist/db/planetscale/entity/JacksonStore.js.map +1 -1
- package/dist/db/planetscale/entity/JacksonTTL.js +2 -3
- package/dist/db/planetscale/entity/JacksonTTL.js.map +1 -1
- package/dist/db/redis.js +16 -26
- package/dist/db/redis.js.map +1 -1
- package/dist/db/sql/entity/JacksonIndex.js +2 -3
- package/dist/db/sql/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/entity/JacksonStore.js +2 -3
- package/dist/db/sql/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/entity/JacksonTTL.js +2 -3
- package/dist/db/sql/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonIndex.js +2 -3
- package/dist/db/sql/mariadb/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonStore.js +2 -3
- package/dist/db/sql/mariadb/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/mariadb/entity/JacksonTTL.js +2 -3
- package/dist/db/sql/mariadb/entity/JacksonTTL.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonIndex.js +2 -3
- package/dist/db/sql/mssql/entity/JacksonIndex.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonStore.js +2 -3
- package/dist/db/sql/mssql/entity/JacksonStore.js.map +1 -1
- package/dist/db/sql/mssql/entity/JacksonTTL.js +2 -3
- package/dist/db/sql/mssql/entity/JacksonTTL.js.map +1 -1
- package/dist/directory-sync/index.d.ts +10 -8
- package/dist/directory-sync/index.js +22 -12
- package/dist/directory-sync/index.js.map +1 -1
- package/dist/directory-sync/non-scim/google/api.d.ts +48 -0
- package/dist/directory-sync/non-scim/google/api.js +147 -0
- package/dist/directory-sync/non-scim/google/api.js.map +1 -0
- package/dist/directory-sync/non-scim/google/index.d.ts +12 -0
- package/dist/directory-sync/non-scim/google/index.js +14 -0
- package/dist/directory-sync/non-scim/google/index.js.map +1 -0
- package/dist/directory-sync/non-scim/google/oauth.d.ts +27 -0
- package/dist/directory-sync/non-scim/google/oauth.js +109 -0
- package/dist/directory-sync/non-scim/google/oauth.js.map +1 -0
- package/dist/directory-sync/non-scim/index.d.ts +10 -0
- package/dist/directory-sync/non-scim/index.js +51 -0
- package/dist/directory-sync/non-scim/index.js.map +1 -0
- package/dist/directory-sync/non-scim/syncGroupMembers.d.ts +23 -0
- package/dist/directory-sync/non-scim/syncGroupMembers.js +112 -0
- package/dist/directory-sync/non-scim/syncGroupMembers.js.map +1 -0
- package/dist/directory-sync/non-scim/syncGroups.d.ts +24 -0
- package/dist/directory-sync/non-scim/syncGroups.js +124 -0
- package/dist/directory-sync/non-scim/syncGroups.js.map +1 -0
- package/dist/directory-sync/non-scim/syncUsers.d.ts +24 -0
- package/dist/directory-sync/non-scim/syncUsers.js +124 -0
- package/dist/directory-sync/non-scim/syncUsers.js.map +1 -0
- package/dist/directory-sync/non-scim/utils.d.ts +36 -0
- package/dist/directory-sync/non-scim/utils.js +124 -0
- package/dist/directory-sync/non-scim/utils.js.map +1 -0
- package/dist/directory-sync/{Base.d.ts → scim/Base.d.ts} +1 -5
- package/dist/directory-sync/{Base.js → scim/Base.js} +3 -17
- package/dist/directory-sync/scim/Base.js.map +1 -0
- package/dist/directory-sync/{DirectoryConfig.d.ts → scim/DirectoryConfig.d.ts} +21 -27
- package/dist/directory-sync/{DirectoryConfig.js → scim/DirectoryConfig.js} +76 -48
- package/dist/directory-sync/scim/DirectoryConfig.js.map +1 -0
- package/dist/directory-sync/{DirectoryGroups.d.ts → scim/DirectoryGroups.d.ts} +8 -6
- package/dist/directory-sync/{DirectoryGroups.js → scim/DirectoryGroups.js} +8 -12
- package/dist/directory-sync/scim/DirectoryGroups.js.map +1 -0
- package/dist/directory-sync/{DirectoryUsers.d.ts → scim/DirectoryUsers.d.ts} +7 -5
- package/dist/directory-sync/{DirectoryUsers.js → scim/DirectoryUsers.js} +4 -3
- package/dist/directory-sync/scim/DirectoryUsers.js.map +1 -0
- package/dist/directory-sync/scim/Groups.d.ts +38 -0
- package/dist/directory-sync/{Groups.js → scim/Groups.js} +38 -29
- package/dist/directory-sync/scim/Groups.js.map +1 -0
- package/dist/directory-sync/scim/Users.d.ts +32 -0
- package/dist/directory-sync/{Users.js → scim/Users.js} +27 -25
- package/dist/directory-sync/scim/Users.js.map +1 -0
- package/dist/directory-sync/{WebhookEventsLogger.d.ts → scim/WebhookEventsLogger.d.ts} +1 -1
- package/dist/directory-sync/{WebhookEventsLogger.js → scim/WebhookEventsLogger.js} +3 -1
- package/dist/directory-sync/scim/WebhookEventsLogger.js.map +1 -0
- package/dist/directory-sync/{events.d.ts → scim/events.d.ts} +5 -3
- package/dist/directory-sync/{events.js → scim/events.js} +6 -4
- package/dist/directory-sync/scim/events.js.map +1 -0
- package/dist/directory-sync/{transform.d.ts → scim/transform.d.ts} +1 -1
- package/dist/directory-sync/scim/transform.js.map +1 -0
- package/dist/directory-sync/scim/utils.d.ts +33 -0
- package/dist/directory-sync/{utils.js → scim/utils.js} +8 -3
- package/dist/directory-sync/scim/utils.js.map +1 -0
- package/dist/directory-sync/types.d.ts +65 -13
- package/dist/directory-sync/types.js +3 -2
- package/dist/directory-sync/types.js.map +1 -1
- package/dist/typings.d.ts +9 -0
- package/package.json +15 -12
- package/dist/directory-sync/Base.js.map +0 -1
- package/dist/directory-sync/DirectoryConfig.js.map +0 -1
- package/dist/directory-sync/DirectoryGroups.js.map +0 -1
- package/dist/directory-sync/DirectoryUsers.js.map +0 -1
- package/dist/directory-sync/Groups.d.ts +0 -48
- package/dist/directory-sync/Groups.js.map +0 -1
- package/dist/directory-sync/Users.d.ts +0 -49
- package/dist/directory-sync/Users.js.map +0 -1
- package/dist/directory-sync/WebhookEventsLogger.js.map +0 -1
- package/dist/directory-sync/events.js.map +0 -1
- package/dist/directory-sync/transform.js.map +0 -1
- package/dist/directory-sync/utils.d.ts +0 -33
- package/dist/directory-sync/utils.js.map +0 -1
- /package/dist/directory-sync/{transform.js → scim/transform.js} +0 -0
@@ -33,13 +33,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
33
33
|
};
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
35
35
|
exports.DirectoryConfig = void 0;
|
36
|
-
const dbutils = __importStar(require("../db/utils"));
|
37
|
-
const utils_1 = require("../controller/utils");
|
38
|
-
const error_1 = require("../controller/error");
|
39
|
-
const utils_2 = require("../controller/utils");
|
40
36
|
const crypto_1 = require("crypto");
|
41
|
-
const
|
42
|
-
const
|
37
|
+
const dbutils = __importStar(require("../../db/utils"));
|
38
|
+
const utils_1 = require("../../controller/utils");
|
39
|
+
const error_1 = require("../../controller/error");
|
40
|
+
const utils_2 = require("./utils");
|
43
41
|
class DirectoryConfig {
|
44
42
|
constructor({ db, opts, users, groups, logger, eventController }) {
|
45
43
|
this._store = null;
|
@@ -52,44 +50,63 @@ class DirectoryConfig {
|
|
52
50
|
}
|
53
51
|
// Return the database store
|
54
52
|
store() {
|
55
|
-
return this._store || (this._store = this.db.store(
|
53
|
+
return this._store || (this._store = this.db.store(utils_1.storeNamespacePrefix.dsync.config));
|
56
54
|
}
|
57
55
|
// Create the configuration
|
58
56
|
create(params) {
|
59
57
|
return __awaiter(this, void 0, void 0, function* () {
|
60
58
|
try {
|
61
|
-
const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2' } = params;
|
59
|
+
const { name, tenant, product, webhook_url, webhook_secret, type = 'generic-scim-v2', google_domain, google_access_token, google_refresh_token, } = params;
|
62
60
|
if (!tenant || !product) {
|
63
61
|
throw new error_1.JacksonError('Missing required parameters.', 400);
|
64
62
|
}
|
65
63
|
// Validate the directory type
|
66
|
-
if (!Object.keys((0,
|
64
|
+
if (!Object.keys((0, utils_2.getDirectorySyncProviders)()).includes(type)) {
|
67
65
|
throw new error_1.JacksonError('Invalid directory type.', 400);
|
68
66
|
}
|
69
67
|
(0, utils_1.validateTenantAndProduct)(tenant, product);
|
70
68
|
const directoryName = name || `scim-${tenant}-${product}`;
|
71
69
|
const id = (0, crypto_1.randomUUID)();
|
72
70
|
const hasWebhook = webhook_url && webhook_secret;
|
73
|
-
const
|
71
|
+
const isSCIMProvider = (0, utils_2.isSCIMEnabledProvider)(type);
|
72
|
+
let directory = {
|
74
73
|
id,
|
75
74
|
name: directoryName,
|
76
75
|
tenant,
|
77
76
|
product,
|
78
77
|
type,
|
79
78
|
log_webhook_events: false,
|
80
|
-
scim: {
|
81
|
-
path: `${this.opts.scimPath}/${id}`,
|
82
|
-
secret: yield (0, utils_1.createRandomSecret)(16),
|
83
|
-
},
|
84
79
|
webhook: {
|
85
80
|
endpoint: hasWebhook ? webhook_url : '',
|
86
81
|
secret: hasWebhook ? webhook_secret : '',
|
87
82
|
},
|
83
|
+
scim: isSCIMProvider
|
84
|
+
? {
|
85
|
+
path: `${this.opts.scimPath}/${id}`,
|
86
|
+
secret: yield (0, utils_1.createRandomSecret)(16),
|
87
|
+
}
|
88
|
+
: {
|
89
|
+
path: '',
|
90
|
+
secret: '',
|
91
|
+
},
|
88
92
|
};
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
+
if (type === 'google') {
|
94
|
+
directory = Object.assign(Object.assign({}, directory), { google_domain: google_domain || '', google_access_token: google_access_token || '', google_refresh_token: google_refresh_token || '' });
|
95
|
+
}
|
96
|
+
const indexes = [
|
97
|
+
{
|
98
|
+
name: utils_1.IndexNames.TenantProduct,
|
99
|
+
value: dbutils.keyFromParts(tenant, product),
|
100
|
+
},
|
101
|
+
];
|
102
|
+
// Add secondary index for Non-SCIM providers
|
103
|
+
if (!isSCIMProvider) {
|
104
|
+
indexes.push({
|
105
|
+
name: utils_1.storeNamespacePrefix.dsync.providers,
|
106
|
+
value: type,
|
107
|
+
});
|
108
|
+
}
|
109
|
+
yield this.store().put(id, directory, ...indexes);
|
93
110
|
const connection = this.transform(directory);
|
94
111
|
yield this.eventController.notify('dsync.created', connection);
|
95
112
|
return { data: connection, error: null };
|
@@ -124,34 +141,20 @@ class DirectoryConfig {
|
|
124
141
|
if (!id) {
|
125
142
|
throw new error_1.JacksonError('Missing required parameters.', 400);
|
126
143
|
}
|
127
|
-
const { name, log_webhook_events, webhook,
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
if (log_webhook_events !== undefined) {
|
133
|
-
directory.log_webhook_events = log_webhook_events;
|
134
|
-
}
|
135
|
-
if (webhook) {
|
136
|
-
directory.webhook = webhook;
|
137
|
-
}
|
138
|
-
if (type) {
|
139
|
-
directory.type = type;
|
140
|
-
}
|
141
|
-
if ('deactivated' in param) {
|
142
|
-
directory['deactivated'] = param.deactivated;
|
143
|
-
}
|
144
|
-
yield this.store().put(id, Object.assign({}, directory));
|
145
|
-
directory = this.transform(directory);
|
144
|
+
const { name, log_webhook_events, webhook, deactivated, google_domain, google_access_token, google_refresh_token, } = param;
|
145
|
+
const directory = yield this.store().get(id);
|
146
|
+
let updatedDirectory = Object.assign(Object.assign({}, directory), { name: name || directory.name, webhook: webhook || directory.webhook, deactivated: deactivated !== undefined ? deactivated : directory.deactivated, log_webhook_events: log_webhook_events !== undefined ? log_webhook_events : directory.log_webhook_events, google_domain: google_domain || directory.google_domain, google_access_token: google_access_token || directory.google_access_token, google_refresh_token: google_refresh_token || directory.google_refresh_token });
|
147
|
+
yield this.store().put(id, updatedDirectory);
|
148
|
+
updatedDirectory = this.transform(updatedDirectory);
|
146
149
|
if ('deactivated' in param) {
|
147
|
-
if ((0, utils_1.isConnectionActive)(
|
148
|
-
yield this.eventController.notify('dsync.activated',
|
150
|
+
if ((0, utils_1.isConnectionActive)(updatedDirectory)) {
|
151
|
+
yield this.eventController.notify('dsync.activated', updatedDirectory);
|
149
152
|
}
|
150
153
|
else {
|
151
|
-
yield this.eventController.notify('dsync.deactivated',
|
154
|
+
yield this.eventController.notify('dsync.deactivated', updatedDirectory);
|
152
155
|
}
|
153
156
|
}
|
154
|
-
return { data:
|
157
|
+
return { data: updatedDirectory, error: null };
|
155
158
|
}
|
156
159
|
catch (err) {
|
157
160
|
return (0, error_1.apiError)(err);
|
@@ -166,7 +169,7 @@ class DirectoryConfig {
|
|
166
169
|
throw new error_1.JacksonError('Missing required parameters.', 400);
|
167
170
|
}
|
168
171
|
const { data: directories } = yield this.store().getByIndex({
|
169
|
-
name:
|
172
|
+
name: utils_1.IndexNames.TenantProduct,
|
170
173
|
value: dbutils.keyFromParts(tenant, product),
|
171
174
|
});
|
172
175
|
const transformedDirectories = directories.map((directory) => this.transform(directory));
|
@@ -177,9 +180,10 @@ class DirectoryConfig {
|
|
177
180
|
}
|
178
181
|
});
|
179
182
|
}
|
180
|
-
// Get
|
181
|
-
getAll(
|
183
|
+
// Get directory connections with pagination
|
184
|
+
getAll(params = {}) {
|
182
185
|
return __awaiter(this, void 0, void 0, function* () {
|
186
|
+
const { pageOffset, pageLimit, pageToken } = params;
|
183
187
|
try {
|
184
188
|
const { data: directories, pageToken: nextPageToken } = yield this.store().getAll(pageOffset, pageLimit, pageToken);
|
185
189
|
const transformedDirectories = directories
|
@@ -225,16 +229,40 @@ class DirectoryConfig {
|
|
225
229
|
});
|
226
230
|
}
|
227
231
|
transform(directory) {
|
228
|
-
|
229
|
-
|
230
|
-
directory.scim
|
232
|
+
if (directory.scim.path) {
|
233
|
+
// Add the flag to ensure SCIM compliance when using Azure AD
|
234
|
+
if (directory.type === 'azure-scim-v2') {
|
235
|
+
directory.scim.path = `${directory.scim.path}/?aadOptscim062020`;
|
236
|
+
}
|
237
|
+
// Construct the SCIM endpoint
|
238
|
+
directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
|
231
239
|
}
|
232
|
-
directory.scim.endpoint = `${this.opts.externalUrl}${directory.scim.path}`;
|
233
240
|
if (!('deactivated' in directory)) {
|
234
241
|
directory.deactivated = false;
|
235
242
|
}
|
236
243
|
return directory;
|
237
244
|
}
|
245
|
+
// Get the connections by directory provider
|
246
|
+
getByProvider(params) {
|
247
|
+
return __awaiter(this, void 0, void 0, function* () {
|
248
|
+
const { provider, pageOffset, pageLimit, pageToken } = params;
|
249
|
+
const index = {
|
250
|
+
name: utils_1.storeNamespacePrefix.dsync.providers,
|
251
|
+
value: provider,
|
252
|
+
};
|
253
|
+
try {
|
254
|
+
const { data: directories, pageToken: nextPageToken } = yield this.store().getByIndex(index, pageOffset, pageLimit, pageToken);
|
255
|
+
return {
|
256
|
+
data: directories.map((directory) => this.transform(directory)),
|
257
|
+
pageToken: nextPageToken,
|
258
|
+
error: null,
|
259
|
+
};
|
260
|
+
}
|
261
|
+
catch (err) {
|
262
|
+
return (0, error_1.apiError)(err);
|
263
|
+
}
|
264
|
+
});
|
265
|
+
}
|
238
266
|
}
|
239
267
|
exports.DirectoryConfig = DirectoryConfig;
|
240
268
|
//# sourceMappingURL=DirectoryConfig.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DirectoryConfig.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryConfig.ts"],"names":[],"mappings":"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"}
|
@@ -1,14 +1,15 @@
|
|
1
|
-
import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '
|
1
|
+
import type { Group, DirectorySyncResponse, Directory, DirectorySyncGroupMember, DirectorySyncRequest, EventCallback, IDirectoryConfig, IUsers, IGroups } from '../../typings';
|
2
|
+
interface DirectoryGroupsParams {
|
3
|
+
directories: IDirectoryConfig;
|
4
|
+
users: IUsers;
|
5
|
+
groups: IGroups;
|
6
|
+
}
|
2
7
|
export declare class DirectoryGroups {
|
3
8
|
private directories;
|
4
9
|
private users;
|
5
10
|
private groups;
|
6
11
|
private callback;
|
7
|
-
constructor({ directories, users, groups
|
8
|
-
directories: IDirectoryConfig;
|
9
|
-
users: IUsers;
|
10
|
-
groups: IGroups;
|
11
|
-
});
|
12
|
+
constructor({ directories, users, groups }: DirectoryGroupsParams);
|
12
13
|
create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
|
13
14
|
get(group: Group): Promise<DirectorySyncResponse>;
|
14
15
|
getAll(queryParams: {
|
@@ -24,3 +25,4 @@ export declare class DirectoryGroups {
|
|
24
25
|
private respondWithError;
|
25
26
|
handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
|
26
27
|
}
|
28
|
+
export {};
|
@@ -13,18 +13,19 @@ exports.DirectoryGroups = void 0;
|
|
13
13
|
const utils_1 = require("./utils");
|
14
14
|
const events_1 = require("./events");
|
15
15
|
class DirectoryGroups {
|
16
|
-
constructor({ directories, users, groups
|
16
|
+
constructor({ directories, users, groups }) {
|
17
17
|
this.directories = directories;
|
18
18
|
this.users = users;
|
19
19
|
this.groups = groups;
|
20
20
|
}
|
21
21
|
create(directory, body) {
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
23
|
-
const { displayName } = body;
|
23
|
+
const { displayName, groupId } = body;
|
24
24
|
const { data: group } = yield this.groups.create({
|
25
25
|
directoryId: directory.id,
|
26
26
|
name: displayName,
|
27
|
-
|
27
|
+
id: groupId,
|
28
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, body), { members: [] }),
|
28
29
|
});
|
29
30
|
yield (0, events_1.sendEvent)('group.created', { directory, group }, this.callback);
|
30
31
|
return {
|
@@ -63,7 +64,7 @@ class DirectoryGroups {
|
|
63
64
|
}
|
64
65
|
else {
|
65
66
|
// Fetch all the existing group
|
66
|
-
const { data } = yield this.groups.getAll({ pageOffset: undefined, pageLimit: undefined });
|
67
|
+
const { data } = yield this.groups.getAll({ directoryId, pageOffset: undefined, pageLimit: undefined });
|
67
68
|
groups = data;
|
68
69
|
}
|
69
70
|
return {
|
@@ -112,11 +113,7 @@ class DirectoryGroups {
|
|
112
113
|
}
|
113
114
|
update(directory, group, body) {
|
114
115
|
return __awaiter(this, void 0, void 0, function* () {
|
115
|
-
const
|
116
|
-
// Update group name
|
117
|
-
const updatedGroup = yield this.updateDisplayName(directory, group, {
|
118
|
-
displayName,
|
119
|
-
});
|
116
|
+
const updatedGroup = yield this.updateDisplayName(directory, group, body);
|
120
117
|
return {
|
121
118
|
status: 200,
|
122
119
|
data: {
|
@@ -141,10 +138,9 @@ class DirectoryGroups {
|
|
141
138
|
// Update group displayName
|
142
139
|
updateDisplayName(directory, group, body) {
|
143
140
|
return __awaiter(this, void 0, void 0, function* () {
|
144
|
-
const { displayName } = body;
|
145
141
|
const { data: updatedGroup, error } = yield this.groups.update(group.id, {
|
146
|
-
name: displayName,
|
147
|
-
raw: Object.assign(Object.assign({}, group.raw), body),
|
142
|
+
name: body.displayName,
|
143
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : Object.assign(Object.assign({}, group.raw), body),
|
148
144
|
});
|
149
145
|
if (error || !updatedGroup) {
|
150
146
|
throw error;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DirectoryGroups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryGroups.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,13 @@
|
|
1
|
-
import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '
|
1
|
+
import type { Directory, DirectorySyncResponse, DirectorySyncRequest, User, EventCallback, IDirectoryConfig, IUsers } from '../../typings';
|
2
|
+
interface DirectoryUsersParams {
|
3
|
+
directories: IDirectoryConfig;
|
4
|
+
users: IUsers;
|
5
|
+
}
|
2
6
|
export declare class DirectoryUsers {
|
3
7
|
private directories;
|
4
8
|
private users;
|
5
9
|
private callback;
|
6
|
-
constructor({ directories, users }:
|
7
|
-
directories: IDirectoryConfig;
|
8
|
-
users: IUsers;
|
9
|
-
});
|
10
|
+
constructor({ directories, users }: DirectoryUsersParams);
|
10
11
|
create(directory: Directory, body: any): Promise<DirectorySyncResponse>;
|
11
12
|
get(user: User): Promise<DirectorySyncResponse>;
|
12
13
|
update(directory: Directory, user: User, body: any): Promise<DirectorySyncResponse>;
|
@@ -21,3 +22,4 @@ export declare class DirectoryUsers {
|
|
21
22
|
private respondWithError;
|
22
23
|
handleRequest(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse>;
|
23
24
|
}
|
25
|
+
export {};
|
@@ -19,14 +19,15 @@ class DirectoryUsers {
|
|
19
19
|
}
|
20
20
|
create(directory, body) {
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
22
|
-
const { first_name, last_name, email, active } = (0, utils_1.extractStandardUserAttributes)(body);
|
22
|
+
const { id, first_name, last_name, email, active } = (0, utils_1.extractStandardUserAttributes)(body);
|
23
23
|
const { data: user } = yield this.users.create({
|
24
24
|
directoryId: directory.id,
|
25
|
+
id,
|
25
26
|
first_name,
|
26
27
|
last_name,
|
27
28
|
email,
|
28
29
|
active,
|
29
|
-
raw: body,
|
30
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : body,
|
30
31
|
});
|
31
32
|
yield (0, events_1.sendEvent)('user.created', { directory, user }, this.callback);
|
32
33
|
return {
|
@@ -51,7 +52,7 @@ class DirectoryUsers {
|
|
51
52
|
last_name: name.familyName,
|
52
53
|
email: emails[0].value,
|
53
54
|
active,
|
54
|
-
raw: body,
|
55
|
+
raw: 'rawAttributes' in body ? body.rawAttributes : body,
|
55
56
|
});
|
56
57
|
yield (0, events_1.sendEvent)('user.updated', { directory, user: updatedUser }, this.callback);
|
57
58
|
return {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DirectoryUsers.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/DirectoryUsers.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import type { Group, DatabaseStore, PaginationParams, Response, GroupMembership } from '../../typings';
|
2
|
+
import { Base } from './Base';
|
3
|
+
interface CreateGroupParams {
|
4
|
+
directoryId: string;
|
5
|
+
name: string;
|
6
|
+
raw: any;
|
7
|
+
id?: string;
|
8
|
+
}
|
9
|
+
export declare class Groups extends Base {
|
10
|
+
constructor({ db }: {
|
11
|
+
db: DatabaseStore;
|
12
|
+
});
|
13
|
+
create(params: CreateGroupParams): Promise<Response<Group>>;
|
14
|
+
get(id: string): Promise<Response<Group>>;
|
15
|
+
update(id: string, param: {
|
16
|
+
name: string;
|
17
|
+
raw: any;
|
18
|
+
}): Promise<Response<Group>>;
|
19
|
+
delete(id: string): Promise<Response<null>>;
|
20
|
+
addUserToGroup(groupId: string, userId: string): Promise<void>;
|
21
|
+
removeUserFromGroup(groupId: string, userId: string): Promise<void>;
|
22
|
+
isUserInGroup(groupId: string, userId: string): Promise<boolean>;
|
23
|
+
search(displayName: string, directoryId: string): Promise<Response<Group[]>>;
|
24
|
+
getAll(params: PaginationParams & {
|
25
|
+
directoryId?: string;
|
26
|
+
}): Promise<Response<Group[]>>;
|
27
|
+
/**
|
28
|
+
* Get members of a group paginated
|
29
|
+
* @param groupId
|
30
|
+
* @returns
|
31
|
+
*/
|
32
|
+
getGroupMembers(parmas: {
|
33
|
+
groupId: string;
|
34
|
+
} & PaginationParams): Promise<Response<GroupMembership['user_id'][]>>;
|
35
|
+
deleteAll(directoryId: string): Promise<void>;
|
36
|
+
removeAllUsers(groupId: string): Promise<void>;
|
37
|
+
}
|
38
|
+
export {};
|
@@ -33,8 +33,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
33
33
|
};
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
35
35
|
exports.Groups = void 0;
|
36
|
-
const
|
37
|
-
const
|
36
|
+
const crypto_1 = require("crypto");
|
37
|
+
const dbutils = __importStar(require("../../db/utils"));
|
38
|
+
const error_1 = require("../../controller/error");
|
38
39
|
const Base_1 = require("./Base");
|
39
40
|
const indexNames = {
|
40
41
|
directoryIdDisplayname: 'directoryIdDisplayname',
|
@@ -45,16 +46,17 @@ class Groups extends Base_1.Base {
|
|
45
46
|
super({ db });
|
46
47
|
}
|
47
48
|
// Create a new group
|
48
|
-
create(
|
49
|
+
create(params) {
|
49
50
|
return __awaiter(this, void 0, void 0, function* () {
|
51
|
+
const { directoryId, name, raw, id: groupId } = params;
|
52
|
+
const id = groupId || (0, crypto_1.randomUUID)();
|
53
|
+
raw['id'] = id;
|
54
|
+
const group = {
|
55
|
+
id,
|
56
|
+
name,
|
57
|
+
raw,
|
58
|
+
};
|
50
59
|
try {
|
51
|
-
const id = this.createId();
|
52
|
-
raw['id'] = id;
|
53
|
-
const group = {
|
54
|
-
id,
|
55
|
-
name,
|
56
|
-
raw,
|
57
|
-
};
|
58
60
|
yield this.store('groups').put(id, group, {
|
59
61
|
name: indexNames.directoryIdDisplayname,
|
60
62
|
value: dbutils.keyFromParts(directoryId, name),
|
@@ -87,13 +89,13 @@ class Groups extends Base_1.Base {
|
|
87
89
|
// Update the group data
|
88
90
|
update(id, param) {
|
89
91
|
return __awaiter(this, void 0, void 0, function* () {
|
92
|
+
const { name, raw } = param;
|
93
|
+
const group = {
|
94
|
+
id,
|
95
|
+
name,
|
96
|
+
raw,
|
97
|
+
};
|
90
98
|
try {
|
91
|
-
const { name, raw } = param;
|
92
|
-
const group = {
|
93
|
-
id,
|
94
|
-
name,
|
95
|
-
raw,
|
96
|
-
};
|
97
99
|
yield this.store('groups').put(id, group);
|
98
100
|
return { data: group, error: null };
|
99
101
|
}
|
@@ -119,19 +121,6 @@ class Groups extends Base_1.Base {
|
|
119
121
|
}
|
120
122
|
});
|
121
123
|
}
|
122
|
-
// Get all users in a group
|
123
|
-
getAllUsers(groupId) {
|
124
|
-
return __awaiter(this, void 0, void 0, function* () {
|
125
|
-
const { data: users } = yield this.store('members').getByIndex({
|
126
|
-
name: 'groupId',
|
127
|
-
value: groupId,
|
128
|
-
});
|
129
|
-
if (users.length === 0) {
|
130
|
-
return [];
|
131
|
-
}
|
132
|
-
return users;
|
133
|
-
});
|
134
|
-
}
|
135
124
|
// Add a user to a group
|
136
125
|
addUserToGroup(groupId, userId) {
|
137
126
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -199,6 +188,26 @@ class Groups extends Base_1.Base {
|
|
199
188
|
}
|
200
189
|
});
|
201
190
|
}
|
191
|
+
/**
|
192
|
+
* Get members of a group paginated
|
193
|
+
* @param groupId
|
194
|
+
* @returns
|
195
|
+
*/
|
196
|
+
getGroupMembers(parmas) {
|
197
|
+
return __awaiter(this, void 0, void 0, function* () {
|
198
|
+
const { groupId, pageOffset, pageLimit } = parmas;
|
199
|
+
try {
|
200
|
+
const { data: members } = yield this.store('members').getByIndex({
|
201
|
+
name: 'groupId',
|
202
|
+
value: groupId,
|
203
|
+
}, pageOffset, pageLimit);
|
204
|
+
return { data: members, error: null };
|
205
|
+
}
|
206
|
+
catch (err) {
|
207
|
+
return (0, error_1.apiError)(err);
|
208
|
+
}
|
209
|
+
});
|
210
|
+
}
|
202
211
|
// Delete all groups from a directory
|
203
212
|
deleteAll(directoryId) {
|
204
213
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Groups.js","sourceRoot":"","sources":["../../../src/directory-sync/scim/Groups.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import type { User, DatabaseStore, PaginationParams, Response } from '../../typings';
|
2
|
+
import { Base } from './Base';
|
3
|
+
interface CreateUserParams {
|
4
|
+
directoryId: string;
|
5
|
+
first_name: string;
|
6
|
+
last_name: string;
|
7
|
+
email: string;
|
8
|
+
active: boolean;
|
9
|
+
raw: any;
|
10
|
+
id?: string;
|
11
|
+
}
|
12
|
+
export declare class Users extends Base {
|
13
|
+
constructor({ db }: {
|
14
|
+
db: DatabaseStore;
|
15
|
+
});
|
16
|
+
create(params: CreateUserParams): Promise<Response<User>>;
|
17
|
+
get(id: string): Promise<Response<User>>;
|
18
|
+
update(id: string, param: {
|
19
|
+
first_name: string;
|
20
|
+
last_name: string;
|
21
|
+
email: string;
|
22
|
+
active: boolean;
|
23
|
+
raw: object;
|
24
|
+
}): Promise<Response<User>>;
|
25
|
+
delete(id: string): Promise<Response<null>>;
|
26
|
+
search(userName: string, directoryId: string): Promise<Response<User[]>>;
|
27
|
+
getAll({ pageOffset, pageLimit, directoryId, }?: PaginationParams & {
|
28
|
+
directoryId?: string;
|
29
|
+
}): Promise<Response<User[]>>;
|
30
|
+
deleteAll(directoryId: string): Promise<void>;
|
31
|
+
}
|
32
|
+
export {};
|