Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Permissions() {
- }
- Permissions.createRules = function(options) {
- var permissions = {};
- var num = 1;
- var len = options.length;
- for(var i=0;i<len;i++) {
- if(i === 0) {
- permissions[options[i]] = num;
- } else {
- num *= 2;
- permissions[options[i]] = num;
- }
- }
- return permissions;
- }
- Permissions.createPermissions = function (rules) {
- var result = 0;
- var len = rules.length;
- for(var i=0;i<len;i++) {
- result ^= rules[i];
- }
- return result;
- }
- Permissions.checkPermission = function(permissions, rule) {
- return Boolean(permissions & rule);
- }
- var rules = Permissions.createRules(['view', 'modify', 'create', 'delete']);
- var permissions = Permissions.createPermissions([rules.modify, rules.delete]);
- console.log('#view', Permissions.checkPermission(permissions, rules.view));
- console.log('#modify', Permissions.checkPermission(permissions, rules.modify));
- console.log('#create', Permissions.checkPermission(permissions, rules.create));
- console.log('#delete', Permissions.checkPermission(permissions, rules.delete));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement