0.2.0 • Published 11 years ago

nod v0.2.0

Weekly downloads
24
License
-
Repository
github
Last release
11 years ago

Boilerplate

Fast, generic, simple access control system for node.js.

Installation

$ npm install nod

Quick start

nod is used by consuming applications to manage a map of permissions that let you later check or enforce that certain subjects have permissions on specific objects. It does not try and enforce a particular storage paradigm on your application, nor does it presume anything about the hierarchy of your stuff. You simply grant, revoke, check, or enforce as appropriate.

#grant# grant(, , )

var nod = require('nod');

// assuming some object named article
nod.grant('peter', article.id, 'read');

At this point, nod's permissions map will record that the subject identified as 'peter' will have the permission to 'read' the article. Note that all the parameters are pretty arbitrary; nod attaches no semantic meaning to your permission names, nor does it assume any kind of inheritance in this release. You can, however, check peter's rights as follows:

nod.check('peter', article.id, 'read'); // returns true
nod.check('peter', article.id, 'write'); // returns false
nod.enforce('peter', article.id', write'); // throws an AccessDeniedError

If you later change your mind, you can always revoke permissions as well

nod.revoke('peter', article.id, 'read');

You can also view a copy of the permissions map through getPermissions

nod.grant('peter', '102029192', 'read');
nod.getPermissions();
// returns { '102029192' : { permissions : { read : ['peter'] }}}

And finally, you can set permissions as well

nod.setPermissions({'102029192' : { permissions : {read : ['peter','stewie']}}});
nod.check('stewie', '102029192', 'read'); // returns true
0.2.0

11 years ago

0.1.1

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago