deep-security
Version:
DEEP Security Library
45 lines (38 loc) • 841 B
JavaScript
/**
* Created by CCristi on 7/15/16.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.RoleResolver = undefined;
var _RoleVoter = require('./Voter/RoleVoter');
class RoleResolver {
/**
* @param {RoleProvider} roleProvider
*/
constructor(roleProvider) {
this._roleProvider = roleProvider;
}
/**
* @param {String} context
* @returns {Object}
*/
resolve(context) {
return this.getContextVoters().then(voters => {
for (let voter of voters) {
if (voter.vote(context)) {
return voter.role;
}
}
return null;
});
}
/**
* @returns {Promise}
*/
getContextVoters() {
return this._roleProvider.getRoles().then(roles => roles.map(r => new _RoleVoter.RoleVoter(r)));
}
}
exports.RoleResolver = RoleResolver;