@webex/internal-plugin-user 2.59.2 → 2.59.3-next.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/.eslintrc.js +6 -6
- package/README.md +42 -42
- package/babel.config.js +3 -3
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/user-uuid-batcher.js +36 -36
- package/dist/user-uuid-batcher.js.map +1 -1
- package/dist/user-uuid-store.js +22 -22
- package/dist/user-uuid-store.js.map +1 -1
- package/dist/user.js +112 -112
- package/dist/user.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +18 -17
- package/process +1 -1
- package/src/config.js +21 -21
- package/src/index.js +15 -15
- package/src/user-uuid-batcher.js +128 -128
- package/src/user-uuid-store.js +105 -105
- package/src/user.js +466 -466
- package/test/integration/spec/user.js +380 -380
- package/test/unit/spec/user-uuid-batcher.js +98 -98
- package/test/unit/spec/user.js +155 -155
package/dist/user.js
CHANGED
|
@@ -24,8 +24,8 @@ var _userUuidStore = _interopRequireDefault(require("./user-uuid-store"));
|
|
|
24
24
|
var _dec, _dec2, _dec3, _dec4, _obj;
|
|
25
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
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; }
|
|
27
|
-
/**
|
|
28
|
-
* @class
|
|
27
|
+
/**
|
|
28
|
+
* @class
|
|
29
29
|
*/
|
|
30
30
|
var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@'), _dec2 = (0, _common.oneFlight)({
|
|
31
31
|
keyFactory: function keyFactory(email, options) {
|
|
@@ -37,11 +37,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
37
37
|
batcher: _userUuidBatcher.default
|
|
38
38
|
},
|
|
39
39
|
props: {
|
|
40
|
-
/**
|
|
41
|
-
* Indicates if the current user is known to have a password.
|
|
42
|
-
* @instance
|
|
43
|
-
* @memberof User
|
|
44
|
-
* @type {boolean}
|
|
40
|
+
/**
|
|
41
|
+
* Indicates if the current user is known to have a password.
|
|
42
|
+
* @instance
|
|
43
|
+
* @memberof User
|
|
44
|
+
* @type {boolean}
|
|
45
45
|
*/
|
|
46
46
|
hasPassword: {
|
|
47
47
|
default: false,
|
|
@@ -56,16 +56,16 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
56
56
|
type: 'any'
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
|
-
/**
|
|
60
|
-
* Activates a Webex user account and exchanges for user token.
|
|
61
|
-
* @instance
|
|
62
|
-
* @memberof User
|
|
63
|
-
* @param {Object} options
|
|
64
|
-
* @param {Object} options.confirmationCode (required -- optional if verification token is provided)
|
|
65
|
-
* @param {Object} options.id (required -- optional if verification token is provided)
|
|
66
|
-
* @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)
|
|
67
|
-
* @param {Object} options.email (required with verificationToken for Federation/global user)
|
|
68
|
-
* @returns {Promise} Resolves with a userSession
|
|
59
|
+
/**
|
|
60
|
+
* Activates a Webex user account and exchanges for user token.
|
|
61
|
+
* @instance
|
|
62
|
+
* @memberof User
|
|
63
|
+
* @param {Object} options
|
|
64
|
+
* @param {Object} options.confirmationCode (required -- optional if verification token is provided)
|
|
65
|
+
* @param {Object} options.id (required -- optional if verification token is provided)
|
|
66
|
+
* @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)
|
|
67
|
+
* @param {Object} options.email (required with verificationToken for Federation/global user)
|
|
68
|
+
* @returns {Promise} Resolves with a userSession
|
|
69
69
|
*/
|
|
70
70
|
activate: function activate() {
|
|
71
71
|
var _this = this;
|
|
@@ -96,15 +96,15 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
96
96
|
return res.body;
|
|
97
97
|
});
|
|
98
98
|
},
|
|
99
|
-
/**
|
|
100
|
-
* Converts a user-identifying object to a uuid, perhaps by doing a network
|
|
101
|
-
* lookup
|
|
102
|
-
* @param {string|Object} user
|
|
103
|
-
* @param {Object} options
|
|
104
|
-
* @param {boolean} options.create if true, ensures the return UUID refers to
|
|
105
|
-
* an existing user (rather than creating one deterministically based on email
|
|
106
|
-
* address), even if that user must be created
|
|
107
|
-
* @returns {Promise<string>}
|
|
99
|
+
/**
|
|
100
|
+
* Converts a user-identifying object to a uuid, perhaps by doing a network
|
|
101
|
+
* lookup
|
|
102
|
+
* @param {string|Object} user
|
|
103
|
+
* @param {Object} options
|
|
104
|
+
* @param {boolean} options.create if true, ensures the return UUID refers to
|
|
105
|
+
* an existing user (rather than creating one deterministically based on email
|
|
106
|
+
* address), even if that user must be created
|
|
107
|
+
* @returns {Promise<string>}
|
|
108
108
|
*/
|
|
109
109
|
asUUID: function asUUID(user, options) {
|
|
110
110
|
var _this2 = this;
|
|
@@ -126,12 +126,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
126
126
|
}
|
|
127
127
|
return this.getUUID(email, options);
|
|
128
128
|
},
|
|
129
|
-
/**
|
|
130
|
-
* Requests a uuid from the api
|
|
131
|
-
* @param {string} email
|
|
132
|
-
* @param {Object} options
|
|
133
|
-
* @param {boolean} options.create
|
|
134
|
-
* @returns {Promise<string>}
|
|
129
|
+
/**
|
|
130
|
+
* Requests a uuid from the api
|
|
131
|
+
* @param {string} email
|
|
132
|
+
* @param {Object} options
|
|
133
|
+
* @param {boolean} options.create
|
|
134
|
+
* @returns {Promise<string>}
|
|
135
135
|
*/
|
|
136
136
|
fetchUUID: function fetchUUID(email, options) {
|
|
137
137
|
var _this3 = this;
|
|
@@ -146,13 +146,13 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
146
146
|
});
|
|
147
147
|
});
|
|
148
148
|
},
|
|
149
|
-
/**
|
|
150
|
-
* Generates One Time Password.
|
|
151
|
-
* @instance
|
|
152
|
-
* @param {Object} options
|
|
153
|
-
* @param {string} options.email
|
|
154
|
-
* @param {string} options.id
|
|
155
|
-
* @returns {Promise}
|
|
149
|
+
/**
|
|
150
|
+
* Generates One Time Password.
|
|
151
|
+
* @instance
|
|
152
|
+
* @param {Object} options
|
|
153
|
+
* @param {string} options.email
|
|
154
|
+
* @param {string} options.id
|
|
155
|
+
* @returns {Promise}
|
|
156
156
|
*/
|
|
157
157
|
generateOTP: function generateOTP() {
|
|
158
158
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -171,9 +171,9 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
171
171
|
return res.body;
|
|
172
172
|
});
|
|
173
173
|
},
|
|
174
|
-
/**
|
|
175
|
-
* Fetches details about the current user
|
|
176
|
-
* @returns {Promise<Object>}
|
|
174
|
+
/**
|
|
175
|
+
* Fetches details about the current user
|
|
176
|
+
* @returns {Promise<Object>}
|
|
177
177
|
*/
|
|
178
178
|
get: function get() {
|
|
179
179
|
var _this4 = this;
|
|
@@ -211,12 +211,12 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
211
211
|
}
|
|
212
212
|
return (0, _apply.default)(_webexCore.WebexPlugin.prototype.initialize, this, args);
|
|
213
213
|
},
|
|
214
|
-
/**
|
|
215
|
-
* Caches the uuid for the specified email address
|
|
216
|
-
* @param {Object} user
|
|
217
|
-
* @param {string} user.id
|
|
218
|
-
* @param {string} user.emailAddress
|
|
219
|
-
* @returns {Promise}
|
|
214
|
+
/**
|
|
215
|
+
* Caches the uuid for the specified email address
|
|
216
|
+
* @param {Object} user
|
|
217
|
+
* @param {string} user.id
|
|
218
|
+
* @param {string} user.emailAddress
|
|
219
|
+
* @returns {Promise}
|
|
220
220
|
*/
|
|
221
221
|
recordUUID: function recordUUID(user) {
|
|
222
222
|
if (!user) {
|
|
@@ -239,11 +239,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
239
239
|
register: function register() {
|
|
240
240
|
return this.verify.apply(this, arguments);
|
|
241
241
|
},
|
|
242
|
-
/**
|
|
243
|
-
* Updates a user with webex.
|
|
244
|
-
* @param {Object} body
|
|
245
|
-
* @private
|
|
246
|
-
* @returns {Promise} Resolves with a response from PATCH request
|
|
242
|
+
/**
|
|
243
|
+
* Updates a user with webex.
|
|
244
|
+
* @param {Object} body
|
|
245
|
+
* @private
|
|
246
|
+
* @returns {Promise} Resolves with a response from PATCH request
|
|
247
247
|
*/
|
|
248
248
|
_setUser: function _setUser(body) {
|
|
249
249
|
var _this6 = this;
|
|
@@ -258,14 +258,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
258
258
|
});
|
|
259
259
|
});
|
|
260
260
|
},
|
|
261
|
-
/**
|
|
262
|
-
* Updates a user's password with webex.
|
|
263
|
-
* @instance
|
|
264
|
-
* @memberof User
|
|
265
|
-
* @param {Object} options
|
|
266
|
-
* @param {string} options.password (required)
|
|
267
|
-
* @param {string} options.email (required when federation enabled)
|
|
268
|
-
* @returns {Promise} Resolves with complete user object containing new password
|
|
261
|
+
/**
|
|
262
|
+
* Updates a user's password with webex.
|
|
263
|
+
* @instance
|
|
264
|
+
* @memberof User
|
|
265
|
+
* @param {Object} options
|
|
266
|
+
* @param {string} options.password (required)
|
|
267
|
+
* @param {string} options.email (required when federation enabled)
|
|
268
|
+
* @returns {Promise} Resolves with complete user object containing new password
|
|
269
269
|
*/
|
|
270
270
|
setPassword: function setPassword(options) {
|
|
271
271
|
var _this7 = this;
|
|
@@ -281,14 +281,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
281
281
|
return res.body;
|
|
282
282
|
});
|
|
283
283
|
},
|
|
284
|
-
/**
|
|
285
|
-
* Updates a user's name with webex.
|
|
286
|
-
* @instance
|
|
287
|
-
* @memberof User
|
|
288
|
-
* @param {string} givenName
|
|
289
|
-
* @param {string} familyName
|
|
290
|
-
* @param {string} displayName
|
|
291
|
-
* @returns {Promise<Object>}
|
|
284
|
+
/**
|
|
285
|
+
* Updates a user's name with webex.
|
|
286
|
+
* @instance
|
|
287
|
+
* @memberof User
|
|
288
|
+
* @param {string} givenName
|
|
289
|
+
* @param {string} familyName
|
|
290
|
+
* @param {string} displayName
|
|
291
|
+
* @returns {Promise<Object>}
|
|
292
292
|
*/
|
|
293
293
|
updateName: function updateName() {
|
|
294
294
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -309,11 +309,11 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
309
309
|
return res.body;
|
|
310
310
|
});
|
|
311
311
|
},
|
|
312
|
-
/**
|
|
313
|
-
* Updates the current user's display name
|
|
314
|
-
* @param {Object} options
|
|
315
|
-
* @param {string} options.displayName
|
|
316
|
-
* @returns {Promise<Object>}
|
|
312
|
+
/**
|
|
313
|
+
* Updates the current user's display name
|
|
314
|
+
* @param {Object} options
|
|
315
|
+
* @param {string} options.displayName
|
|
316
|
+
* @returns {Promise<Object>}
|
|
317
317
|
*/
|
|
318
318
|
update: function update(options) {
|
|
319
319
|
options = options || {};
|
|
@@ -329,14 +329,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
329
329
|
return res.body;
|
|
330
330
|
});
|
|
331
331
|
},
|
|
332
|
-
/**
|
|
333
|
-
* Validated One Time Password.
|
|
334
|
-
* @instance
|
|
335
|
-
* @param {Object} options
|
|
336
|
-
* @param {string} options.email
|
|
337
|
-
* @param {string} options.id
|
|
338
|
-
* @param {string} options.oneTimePassword
|
|
339
|
-
* @returns {Promise}
|
|
332
|
+
/**
|
|
333
|
+
* Validated One Time Password.
|
|
334
|
+
* @instance
|
|
335
|
+
* @param {Object} options
|
|
336
|
+
* @param {string} options.email
|
|
337
|
+
* @param {string} options.id
|
|
338
|
+
* @param {string} options.oneTimePassword
|
|
339
|
+
* @returns {Promise}
|
|
340
340
|
*/
|
|
341
341
|
validateOTP: function validateOTP() {
|
|
342
342
|
var _this8 = this;
|
|
@@ -360,14 +360,14 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
360
360
|
return res.body;
|
|
361
361
|
});
|
|
362
362
|
},
|
|
363
|
-
/**
|
|
364
|
-
* Determines if the specified user needs to signup or can signin.
|
|
365
|
-
* Triggers activation email if client credentials are used
|
|
366
|
-
* @param {Object} options
|
|
367
|
-
* @param {string} options.email (required)
|
|
368
|
-
* @param {string} options.reqId required if need to check email status
|
|
369
|
-
* @param {string} options.preloginId
|
|
370
|
-
* @returns {Promise<Object>}
|
|
363
|
+
/**
|
|
364
|
+
* Determines if the specified user needs to signup or can signin.
|
|
365
|
+
* Triggers activation email if client credentials are used
|
|
366
|
+
* @param {Object} options
|
|
367
|
+
* @param {string} options.email (required)
|
|
368
|
+
* @param {string} options.reqId required if need to check email status
|
|
369
|
+
* @param {string} options.preloginId
|
|
370
|
+
* @returns {Promise<Object>}
|
|
371
371
|
*/
|
|
372
372
|
verify: function verify(options) {
|
|
373
373
|
var _this9 = this;
|
|
@@ -402,17 +402,17 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
402
402
|
return res.body;
|
|
403
403
|
});
|
|
404
404
|
},
|
|
405
|
-
/**
|
|
406
|
-
* If the passed-in lookupCI is true, retrieve the user's
|
|
407
|
-
* CI from Atlas and return the URL's via a Promise.
|
|
408
|
-
* Otherwise, return current CI in config via a Promise.
|
|
409
|
-
* Useful in a Promise chain to retrieve the CI based on
|
|
410
|
-
* conditions like Federation enabled, and suppresses sending
|
|
411
|
-
* an additional email to the user, since this is just a
|
|
412
|
-
* look-up.
|
|
413
|
-
* @param {string} email (required)
|
|
414
|
-
* @param {boolean} lookupCI (required)
|
|
415
|
-
* @returns {Promise<Object>}
|
|
405
|
+
/**
|
|
406
|
+
* If the passed-in lookupCI is true, retrieve the user's
|
|
407
|
+
* CI from Atlas and return the URL's via a Promise.
|
|
408
|
+
* Otherwise, return current CI in config via a Promise.
|
|
409
|
+
* Useful in a Promise chain to retrieve the CI based on
|
|
410
|
+
* conditions like Federation enabled, and suppresses sending
|
|
411
|
+
* an additional email to the user, since this is just a
|
|
412
|
+
* look-up.
|
|
413
|
+
* @param {string} email (required)
|
|
414
|
+
* @param {boolean} lookupCI (required)
|
|
415
|
+
* @returns {Promise<Object>}
|
|
416
416
|
*/
|
|
417
417
|
getUserCI: function getUserCI(email, lookupCI) {
|
|
418
418
|
if (lookupCI) {
|
|
@@ -430,25 +430,25 @@ var User = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@
|
|
|
430
430
|
identityUrl: this.webex.config.credentials.identity.url
|
|
431
431
|
});
|
|
432
432
|
},
|
|
433
|
-
/**
|
|
434
|
-
* Extracts the uuid from a user identifying object
|
|
435
|
-
* @param {string|Object} user
|
|
436
|
-
* @private
|
|
437
|
-
* @returns {string}
|
|
433
|
+
/**
|
|
434
|
+
* Extracts the uuid from a user identifying object
|
|
435
|
+
* @param {string|Object} user
|
|
436
|
+
* @private
|
|
437
|
+
* @returns {string}
|
|
438
438
|
*/
|
|
439
439
|
_extractUUID: function _extractUUID(user) {
|
|
440
440
|
return user.entryUUID || user.id || user;
|
|
441
441
|
},
|
|
442
|
-
/**
|
|
443
|
-
* Extracts the email address from a user identifying object
|
|
444
|
-
* @param {string|Object} user
|
|
445
|
-
* @private
|
|
446
|
-
* @returns {string}
|
|
442
|
+
/**
|
|
443
|
+
* Extracts the email address from a user identifying object
|
|
444
|
+
* @param {string|Object} user
|
|
445
|
+
* @private
|
|
446
|
+
* @returns {string}
|
|
447
447
|
*/
|
|
448
448
|
_extractEmailAddress: function _extractEmailAddress(user) {
|
|
449
449
|
return user.email || user.emailAddress || user.entryEmail || user;
|
|
450
450
|
},
|
|
451
|
-
version: "2.59.
|
|
451
|
+
version: "2.59.0"
|
|
452
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)));
|
|
453
453
|
var _default2 = User;
|
|
454
454
|
exports.default = _default2;
|
package/dist/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_webexCore","_userUuidBatcher","_interopRequireDefault","_userUuidStore","_dec","_dec2","_dec3","_dec4","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","type","session","store","_default","UserUUIDStore","activate","_this","undefined","verificationToken","confirmationCode","id","_promise","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","_this2","_isArray2","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","_this3","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","_this4","service","resource","tap","_this5","getByEmail","userExists","catch","initialize","_len","args","Array","_key","_apply","prototype","add","register","verify","_setUser","_this6","getUserToken","token","concat","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","_this7","password","schemas","updateName","_ref","givenName","familyName","displayName","name","update","validateOTP","_this8","oneTimePassword","validateOtpUrl","_this9","verifyDefaults","_options","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default2","exports"],"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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"}
|
|
1
|
+
{"version":3,"names":["_common","require","_webexCore","_userUuidBatcher","_interopRequireDefault","_userUuidStore","_dec","_dec2","_dec3","_dec4","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","User","WebexPlugin","extend","waitForValue","oneFlight","keyFactory","email","options","String","create","persist","deprecated","namespace","children","batcher","UserUUIDBatcher","props","hasPassword","type","session","store","_default","UserUUIDStore","activate","_this","undefined","verificationToken","confirmationCode","id","_promise","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","_this2","_isArray2","all","map","u","_extractUUID","force","patterns","uuid","test","resolve","_extractEmailAddress","getUUID","fetchUUID","_this3","recordUUID","emailAddress","generateOTP","generateOtpUrl","get","_this4","service","resource","tap","_this5","getByEmail","userExists","catch","initialize","_len","args","Array","_key","_apply","prototype","add","register","verify","_setUser","_this6","getUserToken","token","concat","setPasswordUrl","internal","device","userId","headers","authorization","toString","setPassword","_this7","password","schemas","updateName","_ref","givenName","familyName","displayName","name","update","validateOTP","_this8","oneTimePassword","validateOtpUrl","_this9","verifyDefaults","_options","services","collectPreauthCatalog","getClientToken","preloginId","shouldRefreshAccessToken","sso","getUserCI","lookupCI","verifyOptions","suppressEmail","userEntities","idBrokerUrl","idbroker","url","identityUrl","identity","entryUUID","entryEmail","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default2","exports"],"sources":["user.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {isArray} from 'lodash';\r\nimport {deprecated, oneFlight, patterns, tap} from '@webex/common';\r\nimport {persist, WebexPlugin, waitForValue} from '@webex/webex-core';\r\n\r\nimport UserUUIDBatcher from './user-uuid-batcher';\r\nimport UserUUIDStore from './user-uuid-store';\r\n\r\n/**\r\n * @class\r\n */\r\nconst User = WebexPlugin.extend({\r\n namespace: 'User',\r\n\r\n children: {\r\n batcher: UserUUIDBatcher,\r\n },\r\n\r\n props: {\r\n /**\r\n * Indicates if the current user is known to have a password.\r\n * @instance\r\n * @memberof User\r\n * @type {boolean}\r\n */\r\n hasPassword: {\r\n default: false,\r\n type: 'boolean',\r\n },\r\n },\r\n\r\n session: {\r\n store: {\r\n default() {\r\n return new UserUUIDStore();\r\n },\r\n type: 'any',\r\n },\r\n },\r\n\r\n @waitForValue('@')\r\n /**\r\n * Activates a Webex user account and exchanges for user token.\r\n * @instance\r\n * @memberof User\r\n * @param {Object} options\r\n * @param {Object} options.confirmationCode (required -- optional if verification token is provided)\r\n * @param {Object} options.id (required -- optional if verification token is provided)\r\n * @param {Object} options.verificationToken (required -- optional if uuid and verification token provided)\r\n * @param {Object} options.email (required with verificationToken for Federation/global user)\r\n * @returns {Promise} Resolves with a userSession\r\n */\r\n activate(options = {}) {\r\n if (!(options.verificationToken || (options.confirmationCode && options.id))) {\r\n return Promise.reject(\r\n new Error(\r\n 'either options.verificationToken is required or both options.confirmationCode and options.id are required'\r\n )\r\n );\r\n }\r\n\r\n options.scope = this.webex.config.credentials.scope;\r\n\r\n // if we have options.email and options.verificationToken\r\n // and Federation flag is enabled, flag that we need to\r\n // lookup user's CI.\r\n const activateOptions = {...options};\r\n\r\n delete activateOptions.email;\r\n\r\n return this.request({\r\n uri: this.webex.config.credentials.activationUrl,\r\n method: 'POST',\r\n body: activateOptions,\r\n auth: {\r\n user: this.webex.config.credentials.client_id,\r\n pass: this.webex.config.credentials.client_secret,\r\n sendImmediately: true,\r\n },\r\n }).then((res) => {\r\n this.webex.credentials.set({supertoken: res.body.tokenData});\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * Converts a user-identifying object to a uuid, perhaps by doing a network\r\n * lookup\r\n * @param {string|Object} user\r\n * @param {Object} options\r\n * @param {boolean} options.create if true, ensures the return UUID refers to\r\n * an existing user (rather than creating one deterministically based on email\r\n * address), even if that user must be created\r\n * @returns {Promise<string>}\r\n */\r\n asUUID(user, options) {\r\n if (!user) {\r\n return Promise.reject(new Error('`user` is required'));\r\n }\r\n\r\n if (isArray(user)) {\r\n return Promise.all(user.map((u) => this.asUUID(u, options)));\r\n }\r\n\r\n const id = this._extractUUID(user);\r\n\r\n if (!(options && options.force) && patterns.uuid.test(id)) {\r\n return Promise.resolve(id);\r\n }\r\n\r\n const email = this._extractEmailAddress(user);\r\n\r\n if (!patterns.email.test(email)) {\r\n return Promise.reject(new Error('Provided user object does not appear to identify a user'));\r\n }\r\n\r\n return this.getUUID(email, options);\r\n },\r\n\r\n /**\r\n * Requests a uuid from the api\r\n * @param {string} email\r\n * @param {Object} options\r\n * @param {boolean} options.create\r\n * @returns {Promise<string>}\r\n */\r\n fetchUUID(email, options) {\r\n return this.batcher\r\n .request({\r\n email,\r\n create: options && options.create,\r\n })\r\n .then((user) => this.recordUUID({emailAddress: email, ...user}).then(() => user.id));\r\n },\r\n /**\r\n * Generates One Time Password.\r\n * @instance\r\n * @param {Object} options\r\n * @param {string} options.email\r\n * @param {string} options.id\r\n * @returns {Promise}\r\n */\r\n generateOTP(options = {}) {\r\n if (!(options.email || options.id)) {\r\n return Promise.reject(new Error('One of `options.email` or `options.id` is required'));\r\n }\r\n\r\n return this.request({\r\n uri: this.webex.config.credentials.generateOtpUrl,\r\n method: 'POST',\r\n body: options,\r\n auth: {\r\n user: this.webex.config.credentials.client_id,\r\n pass: this.webex.config.credentials.client_secret,\r\n },\r\n }).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Fetches details about the current user\r\n * @returns {Promise<Object>}\r\n */\r\n get() {\r\n return this.request({\r\n service: 'conversation',\r\n resource: 'users',\r\n })\r\n .then((res) => res.body)\r\n .then(\r\n tap((user) =>\r\n this.recordUUID({\r\n id: user.id,\r\n // CI endpoints don't use the same user format as actors, so, email may\r\n // be in one of a few fields\r\n emailAddress: user.email || user.emailAddress,\r\n })\r\n )\r\n );\r\n },\r\n\r\n /**\r\n * Converts an email address to a uuid, perhaps by doing a network lookup\r\n * @param {string} email\r\n * @param {Object} options\r\n * @param {boolean} options.create\r\n * @returns {Promise<string>}\r\n */\r\n @oneFlight({keyFactory: (email, options) => email + String(options && options.create)})\r\n getUUID(email, options) {\r\n return this.store\r\n .getByEmail(email)\r\n .then((user) => {\r\n if (options && options.create && !user.userExists) {\r\n return Promise.reject(new Error('User for specified email cannot be confirmed to exist'));\r\n }\r\n\r\n if (!user.id) {\r\n return Promise.reject(new Error('No id recorded for specified user'));\r\n }\r\n\r\n return user.id;\r\n })\r\n .catch(() => this.fetchUUID(email, options));\r\n },\r\n\r\n @persist('@')\r\n initialize(...args) {\r\n return Reflect.apply(WebexPlugin.prototype.initialize, this, args);\r\n },\r\n\r\n /**\r\n * Caches the uuid for the specified email address\r\n * @param {Object} user\r\n * @param {string} user.id\r\n * @param {string} user.emailAddress\r\n * @returns {Promise}\r\n */\r\n recordUUID(user) {\r\n if (!user) {\r\n return Promise.reject(new Error('`user` is required'));\r\n }\r\n\r\n if (!user.id) {\r\n return Promise.reject(new Error('`user.id` is required'));\r\n }\r\n\r\n if (!patterns.uuid.test(user.id)) {\r\n return Promise.reject(new Error('`user.id` must be a uuid'));\r\n }\r\n\r\n if (!user.emailAddress) {\r\n return Promise.reject(new Error('`user.emailAddress` is required'));\r\n }\r\n\r\n if (!patterns.email.test(user.emailAddress)) {\r\n return Promise.reject(new Error('`user.emailAddress` must be an email address'));\r\n }\r\n\r\n return this.store.add(user);\r\n },\r\n\r\n @deprecated('Use User#verify()')\r\n register(...args) {\r\n return this.verify(...args);\r\n },\r\n\r\n /**\r\n * Updates a user with webex.\r\n * @param {Object} body\r\n * @private\r\n * @returns {Promise} Resolves with a response from PATCH request\r\n */\r\n _setUser(body) {\r\n return this.webex.credentials.getUserToken().then((token) =>\r\n this.request({\r\n uri: `${this.webex.config.credentials.setPasswordUrl}/${this.webex.internal.device.userId}`,\r\n method: 'PATCH',\r\n headers: {\r\n authorization: token.toString(),\r\n },\r\n body,\r\n })\r\n );\r\n },\r\n\r\n /**\r\n * Updates a user's password with webex.\r\n * @instance\r\n * @memberof User\r\n * @param {Object} options\r\n * @param {string} options.password (required)\r\n * @param {string} options.email (required when federation enabled)\r\n * @returns {Promise} Resolves with complete user object containing new password\r\n */\r\n setPassword(options) {\r\n options = options || {};\r\n if (!options.password) {\r\n return Promise.reject(new Error('`options.password` is required'));\r\n }\r\n\r\n return this._setUser({\r\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\r\n password: options.password,\r\n }).then((res) => {\r\n this.hasPassword = true;\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * Updates a user's name with webex.\r\n * @instance\r\n * @memberof User\r\n * @param {string} givenName\r\n * @param {string} familyName\r\n * @param {string} displayName\r\n * @returns {Promise<Object>}\r\n */\r\n updateName({givenName, familyName, displayName} = {}) {\r\n if (!(givenName || familyName || displayName)) {\r\n return Promise.reject(\r\n new Error('One of `givenName` and `familyName` or `displayName` is required')\r\n );\r\n }\r\n\r\n return this._setUser({\r\n schemas: ['urn:scim:schemas:core:1.0', 'urn:scim:schemas:extension:cisco:commonidentity:1.0'],\r\n name: {givenName, familyName},\r\n displayName,\r\n }).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Updates the current user's display name\r\n * @param {Object} options\r\n * @param {string} options.displayName\r\n * @returns {Promise<Object>}\r\n */\r\n update(options) {\r\n options = options || {};\r\n if (!options.displayName) {\r\n return Promise.reject(new Error('`options.displayName` is required'));\r\n }\r\n\r\n return this.request({\r\n method: 'PATCH',\r\n service: 'conversation',\r\n resource: 'users/user',\r\n body: options,\r\n }).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Validated One Time Password.\r\n * @instance\r\n * @param {Object} options\r\n * @param {string} options.email\r\n * @param {string} options.id\r\n * @param {string} options.oneTimePassword\r\n * @returns {Promise}\r\n */\r\n validateOTP(options = {}) {\r\n if (!(options.email || options.id) || !options.oneTimePassword) {\r\n return Promise.reject(\r\n new Error(\r\n 'One of `options.email` or `options.id` and `options.oneTimePassword` are required'\r\n )\r\n );\r\n }\r\n\r\n options.scope = this.webex.config.credentials.scope;\r\n\r\n return this.request({\r\n uri: this.webex.config.credentials.validateOtpUrl,\r\n method: 'POST',\r\n body: options,\r\n auth: {\r\n user: this.webex.config.credentials.client_id,\r\n pass: this.webex.config.credentials.client_secret,\r\n },\r\n }).then((res) => {\r\n this.webex.credentials.set({supertoken: res.body.tokenData});\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * Determines if the specified user needs to signup or can signin.\r\n * Triggers activation email if client credentials are used\r\n * @param {Object} options\r\n * @param {string} options.email (required)\r\n * @param {string} options.reqId required if need to check email status\r\n * @param {string} options.preloginId\r\n * @returns {Promise<Object>}\r\n */\r\n verify(options) {\r\n options = {...this.config.verifyDefaults, ...options};\r\n const {email} = options;\r\n\r\n if (!email) {\r\n return Promise.reject(new Error('`options.email` is required'));\r\n }\r\n\r\n return this.webex.internal.services\r\n .collectPreauthCatalog({email})\r\n .then(() => this.webex.credentials.getUserToken())\r\n .catch(() => this.webex.credentials.getClientToken())\r\n .then((token) =>\r\n this.request({\r\n service: 'atlas',\r\n resource: 'users/activations',\r\n method: 'POST',\r\n headers: {\r\n authorization: token.toString(),\r\n 'x-prelogin-userid': options.preloginId,\r\n },\r\n body: options,\r\n shouldRefreshAccessToken: false,\r\n })\r\n )\r\n .then((res) => {\r\n if (res.body.hasPassword || res.body.sso) {\r\n this.hasPassword = true;\r\n }\r\n\r\n return res.body;\r\n });\r\n },\r\n\r\n /**\r\n * If the passed-in lookupCI is true, retrieve the user's\r\n * CI from Atlas and return the URL's via a Promise.\r\n * Otherwise, return current CI in config via a Promise.\r\n * Useful in a Promise chain to retrieve the CI based on\r\n * conditions like Federation enabled, and suppresses sending\r\n * an additional email to the user, since this is just a\r\n * look-up.\r\n * @param {string} email (required)\r\n * @param {boolean} lookupCI (required)\r\n * @returns {Promise<Object>}\r\n */\r\n getUserCI(email, lookupCI) {\r\n if (lookupCI) {\r\n // call verify first to get the user's CI, but suppress sending another email\r\n const verifyOptions = {\r\n email,\r\n suppressEmail: true,\r\n };\r\n\r\n return this.verify(verifyOptions).then((res) => Promise.resolve(res.userEntities));\r\n }\r\n\r\n return Promise.resolve({\r\n idBrokerUrl: this.webex.config.credentials.idbroker.url,\r\n identityUrl: this.webex.config.credentials.identity.url,\r\n });\r\n },\r\n\r\n /**\r\n * Extracts the uuid from a user identifying object\r\n * @param {string|Object} user\r\n * @private\r\n * @returns {string}\r\n */\r\n _extractUUID(user) {\r\n return user.entryUUID || user.id || user;\r\n },\r\n\r\n /**\r\n * Extracts the email address from a user identifying object\r\n * @param {string|Object} user\r\n * @private\r\n * @returns {string}\r\n */\r\n _extractEmailAddress(user) {\r\n return user.email || user.emailAddress || user.entryEmail || user;\r\n },\r\n});\r\n\r\nexport default User;\r\n"],"mappings":"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"}
|
package/jest.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const config = require('@webex/jest-config-legacy');
|
|
2
|
-
|
|
3
|
-
module.exports = config;
|
|
1
|
+
const config = require('@webex/jest-config-legacy');
|
|
2
|
+
|
|
3
|
+
module.exports = config;
|
package/package.json
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-plugin-user",
|
|
3
|
-
"version": "2.59.2",
|
|
4
3
|
"description": "",
|
|
5
4
|
"license": "MIT",
|
|
6
5
|
"main": "dist/index.js",
|
|
@@ -21,35 +20,37 @@
|
|
|
21
20
|
},
|
|
22
21
|
"devDependencies": {
|
|
23
22
|
"@babel/core": "^7.17.10",
|
|
24
|
-
"@webex/babel-config-legacy": "
|
|
25
|
-
"@webex/eslint-config-legacy": "
|
|
26
|
-
"@webex/jest-config-legacy": "
|
|
27
|
-
"@webex/legacy-tools": "
|
|
28
|
-
"@webex/test-helper-chai": "2.59.
|
|
29
|
-
"@webex/test-helper-mocha": "2.59.
|
|
30
|
-
"@webex/test-helper-mock-webex": "2.59.
|
|
31
|
-
"@webex/test-helper-test-users": "2.59.
|
|
23
|
+
"@webex/babel-config-legacy": "^0.0.0",
|
|
24
|
+
"@webex/eslint-config-legacy": "^0.0.0",
|
|
25
|
+
"@webex/jest-config-legacy": "^0.0.0",
|
|
26
|
+
"@webex/legacy-tools": "^0.0.0",
|
|
27
|
+
"@webex/test-helper-chai": "^2.59.3-next.1",
|
|
28
|
+
"@webex/test-helper-mocha": "^2.59.3-next.1",
|
|
29
|
+
"@webex/test-helper-mock-webex": "^2.59.3-next.1",
|
|
30
|
+
"@webex/test-helper-test-users": "^2.59.3-next.1",
|
|
32
31
|
"eslint": "^8.24.0",
|
|
33
32
|
"prettier": "^2.7.1",
|
|
34
33
|
"sinon": "^9.2.4"
|
|
35
34
|
},
|
|
36
35
|
"dependencies": {
|
|
37
|
-
"@webex/common": "2.59.
|
|
38
|
-
"@webex/internal-plugin-device": "2.59.
|
|
39
|
-
"@webex/test-helper-chai": "2.59.
|
|
40
|
-
"@webex/test-helper-mock-webex": "2.59.
|
|
41
|
-
"@webex/test-helper-test-users": "2.59.
|
|
42
|
-
"@webex/webex-core": "2.59.
|
|
36
|
+
"@webex/common": "^2.59.3-next.1",
|
|
37
|
+
"@webex/internal-plugin-device": "^2.59.3-next.1",
|
|
38
|
+
"@webex/test-helper-chai": "^2.59.3-next.1",
|
|
39
|
+
"@webex/test-helper-mock-webex": "^2.59.3-next.1",
|
|
40
|
+
"@webex/test-helper-test-users": "^2.59.3-next.1",
|
|
41
|
+
"@webex/webex-core": "^2.59.3-next.1",
|
|
43
42
|
"lodash": "^4.17.21",
|
|
44
43
|
"uuid": "^3.3.2"
|
|
45
44
|
},
|
|
46
45
|
"scripts": {
|
|
47
46
|
"build": "yarn build:src",
|
|
48
47
|
"build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
|
|
48
|
+
"deploy:npm": "yarn npm publish",
|
|
49
49
|
"test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
|
|
50
50
|
"test:browser": "webex-legacy-tools test --integration --unit --runner karma",
|
|
51
51
|
"test:integration": "webex-legacy-tools test --integration --runner mocha",
|
|
52
52
|
"test:style": "eslint ./src/**/*.*",
|
|
53
53
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
54
|
-
}
|
|
55
|
-
|
|
54
|
+
},
|
|
55
|
+
"version": "2.59.3-next.1"
|
|
56
|
+
}
|
package/process
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = {browser: true};
|
|
1
|
+
module.exports = {browser: true};
|
package/src/config.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
device: {
|
|
7
|
-
preDiscoveryServices: {
|
|
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
|
-
},
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
user: {
|
|
14
|
-
batcherWait: 100,
|
|
15
|
-
batcherMaxCalls: 100,
|
|
16
|
-
batcherMaxWait: 1500,
|
|
17
|
-
verifyDefaults: {
|
|
18
|
-
reqId: 'WEBCLIENT',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
};
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
device: {
|
|
7
|
+
preDiscoveryServices: {
|
|
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
|
+
},
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
user: {
|
|
14
|
+
batcherWait: 100,
|
|
15
|
+
batcherMaxCalls: 100,
|
|
16
|
+
batcherMaxWait: 1500,
|
|
17
|
+
verifyDefaults: {
|
|
18
|
+
reqId: 'WEBCLIENT',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
package/src/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
import '@webex/internal-plugin-device';
|
|
5
|
-
|
|
6
|
-
import {registerInternalPlugin} from '@webex/webex-core';
|
|
7
|
-
|
|
8
|
-
import User from './user';
|
|
9
|
-
import config from './config';
|
|
10
|
-
|
|
11
|
-
registerInternalPlugin('user', User, {
|
|
12
|
-
config,
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
export {default} from './user';
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
import '@webex/internal-plugin-device';
|
|
5
|
+
|
|
6
|
+
import {registerInternalPlugin} from '@webex/webex-core';
|
|
7
|
+
|
|
8
|
+
import User from './user';
|
|
9
|
+
import config from './config';
|
|
10
|
+
|
|
11
|
+
registerInternalPlugin('user', User, {
|
|
12
|
+
config,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export {default} from './user';
|