UNPKG

deep-security

Version:
45 lines (38 loc) 841 B
/** * Created by CCristi on 7/15/16. */ 'use strict'; 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;