UNPKG

policyline

Version:

Attributes Based Access Control library for Node.JS

52 lines (45 loc) 1.15 kB
let expect = require('chai').expect; let PolicyLine = require('../dist/policyline.min'); let Policy = PolicyLine.Policy; describe("Policy Group", function () { it(": group expression", function () { let policyGroup = { // all algorithms set in 'all' by default expression: '(admin OR super_admin)OR(user AND location)', policies: { user: { target: [ "user.role='user'" ], effect: "permit" }, location: { target: [ "user.location=env.location" ], effect: "permit" }, admin: { target: [ "user.role='admin'" ], effect: "permit" }, super_admin: { target: [ "user.role='super_admin'" ], effect: "permit" } } }; let policy = new Policy(policyGroup); let data = { user: {role: 'admin', location: 'LA'}, env: {location: 'NY'}, action: {}, resource: {}, }; expect(policy.check(data)).to.equal(true); }); // todo watchers policy group testing });