0.1.3 • Published 9 years ago

jsonschema-acl v0.1.3

Weekly downloads
1
License
ISC
Repository
github
Last release
9 years ago

jsonschema-acl

jsonschema validator with acl-layer added for nodejs.

Handy validator before doing db inserts, api replies, form submits etc.

Usage

npm install jsonschema-acl

or in the browser:

<script type="text/javascript" src="jsacl.js"></script>

Basically its just jsonschema validation:

result = v.validate(data, schema ) // this would be GOD-mode

But with extra checks for acl-fields

result = v.validate( data, schema, "create", ["admin","user"] )

// here we validated, and checked whether this user is allowed 
// to create with his current roles 

Complete example

var v = require("jsonschema-acl");

var data = {
  foo: 4
};

var schema = {
  type: "object",
  acl: {
    create: ["admin", "user"],
    read:   ["*"],
    update: ["admin"],
    delete: ["admin"],
    rollback: ["admin"]            // feel free to add your own operations
  },
  properties: {
    foo: {
      type: "number"
    }
  }
};

var user = { roles: ["admin","user"] }   // this would be retrieved from the db somehow 

if( v.validate( data, schema, "create", user.roles ).errors.length ){
  // handle error(s) 
}else{
  // do db insert 
  // or api reply 
  // or form submission 
  // etc

NOTE: you can override / add acl fields at any place in the jsonschema

Docs

Notes

You don't have to specify acl fields for every field. The more highlevel the acl-fields are located in the jsonschema-tree, the better. Try defining them for object-types only for instance.

Todo

  • test browser version using browserify
0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago