diff options
Diffstat (limited to 'assets/javascripts/util/permissions.js')
| -rw-r--r-- | assets/javascripts/util/permissions.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/assets/javascripts/util/permissions.js b/assets/javascripts/util/permissions.js new file mode 100644 index 0000000..9e3ef4d --- /dev/null +++ b/assets/javascripts/util/permissions.js @@ -0,0 +1,49 @@ + +var Permissions = function(ops){ + var base = this + base.keys = _.keys(ops) + base.keys.forEach(function(op){ + base[op] = ops[op] + }) +} + +Permissions.prototype.toggle = function (key) { + var base = this + var state = ! base[key] + base.keys.forEach(function(op){ + base[op] = op == key ? state : false + }) + return state +} + +Permissions.prototype.assign = function (key, state) { + var base = this + base.keys.forEach(function(op){ + base[op] = op == key ? state : false + }) + return state +} + +Permissions.prototype.add = function (key) { + var base = this + base[key] = true +} + +Permissions.prototype.remove = function (key) { + var base = this + base[key] = false +} + +Permissions.prototype.clear = function () { + var base = this + base.keys.forEach(function(op){ + base[op] = false + }) +} + +Permissions.prototype.log = function () { + var base = this + base.keys.forEach(function(op){ + console.log(op, base[op]) + }) +}
\ No newline at end of file |
