UNPKG

graph-acl

Version:

An ACL module using Graph databases.

211 lines (188 loc) 5.67 kB
var async = require('async'); var neo4j = require('node-neo4j'); var acl = require("./index.js"); var db = new neo4j('http://localhost:7474'); var testACL = new acl(new acl.neo4jConnector(db)); // Test properties var properties1 = { p1: 'test prop 1', p2: 'test prop 2' }; var properties2 = { p3: 'test prop 3', p4: 'test prop 4' }; // Test labels var labels1 = [ 'TestLabel1', 'TestLabel2' ]; var labels2 = [ 'TestLabel3', 'TestLabel4' ]; // Test nodes and relationships var testNode1; var testNode2; var testNode3; var testNode4; var testRelationship1; var testRelationship2; async.series([ function(callback){ testACL.allow('admin', 'dashboard', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('admin', 'campaigns', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('test', 'test', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('test', 'campaigns', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.addUserRoles('test_user', 'admin', callback); }, /*function(callback){ testACL.isAllowed('test_user', ['campaigns', 'dashboard'], ['read', 'delete'], function(err, isAllowed) { console.log(isAllowed); callback(err, isAllowed); }); }, function(callback){ testACL.isAllowed('test_user', 'dashboard', 'read', function(err, isAllowed) { console.log(isAllowed); callback(err, isAllowed); }); },*/ function(callback){ testACL.areAnyRolesAllowed(['test', 'admin'], 'dashboard', ['read', 'create'], function(err, isAllowed) { console.log(isAllowed); callback(err, isAllowed); }); }, function(callback){ testACL.whatResources('test', function(err, resources) { console.log(resources); callback(err, resources); }); } ]); /* async.series([ function(callback){ testACL.allow('admin', 'dashboard', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('admin', 'campaigns', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('admin', 'reports', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('admin', 'users', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.allow('client', 'dashboard', ['read'], callback); }, function(callback){ testACL.allow('client', 'reports', ['read'], callback); }, function(callback){ testACL.allow('client', 'clientstuff', ['create', 'read', 'update', 'delete'], callback); }, function(callback){ testACL.addUserRoles('nbarr', 'admin', callback); }, function(callback){ testACL.addUserRoles('turbo', 'client', callback); }, function(callback){ testACL.addRoleParents('admin', ['allroles'], callback); }, function(callback){ testACL.addRoleParents('client', ['allroles'], callback); }, function(callback){ testACL.addUserRoles('tudo', ['allroles'], callback); }, function(callback){ testACL.allowedPermissions('nbarr', ['campaigns', 'reports', 'inexistent'], function(err, permissions) { //console.log(permissions); callback(err, permissions); }); }, function(callback){ testACL.isAllowed('nbarr', ['campaigns', 'reports'], ['read', 'delete'], function(err, isAllowed) { console.log(isAllowed); callback(err, isAllowed); }); }, function(callback){ testACL.isAllowed('nbarr', 'campaigns', 'read', function(err, isAllowed) { console.log(isAllowed); callback(err, isAllowed); }); } ]); */ /* testACL.allow(['role30', 'role40'], ['resource50', 'resource60'], ['create', 'edit', 'erase', 'view'], function(err, relationships) { //testNode1 = createdUser; console.log(relationships); }); testACL.removeAllow('role30', ['resource50', 'resource60'], ['edit', 'erase'], function(err, relationships) { //testNode1 = createdUser; console.log(relationships); }); */ /* testACL.connector.createNode(labels1, properties1, function(err, createdNode) { testNode1 = createdNode; console.log(createdNode); testACL.connector.addNodeProperties(testNode1._id, properties2, function(err, success) { console.log(success); testACL.connector.getNode(testNode1._id, function(err, retrievedNode) { console.log(retrievedNode); }); }); }); */ /* testACL.addUserRoles('user1', ['role1', 'role2', 'role3'], function(err, createdUser) { testNode1 = createdUser; console.log(createdUser); testACL.userRoles('user1', function(err, roles) { console.log(roles); }); }); */ /* testACL.addUserRoles('user1', ['role1', 'role2', 'role3'], function(err, createdUser) { testNode1 = createdUser; testACL.addUserRoles('user2', ['role4', 'role2', 'role3', 'role5'], function(err, createdUser2) { testNode2 = createdUser2; testACL.removeUserRoles('user2', ['role2', 'role3'], function(err, response) { //testNode2 = createdUser2; console.log(response); }); }); }); */ /*testACL._createUser('usertest', function(err, createdNode) { testNode1 = createdNode; console.log(createdNode); });*/ /* testACL.connector.createNode(labels1, properties1, function(err, createdNode) { testNode1 = createdNode; console.log(createdNode); testACL.connector.addNodeProperties(testNode1._id, properties2, function(err, success) { console.log(success); testACL.connector.getNode(testNode1._id, function(err, retrievedNode) { console.log(retrievedNode); }); }); }); */