Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. function Permissions() {
  2. }
  3.  
  4. Permissions.createRules = function(options) {
  5. var permissions = {};
  6. var num = 1;
  7. var len = options.length;
  8. for(var i=0;i<len;i++) {
  9. if(i === 0) {
  10. permissions[options[i]] = num;
  11. } else {
  12. num *= 2;
  13. permissions[options[i]] = num;
  14. }
  15. }
  16. return permissions;
  17. }
  18.  
  19. Permissions.createPermissions = function (rules) {
  20. var result = 0;
  21. var len = rules.length;
  22. for(var i=0;i<len;i++) {
  23. result ^= rules[i];
  24. }
  25. return result;
  26. }
  27.  
  28. Permissions.checkPermission = function(permissions, rule) {
  29. return Boolean(permissions & rule);
  30. }
  31.  
  32. var rules = Permissions.createRules(['view', 'modify', 'create', 'delete']);
  33. var permissions = Permissions.createPermissions([rules.modify, rules.delete]);
  34. console.log('#view', Permissions.checkPermission(permissions, rules.view));
  35. console.log('#modify', Permissions.checkPermission(permissions, rules.modify));
  36. console.log('#create', Permissions.checkPermission(permissions, rules.create));
  37. console.log('#delete', Permissions.checkPermission(permissions, rules.delete));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement