0.1.3 • Published 7 years ago

jsonschema-acl v0.1.3

Weekly downloads
1
License
ISC
Repository
github
Last release
7 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

7 years ago

0.1.2

7 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago