@c8y/ng1-modules 1016.258.0 → 1016.259.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";function _objectSpread(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?Object(arguments[e]):{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&r.push.apply(r,Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.forEach(function(e){_defineProperty(n,e,t[e])})}return n}function _defineProperty(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,n){if(e){if("string"==typeof e)return _arrayLikeToArray(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,n):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}!function(){function e(c,s,t,f,o,e,r){var n="user/{tenant}/users",u="user/currentUser",a=null,l={headers:f.contentHeaders("user",!0)},i={headers:f.contentHeaders("user",!0)};function d(e){var n=_.cloneDeep(e);return n.id&&delete n.userName,delete n.id,delete n.self,delete n.effectiveRoles,n}function h(e){var n=e.id||e;return g().then(function(e){return"".concat(e,"/").concat(encodeURIComponent(n))})}function p(){return s.when(f.url(u))}function g(){return y().then(function(e){return f.url(function(e,n){return e.replace(/\{tenant\}/g,n)}(n,e.tenant))})}function v(e){var n=e.match(/\/user\/([\w-]+)\//);if(n.length<2)throw new Error("Cannot find tenant on user self URL");return n[1]}function y(e){var n=u,t=_.cloneDeep(i);return e&&(a=null),a&&!_.isFunction(a.then)?s.when(a):a=a||c.get(f.url(n),t).then(function(e){return(a=e.data).tenant=v(a.self),a},function(){return a=null,s.reject()})}function m(e){var n=f.pageSizeFilter(e),t={params:n},r=f.cleanListCallback("users",m,n);return g().then(function(e){return c.get(e,t).then(r)})}function b(e,n){var t={silentError:n};return h(e).then(function(e){return c.get(e,t)})}function w(){var e=f.url(u),n=_.cloneDeep(i);return c.get(e,n)}function T(r,u){var o=u,a=d(r),n=_.cloneDeep(l),i=o?p():h(r);return i.then(function(e){return c.put(e,a,n)}).then(function(e){var n=s.resolve(e),t=e.data;return!_.isUndefined(a.password)&&o&&(a.id=t.id,n=n.then(function(){return s.when(A(a))})),_.isUndefined(r.owner)||r.owner===t.owner||(n=n.then(null===r.owner?function(){return function(e){return h(e).then(function(e){return c.delete("".concat(e,"/owner"))}).then(function(){return b(e)})}(t)}:function(){return function(e,n){var t={owner:e.owner},r={"Content-Type":f.mimeType("userOwnerReference")};return n.then(function(e){return"".concat(e,"/owner")}).then(function(e){return c.put(e,t,{headers:r})})}(r,i)})),_.isUndefined(r.delegatedBy)||r.delegatedBy===t.delegatedBy||(n=n.then(null===r.delegatedBy?function(){return function(e){return h(e).then(function(e){return c.delete("".concat(e,"/delegatedby"))}).then(function(){return b(e)})}(t)}:function(){return function(e,n){var t={delegatedBy:e.delegatedBy},r={"Content-Type":f.mimeType("userDelegatedByReference")};return n.then(function(e){return"".concat(e,"/delegatedby")}).then(function(e){return c.put(e,t,{headers:r})})}(r,i)})),n=n.then(function(){return u?w():b(r)})}).then(function(e){return t.$emit("c8yUser:update",{user:e.data,res:e}),e})}function S(e,n){return e.id?T(e,n):function(e){var n=d(e),t=_.cloneDeep(l);return g().then(function(e){return c.post(e,n,t)})}(e)}function A(n){return U(n).then(function(e){return e?o.updatePassword(function(e){return e.password||o.getPassword()}(n)):s.resolve()})}function U(e){var n=e.id||e;return y().then(function(e){return s.when(e.id===n)})}function P(e){return _.get(e,"groups.references",[]).map(function(e){return e.group})}function O(e){var n=o.headers();return e&&(n.Authorization="Basic ".concat(e)),_.assign(n,f.contentHeaders("user",!0))}function j(){return y().then(function(e){return I(e)}).then(function(e){return e.enabledOnSystemLevel||e.enabledOnTenantLevel})}function I(e,n){var t=n||v(e.self);return r.getTfaSettings(t)}function k(e,n){var t=_.some(P(e),function(e){return e.name===n.enforcedUsersGroup});return n.enforcedOnSystemLevel||n.totpEnforcedOnTenantLevel||t}function C(e){return"".concat(e,"/roles/inventory")}return t.$on("authStateChange",function(e,n){n.hasAuth||(a=null)}),{current:y,getCurrentUser:function(){return a},checkIfCurrent:U,listAll:function(e){var o=[];return m(_objectSpread({pageSize:f.MAX_PAGESIZE},e)).then(function e(n){o.push.apply(o,_toConsumableArray(n));var t=n.statistics.pageSize,r=n.paging.next,u=n.length>=t;return r&&u?n.paging.next().then(e):s.resolve(o)})},list:m,detail:b,detailCurrent:w,remove:function(e){return h(e).then(function(e){return c.delete(e)})},enable:function(e){return S({id:e.id||e,enabled:!0})},disable:function(e){return S({id:e.id||e,enabled:!1})},save:S,saveCurrent:function(e){return S(e,!0)},savePhoneNumber:function(e,n){var t=f.url("user/currentUserPhone"),r={headers:O(o.encodeToken(e.name,e.password,e.tenant)),method:"PUT",url:t,data:{phone:n},silentError:!0};return c(r)},groups:P,isDeviceUser:function(e){return e.id.match(/^device_/)},isServiceUser:function(e){var n;return(e.id||e).match(/^service_/)&&(n=!0),n},hasRole:function(e,n){var t=function(e,n){var t=!1,r=_.get(e,"roles.references");return r&&_.forEach(r,function(e){e.role.id===n&&(t=!0)}),t}(e,n);return t||(t=function(e,n){var t=!1,r=_.get(e,"groups.references");return r&&_.forEach(r,function(e){_.forEach(e.group.roles.references,function(e){e.role.id===n&&(t=!0)})}),t}(e,n)),t},getDevicePermissions:function(e,n){var t={params:f.pageSizeFilter({moId:n})};return h(e).then(function(e){return c.get("".concat(e,"/devicePermissions"),t)})},login:function(e,n,t,r){var u=o.encodeToken(n,t,e);return o.setAuthToken(u).then(function(){return o.saveAuthToken(r)})},logout:function(){return o.logout()},isAdmin:function(e){return _.some(e.groups.references,function(e){return"admins"===e.group.name})},changePassword:function(n,e,t){var r={newPassword:e,currentUserPassword:t};return U(n).then(function(e){return e?function(e,n){var t={"content-type":"application/json"};return p().then(function(e){return c.put("".concat(e,"/password"),n,{headers:t})}).then(function(){return A(e)})}(n,r):function(e,n){var t={"content-type":"application/json"};return h(e).then(function(e){return c.put("".concat(e,"/password"),n,{headers:t})})}(n,r)})},isCurrentPassword:function(e){return o.getPassword()===e},isTfaAvailable:j,isTfaActive:function(t){return _.isUndefined(t.id)?j():s.when(t).then(function(e){var n=e.twoFactorAuthenticationEnabled;return I(t).then(function(e){return"TOTP"===e.strategy?n:!!k(t,e)||n})})},getTenantTfaSettings:I,isEnforcedForUser:k,getTfaStrategy:function(){return e.detailValue({category:"two-factor-authentication",key:"strategy"},"SMS")},getHeaders:O,activateSupportUser:function(){var e=f.url("tenant/support-user/enable");return c.put(e)},deactivateSupportUser:function(){var e=f.url("tenant/support-user/disable");return c.put(e)},delegateTo:function(e){var n={id:e.id};return y().then(function(e){return n.delegatedBy=e.id,T(n)})},setUserTfaSettings:function(e,t){var r={"content-type":"application/json"};return h(e.id||e.userName).then(function(e){var n="".concat(e,"/tfa");return c.put(n,t,{headers:r})})},getUserTfaSettings:function(e){return h(e).then(function(e){var n="".concat(e,"/tfa");return c.get(n)})},hasExternalOrigin:function(e){return e.customProperties&&"OAUTH2"===e.customProperties.userOrigin},listInventoryRoles:function(e){return(e?s.resolve(e):y()).then(h).then(C).then(function(e){return c.get(e)})},assignInventoryRoles:function(e,n,t){var r=e?s.resolve(e):y(),u={managedObject:n,roles:_.map(t,function(e){return _.pick(e,"id")})};return r.then(h).then(C).then(function(e){return c.post(e,u)})},updateInventoryRoles:function(e,n,t){var r=e?s.resolve(e):y(),u={roles:_.map(t,function(e){return _.pick(e,"id")})};return r.then(h).then(C).then(function(e){return c.put("".concat(e,"/").concat(n),u)})},removeInventoryRoles:function(e,n){return(e?s.resolve(e):y()).then(h).then(C).then(function(e){return c.delete("".concat(e,"/").concat(n))})}}}e.$inject=["$http","$q","$rootScope","c8yBase","c8yAuth","c8ySettings","c8yTfaSettings"],angular.module("c8y.core").factory("c8yUser",e)}();
1
+ "use strict";function _objectSpread(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?Object(arguments[e]):{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&r.push.apply(r,Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.forEach(function(e){_defineProperty(n,e,t[e])})}return n}function _defineProperty(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,n){if(e){if("string"==typeof e)return _arrayLikeToArray(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,n):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}!function(){function e(c,s,t,f,o,e,r){var n="user/{tenant}/users",u="user/currentUser",a=null,l={headers:f.contentHeaders("user",!0)},i={headers:f.contentHeaders("user",!0)};function d(e,n){return e.replace(/\{tenant\}/g,n)}function h(e){var n=_.cloneDeep(e);return n.id&&delete n.userName,delete n.id,delete n.self,delete n.effectiveRoles,n}function p(e){var n=e.id||e;return v().then(function(e){return"".concat(e,"/").concat(encodeURIComponent(n))})}function g(){return s.when(f.url(u))}function v(){return m().then(function(e){return f.url(d(n,e.tenant))})}function y(e){var n=e.match(/\/user\/([\w-]+)\//);if(n.length<2)throw new Error("Cannot find tenant on user self URL");return n[1]}function m(e){var n=u,t=_.cloneDeep(i);return e&&(a=null),a&&!_.isFunction(a.then)?s.when(a):a=a||c.get(f.url(n),t).then(function(e){return(a=e.data).tenant=y(a.self),a},function(){return a=null,s.reject()})}function b(e){var n=f.pageSizeFilter(e),t={params:n},r=f.cleanListCallback("users",b,n);return v().then(function(e){return c.get(e,t).then(r)})}function w(e,n){var t={silentError:n};return p(e).then(function(e){return c.get(e,t)})}function T(){var e=f.url(u),n=_.cloneDeep(i);return c.get(e,n)}function S(r,u){var o=u,a=h(r),n=_.cloneDeep(l),i=o?g():p(r);return i.then(function(e){return c.put(e,a,n)}).then(function(e){var n=s.resolve(e),t=e.data;return!_.isUndefined(a.password)&&o&&(a.id=t.id,n=n.then(function(){return s.when(U(a))})),_.isUndefined(r.owner)||r.owner===t.owner||(n=n.then(null===r.owner?function(){return function(e){return p(e).then(function(e){return c.delete("".concat(e,"/owner"))}).then(function(){return w(e)})}(t)}:function(){return function(e,n){var t={owner:e.owner},r={"Content-Type":f.mimeType("userOwnerReference")};return n.then(function(e){return"".concat(e,"/owner")}).then(function(e){return c.put(e,t,{headers:r})})}(r,i)})),_.isUndefined(r.delegatedBy)||r.delegatedBy===t.delegatedBy||(n=n.then(null===r.delegatedBy?function(){return function(e){return p(e).then(function(e){return c.delete("".concat(e,"/delegatedby"))}).then(function(){return w(e)})}(t)}:function(){return function(e,n){var t={delegatedBy:e.delegatedBy},r={"Content-Type":f.mimeType("userDelegatedByReference")};return n.then(function(e){return"".concat(e,"/delegatedby")}).then(function(e){return c.put(e,t,{headers:r})})}(r,i)})),n=n.then(function(){return u?T():w(r)})}).then(function(e){return t.$emit("c8yUser:update",{user:e.data,res:e}),e})}function A(e,n){return e.id?S(e,n):function(e){var n=h(e),t=_.cloneDeep(l);return v().then(function(e){return c.post(e,n,t)})}(e)}function U(n){return P(n).then(function(e){return e?o.updatePassword(function(e){return e.password||o.getPassword()}(n)):s.resolve()})}function P(e){var n=e.id||e;return m().then(function(e){return s.when(e.id===n)})}function O(e){return _.get(e,"groups.references",[]).map(function(e){return e.group})}function j(e){var n=o.headers();return e&&(n.Authorization="Basic ".concat(e)),_.assign(n,f.contentHeaders("user",!0))}function k(){return m().then(function(e){return I(e)}).then(function(e){return e.enabledOnSystemLevel||e.enabledOnTenantLevel})}function I(e,n){var t=n||y(e.self);return r.getTfaSettings(t)}function C(e,n){var t=_.some(O(e),function(e){return e.name===n.enforcedUsersGroup});return n.enforcedOnSystemLevel||n.totpEnforcedOnTenantLevel||t}function E(e){return"".concat(e,"/roles/inventory")}return t.$on("authStateChange",function(e,n){n.hasAuth||(a=null)}),{current:m,getCurrentUser:function(){return a},checkIfCurrent:P,listAll:function(e){var o=[];return b(_objectSpread({pageSize:f.MAX_PAGESIZE},e)).then(function e(n){o.push.apply(o,_toConsumableArray(n));var t=n.statistics.pageSize,r=n.paging.next,u=n.length>=t;return r&&u?n.paging.next().then(e):s.resolve(o)})},list:b,detail:w,detailCurrent:T,remove:function(e){return p(e).then(function(e){return c.delete(e)})},enable:function(e){return A({id:e.id||e,enabled:!0})},disable:function(e){return A({id:e.id||e,enabled:!1})},save:A,saveCurrent:function(e){return A(e,!0)},savePhoneNumber:function(e,n){var t=f.url("user/currentUserPhone"),r={headers:j(o.encodeToken(e.name,e.password,e.tenant)),method:"PUT",url:t,data:{phone:n},silentError:!0};return c(r)},groups:O,isDeviceUser:function(e){return e.id.match(/^device_/)},isServiceUser:function(e){var n;return(e.id||e).match(/^service_/)&&(n=!0),n},hasRole:function(e,n){var t=function(e,n){var t=!1,r=_.get(e,"roles.references");return r&&_.forEach(r,function(e){e.role.id===n&&(t=!0)}),t}(e,n);return t||(t=function(e,n){var t=!1,r=_.get(e,"groups.references");return r&&_.forEach(r,function(e){_.forEach(e.group.roles.references,function(e){e.role.id===n&&(t=!0)})}),t}(e,n)),t},getDevicePermissions:function(e,n){var t={params:f.pageSizeFilter({moId:n})};return p(e).then(function(e){return c.get("".concat(e,"/devicePermissions"),t)})},login:function(e,n,t,r){var u=o.encodeToken(n,t,e);return o.setAuthToken(u).then(function(){return o.saveAuthToken(r)})},logout:function(){return o.logout()},revokeTokens:function(){return m().then(function(e){return f.url(d("user/logout/{tenant}/allUsers",e.tenant))}).then(function(e){return c.post(e)})},isAdmin:function(e){return _.some(e.groups.references,function(e){return"admins"===e.group.name})},changePassword:function(n,e,t){var r={newPassword:e,currentUserPassword:t};return P(n).then(function(e){return e?function(e,n){var t={"content-type":"application/json"};return g().then(function(e){return c.put("".concat(e,"/password"),n,{headers:t})}).then(function(){return U(e)})}(n,r):function(e,n){var t={"content-type":"application/json"};return p(e).then(function(e){return c.put("".concat(e,"/password"),n,{headers:t})})}(n,r)})},isCurrentPassword:function(e){return o.getPassword()===e},isTfaAvailable:k,isTfaActive:function(t){return _.isUndefined(t.id)?k():s.when(t).then(function(e){var n=e.twoFactorAuthenticationEnabled;return I(t).then(function(e){return"TOTP"===e.strategy?n:!!C(t,e)||n})})},getTenantTfaSettings:I,isEnforcedForUser:C,getTfaStrategy:function(){return e.detailValue({category:"two-factor-authentication",key:"strategy"},"SMS")},getHeaders:j,activateSupportUser:function(){var e=f.url("tenant/support-user/enable");return c.put(e)},deactivateSupportUser:function(){var e=f.url("tenant/support-user/disable");return c.put(e)},delegateTo:function(e){var n={id:e.id};return m().then(function(e){return n.delegatedBy=e.id,S(n)})},setUserTfaSettings:function(e,t){var r={"content-type":"application/json"};return p(e.id||e.userName).then(function(e){var n="".concat(e,"/tfa");return c.put(n,t,{headers:r})})},getUserTfaSettings:function(e){return p(e).then(function(e){var n="".concat(e,"/tfa");return c.get(n)})},hasExternalOrigin:function(e){return e.customProperties&&"OAUTH2"===e.customProperties.userOrigin},listInventoryRoles:function(e){return(e?s.resolve(e):m()).then(p).then(E).then(function(e){return c.get(e)})},assignInventoryRoles:function(e,n,t){var r=e?s.resolve(e):m(),u={managedObject:n,roles:_.map(t,function(e){return _.pick(e,"id")})};return r.then(p).then(E).then(function(e){return c.post(e,u)})},updateInventoryRoles:function(e,n,t){var r=e?s.resolve(e):m(),u={roles:_.map(t,function(e){return _.pick(e,"id")})};return r.then(p).then(E).then(function(e){return c.put("".concat(e,"/").concat(n),u)})},removeInventoryRoles:function(e,n){return(e?s.resolve(e):m()).then(p).then(E).then(function(e){return c.delete("".concat(e,"/").concat(n))})}}}e.$inject=["$http","$q","$rootScope","c8yBase","c8yAuth","c8ySettings","c8yTfaSettings"],angular.module("c8y.core").factory("c8yUser",e)}();
@@ -1 +1 @@
1
- "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(){function e(r,u,t,c,l,n,e,o,a,i,f,s,y,d){return w.$inject=["options","$uibModalInstance"],{askForPassword:function(){try{return r.get("c8yPasswordConfirm").confirmPassword().toPromise()}catch(e){return u.resolve(!0)}},currentPassword:function(){return r.get("c8yPasswordConfirm").currentPassword().toPromise().then(function(e){return null===e?u.reject():u.resolve(e)})},warnIfPasswordExpiresSoon:function(){var e="passwordExpirationAlertsDisplayed";function s(e,t){return!e||moment(e).isBefore(moment(t))}return u.all({user:l.current(),expirationAlertsDisplayedPreference:n.get(e),validityLimitInDays:o.detailValue({category:"password",key:"limit.validity"},0)}).then(function(e){var t=e.user,n=e.expirationAlertsDisplayedPreference,r=e.validityLimitInDays,o=n||{LESS_THAN_WEEK:null,LESS_THAN_DAY:null};if(0!==r){var a=moment(t.lastPasswordChange).add(r,"days"),i=moment.duration(a.diff(moment())).asDays(),u=!1;i<=1&&s(o.LESS_THAN_DAY,t.lastPasswordChange)?(u=!0,o.LESS_THAN_DAY=moment().format(c.dateFullFormat)):i<=7&&s(o.LESS_THAN_WEEK,t.lastPasswordChange)&&(u=!0,o.LESS_THAN_WEEK=moment().format(c.dateFullFormat)),u&&f.warning(y.getString("Your password will expire {{expirationTime | relativeDate}}. Consider changing password now.",{expirationTime:a}))}return o}).then(_.partial(n.set,e))},createUserFlatTree:function(e){return g(m(e))},buildUserTree:m,flattenTree:g,search:function(e,t){var n=["userName","lastName","firstName","email","phone"],r=_.constant(!0),o=_.constant(!0);if(e){var a=new RegExp(e,"i");r=function(t){return _.some(n,function(e){return a.test(t[e])})}}if(t&&t.length){var i=_.reduce(t,function(e,t){return e[t.id]=!0,e},{});o=function(e){return _.some(e.groups.references,function(e){return i[_.get(e,"group.id")]})}}return function(e){return r(e)&&o(e)}},selectUserDialog:function(e){return t.open({templateUrl:":::PLUGIN_PATH:::/ui/user/selectUser.modal.html",controllerAs:"vm",ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",controller:w,resolve:{options:_.constant(e)}}).result},userHierarchyActive:_.once(function(){return e.listByUser().then(function(e){return!!_.find(e,{key:"c8y-feature-user-hierarchy"})})}),hideUsers:function(e,t){var n=_(_.isArray(t)?t:[t]).map(p(e)).value(),r=function(){var t=_.keyBy(n,"id");return _.filter(e,function(e){return t[e.owner]&&!t[e.id]})};for(;r().length;)n=_.union(n,r());return _.uniq(n)},mapToUsersInMemory:p,canUserManageTenant:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.user,n=e.tenant,o=e.mustBeTopTenant,a=r.get("c8yPermissions"),i=r.get("c8yTenant");return u.all({user:t||l.current(),tenant:n||i.current()}).then(function(e){var t=i.isTopTenant(e.tenant.name),n=_.get(e.tenant,"allowCreateTenants"),r=a.hasRole(e.user,"ROLE_TENANT_MANAGEMENT_READ");return r&&(o?t:t||n)})},requireLogout:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:angular.noop;return i({title:s("Logout required"),body:s("You must log out to apply your changes. Do you want to proceed?"),status:"warning",labels:{ok:s("Confirm and log out"),cancel:s("Cancel")},dismissValue:"canceled"}).then(e).then(a.logout).then(function(e){e&&e.url?d.location.href=e.url:d.location.reload()})}};function m(t){var e=function(e){var t=_.keyBy(e,"id");return _.reject(e,function(e){return e.owner&&!t[e.owner]&&delete e.owner,e.owner})}(t),n=_.keyBy(t,"id");return _.forEach(t,function(e){e._owns=_.filter(t,{owner:e.id}),e._owner=_.get(n,e.owner)}),e}function p(n){return function(e){var t;return"string"==typeof e&&(t=e),"object"===_typeof(e)&&(t=e.userName),_.find(n,{userName:t})}}function g(e,t,n){var r=n||[],o=_.sortBy(e,["id","lastName"]),a=t||0;return _.reduce(o,function(e,t){return t._depth=a,e.push(t),g(t._owns,a+1,e)},r)}function w(e,t){_.assign(this,{textOk:s("Select"),textCancel:s("Cancel")},e,t)}}e.$inject=["$injector","$q","$uibModal","c8yBase","c8yUser","c8yUserPreferences","c8yApplication","c8ySettings","c8yAuth","c8yModal","c8yAlert","gettext","gettextCatalog","$window"],angular.module("c8y.ui").factory("c8yUserUtil",e)}();
1
+ "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(){function e(r,u,t,c,l,n,e,o,a,i,f,s,d,y){return w.$inject=["options","$uibModalInstance"],{askForPassword:function(){try{return r.get("c8yPasswordConfirm").confirmPassword().toPromise()}catch(e){return u.resolve(!0)}},currentPassword:function(){return r.get("c8yPasswordConfirm").currentPassword().toPromise().then(function(e){return null===e?u.reject():u.resolve(e)})},warnIfPasswordExpiresSoon:function(){var e="passwordExpirationAlertsDisplayed";function s(e,t){return!e||moment(e).isBefore(moment(t))}return u.all({user:l.current(),expirationAlertsDisplayedPreference:n.get(e),validityLimitInDays:o.detailValue({category:"password",key:"limit.validity"},0)}).then(function(e){var t=e.user,n=e.expirationAlertsDisplayedPreference,r=e.validityLimitInDays,o=n||{LESS_THAN_WEEK:null,LESS_THAN_DAY:null};if(0!==r){var a=moment(t.lastPasswordChange).add(r,"days"),i=moment.duration(a.diff(moment())).asDays(),u=!1;i<=1&&s(o.LESS_THAN_DAY,t.lastPasswordChange)?(u=!0,o.LESS_THAN_DAY=moment().format(c.dateFullFormat)):i<=7&&s(o.LESS_THAN_WEEK,t.lastPasswordChange)&&(u=!0,o.LESS_THAN_WEEK=moment().format(c.dateFullFormat)),u&&f.warning(d.getString("Your password will expire {{expirationTime | relativeDate}}. Consider changing password now.",{expirationTime:a}))}return o}).then(_.partial(n.set,e))},createUserFlatTree:function(e){return g(m(e))},buildUserTree:m,flattenTree:g,search:function(e,t){var n=["userName","lastName","firstName","email","phone"],r=_.constant(!0),o=_.constant(!0);if(e){var a=new RegExp(e,"i");r=function(t){return _.some(n,function(e){return a.test(t[e])})}}if(t&&t.length){var i=_.reduce(t,function(e,t){return e[t.id]=!0,e},{});o=function(e){return _.some(e.groups.references,function(e){return i[_.get(e,"group.id")]})}}return function(e){return r(e)&&o(e)}},selectUserDialog:function(e){return t.open({templateUrl:":::PLUGIN_PATH:::/ui/user/selectUser.modal.html",controllerAs:"vm",ariaLabelledBy:"modal-title",ariaDescribedBy:"modal-body",controller:w,resolve:{options:_.constant(e)}}).result},userHierarchyActive:_.once(function(){return e.listByUser().then(function(e){return!!_.find(e,{key:"c8y-feature-user-hierarchy"})})}),hideUsers:function(e,t){var n=_(_.isArray(t)?t:[t]).map(p(e)).value(),r=function(){var t=_.keyBy(n,"id");return _.filter(e,function(e){return t[e.owner]&&!t[e.id]})};for(;r().length;)n=_.union(n,r());return _.uniq(n)},mapToUsersInMemory:p,canUserManageTenant:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.user,n=e.tenant,o=e.mustBeTopTenant,a=r.get("c8yPermissions"),i=r.get("c8yTenant");return u.all({user:t||l.current(),tenant:n||i.current()}).then(function(e){var t=i.isTopTenant(e.tenant.name),n=_.get(e.tenant,"allowCreateTenants"),r=a.hasRole(e.user,"ROLE_TENANT_MANAGEMENT_READ");return r&&(o?t:t||n)})},requireLogout:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:angular.noop;return i({title:s("Logout required"),body:s("You must log out to apply your changes. Do you want to proceed?"),status:"warning",labels:{ok:s("Confirm and log out"),cancel:s("Cancel")},dismissValue:"canceled"}).then(e).then(function(){return h()})},logoutAndReloadPage:h};function m(t){var e=function(e){var t=_.keyBy(e,"id");return _.reject(e,function(e){return e.owner&&!t[e.owner]&&delete e.owner,e.owner})}(t),n=_.keyBy(t,"id");return _.forEach(t,function(e){e._owns=_.filter(t,{owner:e.id}),e._owner=_.get(n,e.owner)}),e}function p(n){return function(e){var t;return"string"==typeof e&&(t=e),"object"===_typeof(e)&&(t=e.userName),_.find(n,{userName:t})}}function g(e,t,n){var r=n||[],o=_.sortBy(e,["id","lastName"]),a=t||0;return _.reduce(o,function(e,t){return t._depth=a,e.push(t),g(t._owns,a+1,e)},r)}function w(e,t){_.assign(this,{textOk:s("Select"),textCancel:s("Cancel")},e,t)}function h(){return a.logout().then(function(e){e&&e.url?y.location.href=e.url:y.location.reload()})}}e.$inject=["$injector","$q","$uibModal","c8yBase","c8yUser","c8yUserPreferences","c8yApplication","c8ySettings","c8yAuth","c8yModal","c8yAlert","gettext","gettextCatalog","$window"],angular.module("c8y.ui").factory("c8yUserUtil",e)}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ng1-modules",
3
- "version": "1016.258.0",
3
+ "version": "1016.259.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "AngularJS modules for Cumulocity IoT applications.",
@@ -1 +1 @@
1
- "use strict";!function(){function e(i,n,o,r,e){var a,l=this;function u(e){return a=e?[]:l.users,l.users=[],o.list(function(){var e=_.get(l.filters,"text"),n=_.map(_.get(l.filters,"globalRoles"),"id"),t=n.length?n.join(","):void 0;return{withSubusersCount:!0,username:e,groups:t,withApps:!1,withGroups:!1,withRoles:!1,onlyRoots:_.isEmpty(e)}}()).then(t)}function t(e){s(e),l.users.paging=e.paging}function s(e){var n=l.users,t=n.paging,s=o.getTfaStrategy(),u=[];return _.forEach(e,function(r){var e=_.find(a,{id:r.id});r.twoFactorAuthenticationEnabled||i.all({enforced:o.isTfaActive(r),strategy:s}).then(function(e){var n=e.enforced,t=e.strategy;"SMS"!==t&&t||n&&(r.twoFactorAuthenticationEnabled=n)}),e&&(r._expanded=e._expanded,u.push(r)),_.some(n,{id:r.id})||(n=n.concat([r]))}),n.paging=t,l.users=n,u.reduce(function(e,n){return e.then(function(){return g(n)})},i.resolve())}function c(e){l.globalRoles=e}function f(e){return e._globalRoles=_.map(_.get(e,"groups.references"),function(e){return _.find(l.globalRoles,{id:e.group.id})}),e}function d(){o.current().then(function(e){l.canAddUser=o.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||l.FEATURE_USER_HIERARCHY&&o.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE")})}function g(e){return a=l.users,o.listAll({owner:e.id,withSubusersCount:!0}).then(s)}_.assign(l,{ROUTE_NEW_USER:r.ROUTE_NEW_USER,$onInit:function(){i.all([u(),e.global.list({pageSize:1e4}).then(c)]).then(function(){return _.forEach(l.users,f)}),r.userHierarchyActive().then(function(e){l.FEATURE_USER_HIERARCHY=e}).then(d)},loadMore:function(){l.users.paging.loading=!0,l.users.paging.next().then(t).finally(function(){l.users.paging.loading=!1})},loadUsers:u,loadSubusers:g,changeUser:function(n,e){var t="changeGlobalRoles"===e.name;return r.warnAboutUserLogOutIfNeeded(n,{rolesChanged:t}).then(function(){return r.changeUser(n,e)}).then(function(e){return function(e,n){var t,r=n||{};if(r.removeUser){l.users=_.reject(l.users,{id:e.id});var s=_.get(e,"_owner.id");l.users=_.map(l.users,function(e){return s&&s===e.id?(e.subusersCount--,angular.copy(e)):e})}r.refresh||r.removeUser||(t=o.list({username:e.id,withSubusersCount:!0}).then(_.first).then(function(t){var r=t.id,e=_.map(l.users,function(e){var n=r===e.id;return n&&(t._expanded=e._expanded),n?f(t):e});_.assign(e,_.pick(l.users,["statistics","paging"])),l.users=e}));r.refresh&&(t=u());return t}(n,e)})},showExpandCollapse:function(){return l.FEATURE_USER_HIERARCHY&&_.some(l.users,function(e){return 0<e.subusersCount||_.get(e,"_owns.length")})},collapseAll:function(){r.collapseAll(l.users)},expandAll:function(){r.expandAll(l.users),i.all(_.map(l.users,function(e){return e.subusersCount>e._owns.length?g(e).then(function(){return!0}):i.resolve(!1)})).then(function(e){_.some(e)&&n(l.expandAll)})},filters:{},applyFilters:function(){u(!0)},clearFilters:function(){l.filters={},u(!0)},isAnyFilterSelected:function(){return _.some(l.filters,_.identity)},refresh:function(){return u(!0).then(function(){return _.forEach(l.users,f)})}})}e.$inject=["$q","$timeout","c8yUser","c8yUsersUi","c8yRoles"],angular.module("c8y.users").component("c8yUserListView",{templateUrl:":::PLUGIN_PATH:::/userListView/userListView.html",controller:e,controllerAs:"vm"})}();
1
+ "use strict";!function(){function e(u,n,i,t,r,e,s,o,a,l,c){var f,g=this;function d(e){return f=e?[]:g.users,g.users=[],i.list(function(){var e=_.get(g.filters,"text"),n=_.map(_.get(g.filters,"globalRoles"),"id"),t=n.length?n.join(","):void 0;return{withSubusersCount:!0,username:e,groups:t,withApps:!1,withGroups:!1,withRoles:!1,onlyRoots:_.isEmpty(e)}}()).then(h)}function h(e){p(e),g.users.paging=e.paging}function p(e){var n=g.users,t=n.paging,s=i.getTfaStrategy(),o=[];return _.forEach(e,function(r){var e=_.find(f,{id:r.id});r.twoFactorAuthenticationEnabled||u.all({enforced:i.isTfaActive(r),strategy:s}).then(function(e){var n=e.enforced,t=e.strategy;"SMS"!==t&&t||n&&(r.twoFactorAuthenticationEnabled=n)}),e&&(r._expanded=e._expanded,o.push(r)),_.some(n,{id:r.id})||(n=n.concat([r]))}),n.paging=t,g.users=n,o.reduce(function(e,n){return e.then(function(){return U(n)})},u.resolve())}function E(e){g.globalRoles=e}function R(e){return e._globalRoles=_.map(_.get(e,"groups.references"),function(e){return _.find(g.globalRoles,{id:e.group.id})}),e}function A(){i.current().then(function(e){g.canAddUser=i.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||g.FEATURE_USER_HIERARCHY&&i.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE"),g.canRevokeTokens=i.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")})}function U(e){return f=g.users,i.listAll({owner:e.id,withSubusersCount:!0}).then(p)}_.assign(g,{ROUTE_NEW_USER:r.ROUTE_NEW_USER,$onInit:function(){u.all([d(),e.global.list({pageSize:1e4}).then(E)]).then(function(){return _.forEach(g.users,R)}),r.userHierarchyActive().then(function(e){g.FEATURE_USER_HIERARCHY=e}).then(A)},loadMore:function(){g.users.paging.loading=!0,g.users.paging.next().then(h).finally(function(){g.users.paging.loading=!1})},loadUsers:d,loadSubusers:U,changeUser:function(n,e){var t="changeGlobalRoles"===e.name;return r.warnAboutUserLogOutIfNeeded(n,{rolesChanged:t}).then(function(){return r.changeUser(n,e)}).then(function(e){return function(e,n){var t,r=n||{};if(r.removeUser){g.users=_.reject(g.users,{id:e.id});var s=_.get(e,"_owner.id");g.users=_.map(g.users,function(e){return s&&s===e.id?(e.subusersCount--,angular.copy(e)):e})}r.refresh||r.removeUser||(t=i.list({username:e.id,withSubusersCount:!0}).then(_.first).then(function(t){var r=t.id,e=_.map(g.users,function(e){var n=r===e.id;return n&&(t._expanded=e._expanded),n?R(t):e});_.assign(e,_.pick(g.users,["statistics","paging"])),g.users=e}));r.refresh&&(t=d());return t}(n,e)})},showExpandCollapse:function(){return g.FEATURE_USER_HIERARCHY&&_.some(g.users,function(e){return 0<e.subusersCount||_.get(e,"_owns.length")})},collapseAll:function(){r.collapseAll(g.users)},expandAll:function(){r.expandAll(g.users),u.all(_.map(g.users,function(e){return e.subusersCount>e._owns.length?U(e).then(function(){return!0}):u.resolve(!1)})).then(function(e){_.some(e)&&n(g.expandAll)})},filters:{},applyFilters:function(){d(!0)},clearFilters:function(){g.filters={},d(!0)},isAnyFilterSelected:function(){return _.some(g.filters,_.identity)},refresh:function(){return d(!0).then(function(){return _.forEach(g.users,R)})},revokeTokens:function(){var n=c.get("c8yAuthBridgeService").getPreferredLoginOption(),e=function(){return i.current().then(function(e){return function(e){return!(!i.hasExternalOrigin(e)&&"BASIC"===n.type)}(e)})};s({title:l("Revoke user tokens"),body:l('Revoking tokens will log out all users logged with "OAI-Secure" or "Single sign-on redirect". Do you want to proceed?'),status:"warning",size:"sm",labels:{ok:l("Revoke tokens and log out users")}}).then(function(){return i.revokeTokens()}).then(function(){return e().then(function(e){return e?t.logoutAndReloadPage():u.resolve()})}).then(function(){return o.success(l("User tokens revoked."))}).catch(function(e){e&&o.danger(a.getResErrorMessage(e))})}})}e.$inject=["$q","$timeout","c8yUser","c8yUserUtil","c8yUsersUi","c8yRoles","c8yModal","c8yAlert","c8yBase","gettext","$injector"],angular.module("c8y.users").component("c8yUserListView",{templateUrl:":::PLUGIN_PATH:::/userListView/userListView.html",controller:e,controllerAs:"vm"})}();
@@ -108,6 +108,18 @@
108
108
  {{ 'Reload' | translate }}
109
109
  </button>
110
110
  </li>
111
+
112
+ <li ng-show="vm.canRevokeTokens">
113
+ <button
114
+ title="{{ 'Revoke tokens' | translate }}"
115
+ type="button"
116
+ class="btn btn-link"
117
+ ng-click="vm.revokeTokens()"
118
+ >
119
+ <i c8y-icon="account-disable"></i>
120
+ {{ 'Revoke tokens' | translate }}
121
+ </button>
122
+ </li>
111
123
  </c8y-ui-action-bar-set>
112
124
 
113
125
  <c8y-help src="/users-guide/administration/#managing-users"></c8y-help>