1 import _ from 'lodash';
4 * @param PermissionOutput permissionOutput
6 let PermissionsOutputCollector = function(permissionOutput) {
7 this.permissionOutput = permissionOutput;
10 PermissionsOutputCollector.prototype.collect = function(permissions, tidsByInputs) {
11 this._collectRoles(permissions, tidsByInputs);
12 this._collectUsers(permissions, tidsByInputs);
15 PermissionsOutputCollector.prototype._collectRoles = function(permissions, tidsByInputs) {
17 for (let tids of tidsByInputs) {
19 for (let tidToRole in permissions.tidsToRoles) {
21 if (_.includes(tids, tidToRole)) {
23 for (let role of permissions.tidsToRoles[tidToRole]) {
24 if (!_.includes(this.permissionOutput.getRoles(), role)) {
25 this.permissionOutput.addRole(role);
37 PermissionsOutputCollector.prototype._collectUsers = function(permissions, tidsByInputs) {
39 for (let tids of tidsByInputs) {
41 for (let tidToUsername in permissions.tidToUsernames) {
42 if (_.includes(tids, tidToUsername)) {
43 for (let username of permissions.tidToUsernames[tidToUsername]) {
44 if (!_.includes(this.permissionOutput.getUsernames(), username)) {
45 this.permissionOutput.addUsername(username);
57 * @returns PermissionOutput
59 PermissionsOutputCollector.prototype.getPermissionOutput = function() {
60 return this.permissionOutput;
63 export default PermissionsOutputCollector;