@webex/internal-plugin-user 3.0.0-beta.9 → 3.0.0-bnr.2
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/README.md +1 -3
- package/dist/config.js +0 -3
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -9
- package/dist/index.js.map +1 -1
- package/dist/internal-plugin-user.d.ts +7 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/types/config.d.ts +17 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/user-uuid-batcher.d.ts +5 -0
- package/dist/types/user-uuid-store.d.ts +34 -0
- package/dist/types/user.d.ts +5 -0
- package/dist/user-uuid-batcher.js +4 -21
- package/dist/user-uuid-batcher.js.map +1 -1
- package/dist/user-uuid-store.js +17 -37
- package/dist/user-uuid-store.js.map +1 -1
- package/dist/user.js +18 -82
- package/dist/user.js.map +1 -1
- package/package.json +8 -8
- package/src/config.js +5 -5
- package/src/index.js +2 -3
- package/src/user-uuid-batcher.js +22 -22
- package/src/user-uuid-store.js +7 -6
- package/src/user.js +90 -81
- package/test/integration/spec/user.js +130 -87
- package/test/unit/spec/user-uuid-batcher.js +22 -19
- package/test/unit/spec/user.js +83 -35
package/dist/user.js
CHANGED
|
@@ -1,37 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor2 = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
3
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
11
|
value: true
|
|
9
12
|
});
|
|
10
|
-
|
|
11
13
|
exports.default = void 0;
|
|
12
|
-
|
|
13
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
14
|
-
|
|
15
|
-
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
16
|
-
|
|
17
15
|
var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
|
|
18
|
-
|
|
19
16
|
var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
|
|
20
|
-
|
|
17
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
21
18
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
|
|
22
|
-
|
|
23
19
|
var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
|
|
24
|
-
|
|
25
20
|
var _common = require("@webex/common");
|
|
26
|
-
|
|
27
21
|
var _webexCore = require("@webex/webex-core");
|
|
28
|
-
|
|
29
22
|
var _userUuidBatcher = _interopRequireDefault(require("./user-uuid-batcher"));
|
|
30
|
-
|
|
31
23
|
var _userUuidStore = _interopRequireDefault(require("./user-uuid-store"));
|
|
32
|
-
|
|
33
24
|
var _dec, _dec2, _dec3, _dec4, _obj;
|
|
34
|
-
|
|
25
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor2(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor2(source, key)); }); } return target; }
|
|
35
27
|
/**
|
|
36
28
|
* @class
|
|
37
29
|
*/
|
|
@@ -64,7 +56,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
64
56
|
type: 'any'
|
|
65
57
|
}
|
|
66
58
|
},
|
|
67
|
-
|
|
68
59
|
/**
|
|
69
60
|
* Activates a Webex user account and exchanges for user token.
|
|
70
61
|
* @instance
|
|
@@ -78,18 +69,16 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
78
69
|
*/
|
|
79
70
|
activate: function activate() {
|
|
80
71
|
var _this = this;
|
|
81
|
-
|
|
82
72
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
83
|
-
|
|
84
73
|
if (!(options.verificationToken || options.confirmationCode && options.id)) {
|
|
85
74
|
return _promise.default.reject(new Error('either options.verificationToken is required or both options.confirmationCode and options.id are required'));
|
|
86
75
|
}
|
|
76
|
+
options.scope = this.webex.config.credentials.scope;
|
|
87
77
|
|
|
88
|
-
|
|
78
|
+
// if we have options.email and options.verificationToken
|
|
89
79
|
// and Federation flag is enabled, flag that we need to
|
|
90
80
|
// lookup user's CI.
|
|
91
|
-
|
|
92
|
-
var activateOptions = (0, _assign.default)({}, options);
|
|
81
|
+
var activateOptions = _objectSpread({}, options);
|
|
93
82
|
delete activateOptions.email;
|
|
94
83
|
return this.request({
|
|
95
84
|
uri: this.webex.config.credentials.activationUrl,
|
|
@@ -104,11 +93,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
104
93
|
_this.webex.credentials.set({
|
|
105
94
|
supertoken: res.body.tokenData
|
|
106
95
|
});
|
|
107
|
-
|
|
108
96
|
return res.body;
|
|
109
97
|
});
|
|
110
98
|
},
|
|
111
|
-
|
|
112
99
|
/**
|
|
113
100
|
* Converts a user-identifying object to a uuid, perhaps by doing a network
|
|
114
101
|
* lookup
|
|
@@ -121,32 +108,24 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
121
108
|
*/
|
|
122
109
|
asUUID: function asUUID(user, options) {
|
|
123
110
|
var _this2 = this;
|
|
124
|
-
|
|
125
111
|
if (!user) {
|
|
126
112
|
return _promise.default.reject(new Error('`user` is required'));
|
|
127
113
|
}
|
|
128
|
-
|
|
129
114
|
if ((0, _isArray2.default)(user)) {
|
|
130
115
|
return _promise.default.all(user.map(function (u) {
|
|
131
116
|
return _this2.asUUID(u, options);
|
|
132
117
|
}));
|
|
133
118
|
}
|
|
134
|
-
|
|
135
119
|
var id = this._extractUUID(user);
|
|
136
|
-
|
|
137
120
|
if (!(options && options.force) && _common.patterns.uuid.test(id)) {
|
|
138
121
|
return _promise.default.resolve(id);
|
|
139
122
|
}
|
|
140
|
-
|
|
141
123
|
var email = this._extractEmailAddress(user);
|
|
142
|
-
|
|
143
124
|
if (!_common.patterns.email.test(email)) {
|
|
144
125
|
return _promise.default.reject(new Error('Provided user object does not appear to identify a user'));
|
|
145
126
|
}
|
|
146
|
-
|
|
147
127
|
return this.getUUID(email, options);
|
|
148
128
|
},
|
|
149
|
-
|
|
150
129
|
/**
|
|
151
130
|
* Requests a uuid from the api
|
|
152
131
|
* @param {string} email
|
|
@@ -156,19 +135,17 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
156
135
|
*/
|
|
157
136
|
fetchUUID: function fetchUUID(email, options) {
|
|
158
137
|
var _this3 = this;
|
|
159
|
-
|
|
160
138
|
return this.batcher.request({
|
|
161
139
|
email: email,
|
|
162
140
|
create: options && options.create
|
|
163
141
|
}).then(function (user) {
|
|
164
|
-
return _this3.recordUUID((
|
|
142
|
+
return _this3.recordUUID(_objectSpread({
|
|
165
143
|
emailAddress: email
|
|
166
144
|
}, user)).then(function () {
|
|
167
145
|
return user.id;
|
|
168
146
|
});
|
|
169
147
|
});
|
|
170
148
|
},
|
|
171
|
-
|
|
172
149
|
/**
|
|
173
150
|
* Generates One Time Password.
|
|
174
151
|
* @instance
|
|
@@ -179,11 +156,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
179
156
|
*/
|
|
180
157
|
generateOTP: function generateOTP() {
|
|
181
158
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
182
|
-
|
|
183
159
|
if (!(options.email || options.id)) {
|
|
184
160
|
return _promise.default.reject(new Error('One of `options.email` or `options.id` is required'));
|
|
185
161
|
}
|
|
186
|
-
|
|
187
162
|
return this.request({
|
|
188
163
|
uri: this.webex.config.credentials.generateOtpUrl,
|
|
189
164
|
method: 'POST',
|
|
@@ -196,14 +171,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
196
171
|
return res.body;
|
|
197
172
|
});
|
|
198
173
|
},
|
|
199
|
-
|
|
200
174
|
/**
|
|
201
175
|
* Fetches details about the current user
|
|
202
176
|
* @returns {Promise<Object>}
|
|
203
177
|
*/
|
|
204
178
|
get: function get() {
|
|
205
179
|
var _this4 = this;
|
|
206
|
-
|
|
207
180
|
return this.request({
|
|
208
181
|
service: 'conversation',
|
|
209
182
|
resource: 'users'
|
|
@@ -220,16 +193,13 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
220
193
|
},
|
|
221
194
|
getUUID: function getUUID(email, options) {
|
|
222
195
|
var _this5 = this;
|
|
223
|
-
|
|
224
196
|
return this.store.getByEmail(email).then(function (user) {
|
|
225
197
|
if (options && options.create && !user.userExists) {
|
|
226
198
|
return _promise.default.reject(new Error('User for specified email cannot be confirmed to exist'));
|
|
227
199
|
}
|
|
228
|
-
|
|
229
200
|
if (!user.id) {
|
|
230
201
|
return _promise.default.reject(new Error('No id recorded for specified user'));
|
|
231
202
|
}
|
|
232
|
-
|
|
233
203
|
return user.id;
|
|
234
204
|
}).catch(function () {
|
|
235
205
|
return _this5.fetchUUID(email, options);
|
|
@@ -239,10 +209,8 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
239
209
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
240
210
|
args[_key] = arguments[_key];
|
|
241
211
|
}
|
|
242
|
-
|
|
243
212
|
return (0, _apply.default)(_webexCore.WebexPlugin.prototype.initialize, this, args);
|
|
244
213
|
},
|
|
245
|
-
|
|
246
214
|
/**
|
|
247
215
|
* Caches the uuid for the specified email address
|
|
248
216
|
* @param {Object} user
|
|
@@ -254,29 +222,23 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
254
222
|
if (!user) {
|
|
255
223
|
return _promise.default.reject(new Error('`user` is required'));
|
|
256
224
|
}
|
|
257
|
-
|
|
258
225
|
if (!user.id) {
|
|
259
226
|
return _promise.default.reject(new Error('`user.id` is required'));
|
|
260
227
|
}
|
|
261
|
-
|
|
262
228
|
if (!_common.patterns.uuid.test(user.id)) {
|
|
263
229
|
return _promise.default.reject(new Error('`user.id` must be a uuid'));
|
|
264
230
|
}
|
|
265
|
-
|
|
266
231
|
if (!user.emailAddress) {
|
|
267
232
|
return _promise.default.reject(new Error('`user.emailAddress` is required'));
|
|
268
233
|
}
|
|
269
|
-
|
|
270
234
|
if (!_common.patterns.email.test(user.emailAddress)) {
|
|
271
235
|
return _promise.default.reject(new Error('`user.emailAddress` must be an email address'));
|
|
272
236
|
}
|
|
273
|
-
|
|
274
237
|
return this.store.add(user);
|
|
275
238
|
},
|
|
276
239
|
register: function register() {
|
|
277
240
|
return this.verify.apply(this, arguments);
|
|
278
241
|
},
|
|
279
|
-
|
|
280
242
|
/**
|
|
281
243
|
* Updates a user with webex.
|
|
282
244
|
* @param {Object} body
|
|
@@ -285,7 +247,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
285
247
|
*/
|
|
286
248
|
_setUser: function _setUser(body) {
|
|
287
249
|
var _this6 = this;
|
|
288
|
-
|
|
289
250
|
return this.webex.credentials.getUserToken().then(function (token) {
|
|
290
251
|
return _this6.request({
|
|
291
252
|
uri: "".concat(_this6.webex.config.credentials.setPasswordUrl, "/").concat(_this6.webex.internal.device.userId),
|
|
@@ -297,7 +258,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
297
258
|
});
|
|
298
259
|
});
|
|
299
260
|
},
|
|
300
|
-
|
|
301
261
|
/**
|
|
302
262
|
* Updates a user's password with webex.
|
|
303
263
|
* @instance
|
|
@@ -309,13 +269,10 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
309
269
|
*/
|
|
310
270
|
setPassword: function setPassword(options) {
|
|
311
271
|
var _this7 = this;
|
|
312
|
-
|
|
313
272
|
options = options || {};
|
|
314
|
-
|
|
315
273
|
if (!options.password) {
|
|
316
274
|
return _promise.default.reject(new Error('`options.password` is required'));
|
|
317
275
|
}
|
|
318
|
-
|
|
319
276
|
return this._setUser({
|
|
320
277
|
schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],
|
|
321
278
|
password: options.password
|
|
@@ -324,7 +281,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
324
281
|
return res.body;
|
|
325
282
|
});
|
|
326
283
|
},
|
|
327
|
-
|
|
328
284
|
/**
|
|
329
285
|
* Updates a user's name with webex.
|
|
330
286
|
* @instance
|
|
@@ -336,14 +292,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
336
292
|
*/
|
|
337
293
|
updateName: function updateName() {
|
|
338
294
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
295
|
+
givenName = _ref.givenName,
|
|
296
|
+
familyName = _ref.familyName,
|
|
297
|
+
displayName = _ref.displayName;
|
|
343
298
|
if (!(givenName || familyName || displayName)) {
|
|
344
299
|
return _promise.default.reject(new Error('One of `givenName` and `familyName` or `displayName` is required'));
|
|
345
300
|
}
|
|
346
|
-
|
|
347
301
|
return this._setUser({
|
|
348
302
|
schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],
|
|
349
303
|
name: {
|
|
@@ -355,7 +309,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
355
309
|
return res.body;
|
|
356
310
|
});
|
|
357
311
|
},
|
|
358
|
-
|
|
359
312
|
/**
|
|
360
313
|
* Updates the current user's display name
|
|
361
314
|
* @param {Object} options
|
|
@@ -364,11 +317,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
364
317
|
*/
|
|
365
318
|
update: function update(options) {
|
|
366
319
|
options = options || {};
|
|
367
|
-
|
|
368
320
|
if (!options.displayName) {
|
|
369
321
|
return _promise.default.reject(new Error('`options.displayName` is required'));
|
|
370
322
|
}
|
|
371
|
-
|
|
372
323
|
return this.request({
|
|
373
324
|
method: 'PATCH',
|
|
374
325
|
service: 'conversation',
|
|
@@ -378,7 +329,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
378
329
|
return res.body;
|
|
379
330
|
});
|
|
380
331
|
},
|
|
381
|
-
|
|
382
332
|
/**
|
|
383
333
|
* Validated One Time Password.
|
|
384
334
|
* @instance
|
|
@@ -390,13 +340,10 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
390
340
|
*/
|
|
391
341
|
validateOTP: function validateOTP() {
|
|
392
342
|
var _this8 = this;
|
|
393
|
-
|
|
394
343
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
395
|
-
|
|
396
344
|
if (!(options.email || options.id) || !options.oneTimePassword) {
|
|
397
345
|
return _promise.default.reject(new Error('One of `options.email` or `options.id` and `options.oneTimePassword` are required'));
|
|
398
346
|
}
|
|
399
|
-
|
|
400
347
|
options.scope = this.webex.config.credentials.scope;
|
|
401
348
|
return this.request({
|
|
402
349
|
uri: this.webex.config.credentials.validateOtpUrl,
|
|
@@ -410,11 +357,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
410
357
|
_this8.webex.credentials.set({
|
|
411
358
|
supertoken: res.body.tokenData
|
|
412
359
|
});
|
|
413
|
-
|
|
414
360
|
return res.body;
|
|
415
361
|
});
|
|
416
362
|
},
|
|
417
|
-
|
|
418
363
|
/**
|
|
419
364
|
* Determines if the specified user needs to signup or can signin.
|
|
420
365
|
* Triggers activation email if client credentials are used
|
|
@@ -426,15 +371,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
426
371
|
*/
|
|
427
372
|
verify: function verify(options) {
|
|
428
373
|
var _this9 = this;
|
|
429
|
-
|
|
430
|
-
options = (0, _assign.default)({}, this.config.verifyDefaults, options);
|
|
374
|
+
options = _objectSpread(_objectSpread({}, this.config.verifyDefaults), options);
|
|
431
375
|
var _options = options,
|
|
432
|
-
|
|
433
|
-
|
|
376
|
+
email = _options.email;
|
|
434
377
|
if (!email) {
|
|
435
378
|
return _promise.default.reject(new Error('`options.email` is required'));
|
|
436
379
|
}
|
|
437
|
-
|
|
438
380
|
return this.webex.internal.services.collectPreauthCatalog({
|
|
439
381
|
email: email
|
|
440
382
|
}).then(function () {
|
|
@@ -457,11 +399,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
457
399
|
if (res.body.hasPassword || res.body.sso) {
|
|
458
400
|
_this9.hasPassword = true;
|
|
459
401
|
}
|
|
460
|
-
|
|
461
402
|
return res.body;
|
|
462
403
|
});
|
|
463
404
|
},
|
|
464
|
-
|
|
465
405
|
/**
|
|
466
406
|
* If the passed-in lookupCI is true, retrieve the user's
|
|
467
407
|
* CI from Atlas and return the URL's via a Promise.
|
|
@@ -485,13 +425,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
485
425
|
return _promise.default.resolve(res.userEntities);
|
|
486
426
|
});
|
|
487
427
|
}
|
|
488
|
-
|
|
489
428
|
return _promise.default.resolve({
|
|
490
429
|
idBrokerUrl: this.webex.config.credentials.idbroker.url,
|
|
491
430
|
identityUrl: this.webex.config.credentials.identity.url
|
|
492
431
|
});
|
|
493
432
|
},
|
|
494
|
-
|
|
495
433
|
/**
|
|
496
434
|
* Extracts the uuid from a user identifying object
|
|
497
435
|
* @param {string|Object} user
|
|
@@ -501,7 +439,6 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
501
439
|
_extractUUID: function _extractUUID(user) {
|
|
502
440
|
return user.entryUUID || user.id || user;
|
|
503
441
|
},
|
|
504
|
-
|
|
505
442
|
/**
|
|
506
443
|
* Extracts the email address from a user identifying object
|
|
507
444
|
* @param {string|Object} user
|
|
@@ -511,9 +448,8 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
511
448
|
_extractEmailAddress: function _extractEmailAddress(user) {
|
|
512
449
|
return user.email || user.emailAddress || user.entryEmail || user;
|
|
513
450
|
},
|
|
514
|
-
version: "3.0.0-
|
|
451
|
+
version: "3.0.0-bnr.2"
|
|
515
452
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "activate", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "activate"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "getUUID", [_dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "getUUID"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "initialize", [_dec3], (0, _getOwnPropertyDescriptor.default)(_obj, "initialize"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "register", [_dec4], (0, _getOwnPropertyDescriptor.default)(_obj, "register"), _obj)), _obj)));
|
|
516
|
-
|
|
517
453
|
var _default2 = User;
|
|
518
454
|
exports.default = _default2;
|
|
519
455
|
//# sourceMappingURL=user.js.map
|
package/dist/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","default","type","session","store","UserUUIDStore","activate","verificationToken","confirmationCode","id","reject","Error","scope","webex","config","credentials","activateOptions","request","uri","activationUrl","method","body","auth","user","client_id","pass","client_secret","sendImmediately","then","res","set","supertoken","tokenData","asUUID","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","service","resource","tap","getByEmail","userExists","catch","initialize","args","prototype","add","register","verify","_setUser","getUserToken","token","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","password","schemas","updateName","givenName","familyName","displayName","name","update","validateOTP","oneTimePassword","validateOtpUrl","verifyDefaults","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail"],"sources":["user.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isArray} from 'lodash';\nimport {deprecated, oneFlight, patterns, tap} from '@webex/common';\nimport {persist, WebexPlugin, waitForValue} from '@webex/webex-core';\n\nimport UserUUIDBatcher from './user-uuid-batcher';\nimport UserUUIDStore from './user-uuid-store';\n\n/**\n * @class\n */\nconst User = WebexPlugin.extend({\n namespace: 'User',\n\n children: {\n batcher: UserUUIDBatcher\n },\n\n props: {\n /**\n * Indicates if the current user is known to have a password.\n * @instance\n * @memberof User\n * @type {boolean}\n */\n hasPassword: {\n default: false,\n type: 'boolean'\n }\n },\n\n session: {\n store: {\n default() {\n return new UserUUIDStore();\n },\n type: 'any'\n }\n },\n\n @waitForValue('@')\n /**\n * Activates a Webex user account and exchanges for user token.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {Object} options.confirmationCode (required -- optional if verification token is provided)\n * @param {Object} options.id (required -- optional if verification token is provided)\n * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)\n * @param {Object} options.email (required with verificationToken for Federation/global user)\n * @returns {Promise} Resolves with a userSession\n */\n activate(options = {}) {\n if (!(options.verificationToken || (options.confirmationCode && options.id))) {\n return Promise.reject(new Error('either options.verificationToken is required or both options.confirmationCode and options.id are required'));\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n // if we have options.email and options.verificationToken\n // and Federation flag is enabled, flag that we need to\n // lookup user's CI.\n const activateOptions = Object.assign({}, options);\n\n delete activateOptions.email;\n\n return this.request({\n uri: this.webex.config.credentials.activationUrl,\n method: 'POST',\n body: activateOptions,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n sendImmediately: true\n }\n })\n .then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Converts a user-identifying object to a uuid, perhaps by doing a network\n * lookup\n * @param {string|Object} user\n * @param {Object} options\n * @param {boolean} options.create if true, ensures the return UUID refers to\n * an existing user (rather than creating one deterministically based on email\n * address), even if that user must be created\n * @returns {Promise<string>}\n */\n asUUID(user, options) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (isArray(user)) {\n return Promise.all(user.map((u) => this.asUUID(u, options)));\n }\n\n const id = this._extractUUID(user);\n\n if (!(options && options.force) && patterns.uuid.test(id)) {\n return Promise.resolve(id);\n }\n\n const email = this._extractEmailAddress(user);\n\n if (!patterns.email.test(email)) {\n return Promise.reject(new Error('Provided user object does not appear to identify a user'));\n }\n\n return this.getUUID(email, options);\n },\n\n /**\n * Requests a uuid from the api\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n fetchUUID(email, options) {\n return this.batcher.request({\n email,\n create: options && options.create\n })\n .then((user) => this.recordUUID(Object.assign({emailAddress: email}, user))\n .then(() => user.id));\n },\n /**\n * Generates One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @returns {Promise}\n */\n generateOTP(options = {}) {\n if (!(options.email || options.id)) {\n return Promise.reject(new Error('One of `options.email` or `options.id` is required'));\n }\n\n return this.request({\n uri: this.webex.config.credentials.generateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret\n }\n })\n .then((res) => res.body);\n },\n\n /**\n * Fetches details about the current user\n * @returns {Promise<Object>}\n */\n get() {\n return this.request({\n service: 'conversation',\n resource: 'users'\n })\n .then((res) => res.body)\n .then(tap((user) => this.recordUUID({\n id: user.id,\n // CI endpoints don't use the same user format as actors, so, email may\n // be in one of a few fields\n emailAddress: user.email || user.emailAddress\n })));\n },\n\n /**\n * Converts an email address to a uuid, perhaps by doing a network lookup\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n @oneFlight({keyFactory: (email, options) => email + String(options && options.create)})\n getUUID(email, options) {\n return this.store.getByEmail(email)\n .then((user) => {\n if (options && options.create && !user.userExists) {\n return Promise.reject(new Error('User for specified email cannot be confirmed to exist'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('No id recorded for specified user'));\n }\n\n return user.id;\n })\n .catch(() => this.fetchUUID(email, options));\n },\n\n @persist('@')\n initialize(...args) {\n return Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n },\n\n /**\n * Caches the uuid for the specified email address\n * @param {Object} user\n * @param {string} user.id\n * @param {string} user.emailAddress\n * @returns {Promise}\n */\n recordUUID(user) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('`user.id` is required'));\n }\n\n if (!patterns.uuid.test(user.id)) {\n return Promise.reject(new Error('`user.id` must be a uuid'));\n }\n\n if (!user.emailAddress) {\n return Promise.reject(new Error('`user.emailAddress` is required'));\n }\n\n if (!patterns.email.test(user.emailAddress)) {\n return Promise.reject(new Error('`user.emailAddress` must be an email address'));\n }\n\n return this.store.add(user);\n },\n\n @deprecated('Use User#verify()')\n register(...args) {\n return this.verify(...args);\n },\n\n /**\n * Updates a user with webex.\n * @param {Object} body\n * @private\n * @returns {Promise} Resolves with a response from PATCH request\n */\n _setUser(body) {\n return this.webex.credentials.getUserToken()\n .then((token) => this.request({\n uri: `${this.webex.config.credentials.setPasswordUrl}/${this.webex.internal.device.userId}`,\n method: 'PATCH',\n headers: {\n authorization: token.toString()\n },\n body\n }));\n },\n\n /**\n * Updates a user's password with webex.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {string} options.password (required)\n * @param {string} options.email (required when federation enabled)\n * @returns {Promise} Resolves with complete user object containing new password\n */\n setPassword(options) {\n options = options || {};\n if (!options.password) {\n return Promise.reject(new Error('`options.password` is required'));\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n password: options.password\n })\n .then((res) => {\n this.hasPassword = true;\n\n return res.body;\n });\n },\n\n /**\n * Updates a user's name with webex.\n * @instance\n * @memberof User\n * @param {string} givenName\n * @param {string} familyName\n * @param {string} displayName\n * @returns {Promise<Object>}\n */\n updateName({givenName, familyName, displayName} = {}) {\n if (!(givenName || familyName || displayName)) {\n return Promise.reject(new Error('One of `givenName` and `familyName` or `displayName` is required'));\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n name: {givenName, familyName},\n displayName\n })\n .then((res) => res.body);\n },\n\n /**\n * Updates the current user's display name\n * @param {Object} options\n * @param {string} options.displayName\n * @returns {Promise<Object>}\n */\n update(options) {\n options = options || {};\n if (!options.displayName) {\n return Promise.reject(new Error('`options.displayName` is required'));\n }\n\n return this.request({\n method: 'PATCH',\n service: 'conversation',\n resource: 'users/user',\n body: options\n })\n .then((res) => res.body);\n },\n\n /**\n * Validated One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @param {string} options.oneTimePassword\n * @returns {Promise}\n */\n validateOTP(options = {}) {\n if (!(options.email || options.id) || !options.oneTimePassword) {\n return Promise.reject(new Error('One of `options.email` or `options.id` and `options.oneTimePassword` are required'));\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n return this.request({\n uri: this.webex.config.credentials.validateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret\n }\n })\n .then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Determines if the specified user needs to signup or can signin.\n * Triggers activation email if client credentials are used\n * @param {Object} options\n * @param {string} options.email (required)\n * @param {string} options.reqId required if need to check email status\n * @param {string} options.preloginId\n * @returns {Promise<Object>}\n */\n verify(options) {\n options = Object.assign({}, this.config.verifyDefaults, options);\n const {email} = options;\n\n if (!email) {\n return Promise.reject(new Error('`options.email` is required'));\n }\n\n return this.webex.internal.services.collectPreauthCatalog({email})\n .then(() => this.webex.credentials.getUserToken())\n .catch(() => this.webex.credentials.getClientToken())\n .then((token) => this.request({\n service: 'atlas',\n resource: 'users/activations',\n method: 'POST',\n headers: {\n authorization: token.toString(),\n 'x-prelogin-userid': options.preloginId\n },\n body: options,\n shouldRefreshAccessToken: false\n }))\n .then((res) => {\n if (res.body.hasPassword || res.body.sso) {\n this.hasPassword = true;\n }\n\n return res.body;\n });\n },\n\n\n /**\n * If the passed-in lookupCI is true, retrieve the user's\n * CI from Atlas and return the URL's via a Promise.\n * Otherwise, return current CI in config via a Promise.\n * Useful in a Promise chain to retrieve the CI based on\n * conditions like Federation enabled, and suppresses sending\n * an additional email to the user, since this is just a\n * look-up.\n * @param {string} email (required)\n * @param {boolean} lookupCI (required)\n * @returns {Promise<Object>}\n */\n getUserCI(email, lookupCI) {\n if (lookupCI) {\n // call verify first to get the user's CI, but suppress sending another email\n const verifyOptions = {\n email,\n suppressEmail: true\n };\n\n return this.verify(verifyOptions).then((res) => Promise.resolve(res.userEntities));\n }\n\n return Promise.resolve(\n {\n idBrokerUrl: this.webex.config.credentials.idbroker.url,\n identityUrl: this.webex.config.credentials.identity.url\n }\n );\n },\n\n /**\n * Extracts the uuid from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractUUID(user) {\n return user.entryUUID || user.id || user;\n },\n\n /**\n * Extracts the email address from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractEmailAddress(user) {\n return user.email || user.emailAddress || user.entryEmail || user;\n }\n\n});\n\nexport default User;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","default","type","session","store","UserUUIDStore","activate","verificationToken","confirmationCode","id","reject","Error","scope","webex","config","credentials","activateOptions","request","uri","activationUrl","method","body","auth","user","client_id","pass","client_secret","sendImmediately","then","res","set","supertoken","tokenData","asUUID","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","service","resource","tap","getByEmail","userExists","catch","initialize","args","prototype","add","register","verify","_setUser","getUserToken","token","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","password","schemas","updateName","givenName","familyName","displayName","name","update","validateOTP","oneTimePassword","validateOtpUrl","verifyDefaults","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail"],"sources":["user.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {isArray} from 'lodash';\nimport {deprecated, oneFlight, patterns, tap} from '@webex/common';\nimport {persist, WebexPlugin, waitForValue} from '@webex/webex-core';\n\nimport UserUUIDBatcher from './user-uuid-batcher';\nimport UserUUIDStore from './user-uuid-store';\n\n/**\n * @class\n */\nconst User = WebexPlugin.extend({\n namespace: 'User',\n\n children: {\n batcher: UserUUIDBatcher,\n },\n\n props: {\n /**\n * Indicates if the current user is known to have a password.\n * @instance\n * @memberof User\n * @type {boolean}\n */\n hasPassword: {\n default: false,\n type: 'boolean',\n },\n },\n\n session: {\n store: {\n default() {\n return new UserUUIDStore();\n },\n type: 'any',\n },\n },\n\n @waitForValue('@')\n /**\n * Activates a Webex user account and exchanges for user token.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {Object} options.confirmationCode (required -- optional if verification token is provided)\n * @param {Object} options.id (required -- optional if verification token is provided)\n * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)\n * @param {Object} options.email (required with verificationToken for Federation/global user)\n * @returns {Promise} Resolves with a userSession\n */\n activate(options = {}) {\n if (!(options.verificationToken || (options.confirmationCode && options.id))) {\n return Promise.reject(\n new Error(\n 'either options.verificationToken is required or both options.confirmationCode and options.id are required'\n )\n );\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n // if we have options.email and options.verificationToken\n // and Federation flag is enabled, flag that we need to\n // lookup user's CI.\n const activateOptions = {...options};\n\n delete activateOptions.email;\n\n return this.request({\n uri: this.webex.config.credentials.activationUrl,\n method: 'POST',\n body: activateOptions,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n sendImmediately: true,\n },\n }).then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Converts a user-identifying object to a uuid, perhaps by doing a network\n * lookup\n * @param {string|Object} user\n * @param {Object} options\n * @param {boolean} options.create if true, ensures the return UUID refers to\n * an existing user (rather than creating one deterministically based on email\n * address), even if that user must be created\n * @returns {Promise<string>}\n */\n asUUID(user, options) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (isArray(user)) {\n return Promise.all(user.map((u) => this.asUUID(u, options)));\n }\n\n const id = this._extractUUID(user);\n\n if (!(options && options.force) && patterns.uuid.test(id)) {\n return Promise.resolve(id);\n }\n\n const email = this._extractEmailAddress(user);\n\n if (!patterns.email.test(email)) {\n return Promise.reject(new Error('Provided user object does not appear to identify a user'));\n }\n\n return this.getUUID(email, options);\n },\n\n /**\n * Requests a uuid from the api\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n fetchUUID(email, options) {\n return this.batcher\n .request({\n email,\n create: options && options.create,\n })\n .then((user) => this.recordUUID({emailAddress: email, ...user}).then(() => user.id));\n },\n /**\n * Generates One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @returns {Promise}\n */\n generateOTP(options = {}) {\n if (!(options.email || options.id)) {\n return Promise.reject(new Error('One of `options.email` or `options.id` is required'));\n }\n\n return this.request({\n uri: this.webex.config.credentials.generateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n },\n }).then((res) => res.body);\n },\n\n /**\n * Fetches details about the current user\n * @returns {Promise<Object>}\n */\n get() {\n return this.request({\n service: 'conversation',\n resource: 'users',\n })\n .then((res) => res.body)\n .then(\n tap((user) =>\n this.recordUUID({\n id: user.id,\n // CI endpoints don't use the same user format as actors, so, email may\n // be in one of a few fields\n emailAddress: user.email || user.emailAddress,\n })\n )\n );\n },\n\n /**\n * Converts an email address to a uuid, perhaps by doing a network lookup\n * @param {string} email\n * @param {Object} options\n * @param {boolean} options.create\n * @returns {Promise<string>}\n */\n @oneFlight({keyFactory: (email, options) => email + String(options && options.create)})\n getUUID(email, options) {\n return this.store\n .getByEmail(email)\n .then((user) => {\n if (options && options.create && !user.userExists) {\n return Promise.reject(new Error('User for specified email cannot be confirmed to exist'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('No id recorded for specified user'));\n }\n\n return user.id;\n })\n .catch(() => this.fetchUUID(email, options));\n },\n\n @persist('@')\n initialize(...args) {\n return Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n },\n\n /**\n * Caches the uuid for the specified email address\n * @param {Object} user\n * @param {string} user.id\n * @param {string} user.emailAddress\n * @returns {Promise}\n */\n recordUUID(user) {\n if (!user) {\n return Promise.reject(new Error('`user` is required'));\n }\n\n if (!user.id) {\n return Promise.reject(new Error('`user.id` is required'));\n }\n\n if (!patterns.uuid.test(user.id)) {\n return Promise.reject(new Error('`user.id` must be a uuid'));\n }\n\n if (!user.emailAddress) {\n return Promise.reject(new Error('`user.emailAddress` is required'));\n }\n\n if (!patterns.email.test(user.emailAddress)) {\n return Promise.reject(new Error('`user.emailAddress` must be an email address'));\n }\n\n return this.store.add(user);\n },\n\n @deprecated('Use User#verify()')\n register(...args) {\n return this.verify(...args);\n },\n\n /**\n * Updates a user with webex.\n * @param {Object} body\n * @private\n * @returns {Promise} Resolves with a response from PATCH request\n */\n _setUser(body) {\n return this.webex.credentials.getUserToken().then((token) =>\n this.request({\n uri: `${this.webex.config.credentials.setPasswordUrl}/${this.webex.internal.device.userId}`,\n method: 'PATCH',\n headers: {\n authorization: token.toString(),\n },\n body,\n })\n );\n },\n\n /**\n * Updates a user's password with webex.\n * @instance\n * @memberof User\n * @param {Object} options\n * @param {string} options.password (required)\n * @param {string} options.email (required when federation enabled)\n * @returns {Promise} Resolves with complete user object containing new password\n */\n setPassword(options) {\n options = options || {};\n if (!options.password) {\n return Promise.reject(new Error('`options.password` is required'));\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n password: options.password,\n }).then((res) => {\n this.hasPassword = true;\n\n return res.body;\n });\n },\n\n /**\n * Updates a user's name with webex.\n * @instance\n * @memberof User\n * @param {string} givenName\n * @param {string} familyName\n * @param {string} displayName\n * @returns {Promise<Object>}\n */\n updateName({givenName, familyName, displayName} = {}) {\n if (!(givenName || familyName || displayName)) {\n return Promise.reject(\n new Error('One of `givenName` and `familyName` or `displayName` is required')\n );\n }\n\n return this._setUser({\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\n name: {givenName, familyName},\n displayName,\n }).then((res) => res.body);\n },\n\n /**\n * Updates the current user's display name\n * @param {Object} options\n * @param {string} options.displayName\n * @returns {Promise<Object>}\n */\n update(options) {\n options = options || {};\n if (!options.displayName) {\n return Promise.reject(new Error('`options.displayName` is required'));\n }\n\n return this.request({\n method: 'PATCH',\n service: 'conversation',\n resource: 'users/user',\n body: options,\n }).then((res) => res.body);\n },\n\n /**\n * Validated One Time Password.\n * @instance\n * @param {Object} options\n * @param {string} options.email\n * @param {string} options.id\n * @param {string} options.oneTimePassword\n * @returns {Promise}\n */\n validateOTP(options = {}) {\n if (!(options.email || options.id) || !options.oneTimePassword) {\n return Promise.reject(\n new Error(\n 'One of `options.email` or `options.id` and `options.oneTimePassword` are required'\n )\n );\n }\n\n options.scope = this.webex.config.credentials.scope;\n\n return this.request({\n uri: this.webex.config.credentials.validateOtpUrl,\n method: 'POST',\n body: options,\n auth: {\n user: this.webex.config.credentials.client_id,\n pass: this.webex.config.credentials.client_secret,\n },\n }).then((res) => {\n this.webex.credentials.set({supertoken: res.body.tokenData});\n\n return res.body;\n });\n },\n\n /**\n * Determines if the specified user needs to signup or can signin.\n * Triggers activation email if client credentials are used\n * @param {Object} options\n * @param {string} options.email (required)\n * @param {string} options.reqId required if need to check email status\n * @param {string} options.preloginId\n * @returns {Promise<Object>}\n */\n verify(options) {\n options = {...this.config.verifyDefaults, ...options};\n const {email} = options;\n\n if (!email) {\n return Promise.reject(new Error('`options.email` is required'));\n }\n\n return this.webex.internal.services\n .collectPreauthCatalog({email})\n .then(() => this.webex.credentials.getUserToken())\n .catch(() => this.webex.credentials.getClientToken())\n .then((token) =>\n this.request({\n service: 'atlas',\n resource: 'users/activations',\n method: 'POST',\n headers: {\n authorization: token.toString(),\n 'x-prelogin-userid': options.preloginId,\n },\n body: options,\n shouldRefreshAccessToken: false,\n })\n )\n .then((res) => {\n if (res.body.hasPassword || res.body.sso) {\n this.hasPassword = true;\n }\n\n return res.body;\n });\n },\n\n /**\n * If the passed-in lookupCI is true, retrieve the user's\n * CI from Atlas and return the URL's via a Promise.\n * Otherwise, return current CI in config via a Promise.\n * Useful in a Promise chain to retrieve the CI based on\n * conditions like Federation enabled, and suppresses sending\n * an additional email to the user, since this is just a\n * look-up.\n * @param {string} email (required)\n * @param {boolean} lookupCI (required)\n * @returns {Promise<Object>}\n */\n getUserCI(email, lookupCI) {\n if (lookupCI) {\n // call verify first to get the user's CI, but suppress sending another email\n const verifyOptions = {\n email,\n suppressEmail: true,\n };\n\n return this.verify(verifyOptions).then((res) => Promise.resolve(res.userEntities));\n }\n\n return Promise.resolve({\n idBrokerUrl: this.webex.config.credentials.idbroker.url,\n identityUrl: this.webex.config.credentials.identity.url,\n });\n },\n\n /**\n * Extracts the uuid from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractUUID(user) {\n return user.entryUUID || user.id || user;\n },\n\n /**\n * Extracts the email address from a user identifying object\n * @param {string|Object} user\n * @private\n * @returns {string}\n */\n _extractEmailAddress(user) {\n return user.email || user.emailAddress || user.entryEmail || user;\n },\n});\n\nexport default User;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-plugin-user",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-bnr.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"sinon": "^9.2.4"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@webex/common": "3.0.0-
|
|
27
|
-
"@webex/internal-plugin-device": "3.0.0-
|
|
28
|
-
"@webex/internal-plugin-user": "3.0.0-
|
|
29
|
-
"@webex/test-helper-chai": "3.0.0-
|
|
30
|
-
"@webex/test-helper-mock-webex": "3.0.0-
|
|
31
|
-
"@webex/test-helper-test-users": "3.0.0-
|
|
32
|
-
"@webex/webex-core": "3.0.0-
|
|
26
|
+
"@webex/common": "3.0.0-bnr.2",
|
|
27
|
+
"@webex/internal-plugin-device": "3.0.0-bnr.2",
|
|
28
|
+
"@webex/internal-plugin-user": "3.0.0-bnr.2",
|
|
29
|
+
"@webex/test-helper-chai": "3.0.0-bnr.2",
|
|
30
|
+
"@webex/test-helper-mock-webex": "3.0.0-bnr.2",
|
|
31
|
+
"@webex/test-helper-test-users": "3.0.0-bnr.2",
|
|
32
|
+
"@webex/webex-core": "3.0.0-bnr.2",
|
|
33
33
|
"lodash": "^4.17.21",
|
|
34
34
|
"uuid": "^3.3.2"
|
|
35
35
|
}
|
package/src/config.js
CHANGED
|
@@ -6,8 +6,8 @@ export default {
|
|
|
6
6
|
device: {
|
|
7
7
|
preDiscoveryServices: {
|
|
8
8
|
atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
|
|
9
|
-
atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1'
|
|
10
|
-
}
|
|
9
|
+
atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
|
|
10
|
+
},
|
|
11
11
|
},
|
|
12
12
|
|
|
13
13
|
user: {
|
|
@@ -15,7 +15,7 @@ export default {
|
|
|
15
15
|
batcherMaxCalls: 100,
|
|
16
16
|
batcherMaxWait: 1500,
|
|
17
17
|
verifyDefaults: {
|
|
18
|
-
reqId: 'WEBCLIENT'
|
|
19
|
-
}
|
|
20
|
-
}
|
|
18
|
+
reqId: 'WEBCLIENT',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
21
|
};
|
package/src/index.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
|
+
import '@webex/internal-plugin-device';
|
|
4
5
|
|
|
5
6
|
import {registerInternalPlugin} from '@webex/webex-core';
|
|
6
7
|
|
|
7
8
|
import User from './user';
|
|
8
9
|
import config from './config';
|
|
9
10
|
|
|
10
|
-
import '@webex/internal-plugin-device';
|
|
11
|
-
|
|
12
11
|
registerInternalPlugin('user', User, {
|
|
13
|
-
config
|
|
12
|
+
config,
|
|
14
13
|
});
|
|
15
14
|
|
|
16
15
|
export {default} from './user';
|