vix-ui
Version:
49 lines • 3.64 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} 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 i = 0; i < requireGroups.length; i++) {
if (this.groups.indexOf(requireGroups[i]) > 0) {
return true;
}
}
return false;
}
}
if (false) {
/** @type {?} */
UserGroups.prototype.groups;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly92aXgtdWkvIiwic291cmNlcyI6WyJ2aXgtYXV0aC91c2VyLWdyb3Vwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsTUFBTTs7Ozs7Ozs7Ozs7Ozs7SUFnQkosWUFBWSxjQUFtQjtRQWYvQixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBZ0JwQixJQUFJLGNBQWMsRUFBRTtZQUNsQixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Ozs7Ozs7SUFPRCxhQUFhLENBQUMsYUFBdUI7UUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzdDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGOzs7SUFyQ0MsNEJBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2VyR3JvdXBzIGhvbGRzIHRoZSBncm91cHMgaW5mb3JtYXRpb24gb2YgYSB1c2VyLiBJdCBpcyBtYWlubHkgdXNlZCB0byBjaGVjayBwZXJtaXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJHcm91cHMge1xuICBncm91cHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIGNvbnN0cnVjdCBVc2VyR3JvdXBzIGZyb20gT2t0YVVzZXJHcm91cHNcbiAgICpcbiAgICogQHBhcmFtIG9rdGFVc2VyR3JvdXBzIEFycmF5IG9mIG9rdGFHcm91cHNcbiAgICogb2t0YUdyb3VwIGV4YW1wbGU6XG4gICAqIHsgLi4uXG4gICAqICAgXCJwcm9maWxlXCI6IHtcbiAgICogICAgIFwibmFtZVwiOiBcIkV2ZXJ5b25lXCIsXG4gICAqICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQWxsIHVzZXJzIGluIHlvdXIgb3JnYW5pemF0aW9uXCJcbiAgICogICB9LFxuICAgKiAgIC4uLlxuICAgKiB9XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihva3RhVXNlckdyb3VwczogYW55KSB7XG4gICAgaWYgKG9rdGFVc2VyR3JvdXBzKSB7XG4gICAgICBva3RhVXNlckdyb3Vwcy5mb3JFYWNoKChva3RhR3JvdXApID0+IHtcbiAgICAgICAgdGhpcy5ncm91cHMucHVzaChva3RhR3JvdXAucHJvZmlsZS5uYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBpbnN0YW5jZSBoYXMgZW5vdWdoIHBlcm1pc3Npb24gZm9yIHJlcXVpcmVHcm91cHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhpcy5ncm91cHMgY29udGFpbnMgYWxsIGdyb3VwIG9mIHJlcXVpcmVHcm91cHMsIGVsc2UgdGhlbiBmYWxzZVxuICAgKi9cbiAgaGFzUGVybWlzc2lvbihyZXF1aXJlR3JvdXBzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVxdWlyZUdyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuZ3JvdXBzLmluZGV4T2YocmVxdWlyZUdyb3Vwc1tpXSkgPiAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxufVxuIl19