mirror of
https://github.com/wassname/talk.git
synced 2026-06-28 17:51:53 +08:00
32 lines
1.1 KiB
JavaScript
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;
|
|
}
|
|
}
|
|
};
|