vix-ui
Version:
A set of essential UI modules for your Angular application in ViSenze
50 lines (49 loc) • 3.76 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* UserGroups holds the groups information of a user. It is mainly used to check permissions.
*/
export class UserGroups {
/**
* construct UserGroups from OktaUserGroups
*
* @param {?} oktaUserGroups Array of oktaGroups
* oktaGroup example:
* { ...
* "profile": {
* "name": "Everyone",
* "description": "All users in your organization"
* },
* ...
* }
*/
constructor(oktaUserGroups) {
this.groups = [];
if (oktaUserGroups) {
oktaUserGroups.forEach((oktaGroup) => {
this.groups.push(oktaGroup.profile.name);
});
}
}
/**
* Check if instance has enough permission for requireGroups.
*
* @param {?} requireGroups
* @return {?} true if this.groups contains all group of requireGroups, else then false
*/
hasPermission(requireGroups) {
for (let /** @type {?} */ i = 0; i < requireGroups.length; i++) {
if (this.groups.indexOf(requireGroups[i]) > 0) {
return true;
}
}
return false;
}
}
function UserGroups_tsickle_Closure_declarations() {
/** @type {?} */
UserGroups.prototype.groups;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92aXgtdWkvIiwic291cmNlcyI6WyJ2aXgtc2VydmljZXMvYXV0aC9tb2R1bGVzL3VzZXItZ3JvdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQSxNQUFNOzs7Ozs7Ozs7Ozs7OztJQWdCSixZQUFZLGNBQW1CO3NCQWZaLEVBQUU7UUFnQm5CLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFDLENBQUMsQ0FBQztTQUNKO0tBQ0Y7Ozs7Ozs7SUFRRCxhQUFhLENBQUMsYUFBdUI7UUFDbkMsR0FBRyxDQUFDLENBQUMscUJBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUNkO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZXJHcm91cHMgaG9sZHMgdGhlIGdyb3VwcyBpbmZvcm1hdGlvbiBvZiBhIHVzZXIuIEl0IGlzIG1haW5seSB1c2VkIHRvIGNoZWNrIHBlcm1pc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgVXNlckdyb3VwcyB7XG4gIGdyb3Vwczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogY29uc3RydWN0IFVzZXJHcm91cHMgZnJvbSBPa3RhVXNlckdyb3Vwc1xuICAgKlxuICAgKiBAcGFyYW0gb2t0YVVzZXJHcm91cHMgQXJyYXkgb2Ygb2t0YUdyb3Vwc1xuICAgKiBva3RhR3JvdXAgZXhhbXBsZTpcbiAgICogeyAuLi5cbiAgICogICBcInByb2ZpbGVcIjoge1xuICAgKiAgICAgXCJuYW1lXCI6IFwiRXZlcnlvbmVcIixcbiAgICogICAgIFwiZGVzY3JpcHRpb25cIjogXCJBbGwgdXNlcnMgaW4geW91ciBvcmdhbml6YXRpb25cIlxuICAgKiAgIH0sXG4gICAqICAgLi4uXG4gICAqIH1cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9rdGFVc2VyR3JvdXBzOiBhbnkpIHtcbiAgICBpZiAob2t0YVVzZXJHcm91cHMpIHtcbiAgICAgIG9rdGFVc2VyR3JvdXBzLmZvckVhY2goKG9rdGFHcm91cCkgPT4ge1xuICAgICAgICB0aGlzLmdyb3Vwcy5wdXNoKG9rdGFHcm91cC5wcm9maWxlLm5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGluc3RhbmNlIGhhcyBlbm91Z2ggcGVybWlzc2lvbiBmb3IgcmVxdWlyZUdyb3Vwcy5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVpcmVHcm91cHNcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGlzLmdyb3VwcyBjb250YWlucyBhbGwgZ3JvdXAgb2YgcmVxdWlyZUdyb3VwcywgZWxzZSB0aGVuIGZhbHNlXG4gICAqL1xuICBoYXNQZXJtaXNzaW9uKHJlcXVpcmVHcm91cHM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXF1aXJlR3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5ncm91cHMuaW5kZXhPZihyZXF1aXJlR3JvdXBzW2ldKSA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=