Files
talk/perms/queryReducer.js
T
2017-05-16 16:34:04 -06:00

32 lines
1.1 KiB
JavaScript

const intersection = require('lodash/intersection');
const check = (user, roles) => {
return !!intersection(roles, user.roles).length;
};
module.exports = {
SEARCH_ASSETS: 'SEARCH_ASSETS',
SEARCH_OTHER_USERS: 'SEARCH_OTHER_USERS',
SEARCH_ACTIONS: 'SEARCH_ACTIONS',
SEARCH_NON_NULL_OR_ACCEPTED_COMMENTS: 'SEARCH_NON_NULL_OR_ACCEPTED_COMMENTS',
SEARCH_OTHERS_COMMENTS: 'SEARCH_OTHERS_COMMENTS',
SEARCH_COMMENT_METRICS: 'SEARCH_COMMENT_METRICS',
checkRoles: function (user, perm) {
switch (perm) {
case this.SEARCH_ASSETS:
return check(user, ['ADMIN', 'MODERATOR']);
case this.SEARCH_OTHER_USERS:
return check(user, ['ADMIN', 'MODERATOR']);
case this.SEARCH_ACTIONS:
return check(user, ['ADMIN', 'MODERATOR']);
case this.SEARCH_NON_NULL_OR_ACCEPTED_COMMENTS:
return check(user, ['ADMIN', 'MODERATOR']);
case this.SEARCH_OTHERS_COMMENTS:
return check(user, ['ADMIN', 'MODERATOR']);
case this.SEARCH_COMMENT_METRICS:
return check(user, ['ADMIN', 'MODERATOR']);
default:
break;
}
}
};