new ACL(connector)
Creates an instance of ACL.
Examples:
var neo4j = require('node-neo4j');
var graphACL = require('node-graph-acl');
var db = new neo4j('http://localhost:7474');
var connector = new graphACL.neo4jConnector(db);
var acl = new graphACL(connector);
This:
- {ACL}
Parameters:
| Name | Type | Description |
|---|---|---|
connector |
Connector | Neo4jConnector | A connector to a graph database of your choice |
Methods
-
_createRelationship(nodeId1, nodeId2, type, properties, callback)
-
Create Relationship. If relationship already exists, does nothing. Examples: acl._createRelationship(1, 2, 'TYPE', callback); acl._createRelationship(1, 2, 'TYPE', {p1:'v1', p2:'v2'}, callback);
Parameters:
Name Type Description nodeId1String | Number First Node ID. nodeId2String | Number Second Node ID. typeString Relationship type. propertiesObject Relationship properties. callbackfunction Callback called when finished. -
_createResource(resourceId, callback)
-
Create Resource. If role already exists, does nothing. Examples: acl._createResource('resource1', callback);
Parameters:
Name Type Description resourceIdString | Number Resource id. callbackfunction Callback called when finished. -
_createRole(roleId, callback)
-
Create Role. If role already exists, does nothing. Examples: acl._createRole('role1', callback);
Parameters:
Name Type Description roleIdString | Number Role id. callbackfunction Callback called when finished. -
_createUser(userId, callback)
-
Create User. If user already exists, does nothing. Examples: acl._createUser('user1', callback);
Parameters:
Name Type Description userIdString | Number User id. callbackfunction Callback called when finished. -
addRoleParents(role, parents, callback)
-
Add one or more parent roles to a role. Examples: acl.addRoleParents('role1', 'role2', callback); acl.addRoleParents('role1', ['role2', 'role3'], callback);
Parameters:
Name Type Description roleString | Number Role id. parentsString | Array Parent role(s) to add to the role. callbackfunction Callback called when finished. -
addUserRoles(userId, roles, callback)
-
Add roles to a given user. Examples: acl.addUserRoles('user1', 'role1', callback); acl.addUserRoles('user1', ['role1', 'role2'], callback);
Parameters:
Name Type Description userIdString | Number User id. rolesString | Array Role(s) to add to the user. callbackfunction Callback called when finished. -
allow(roles, resources, permissions, callback)
-
Add permissions to roles over resources.
Parameters:
Name Type Description rolesString | Array Role(s) to add permission(s) of resource(s) to. resourcesString | Array Resource(s) to give permission(s) to. permissionsString | Array Permission(s) of the resource(s). callbackfunction Callback called when finished. -
allowedPermissions(userId, resources, callback)
-
Get all the permissions the user has to over this resources. It returns an array of objects where every object maps a resource name to a list of permissions for that resource.
Parameters:
Name Type Description userIdString | Number User. resourcesString | Array Resource(s) to ask permissions about. callbackfunction Callback called when finished. -
areAnyRolesAllowed(roles, resource, permissions, callback)
-
Check if the role(s) have permission(s) on the resource(s). Examples: acl.areAnyRolesAllowed('role1', 'resource1', 'permission1', callback); acl.areAnyRolesAllowed('role1', 'resource1', ['permission1', 'permission2'], callback); acl.areAnyRolesAllowed(['role1', role2], 'resource1', 'permission1', callback); acl.areAnyRolesAllowed(['role1', role2], 'resource1', ['permission1', 'permission2'], callback);
Parameters:
Name Type Description rolesString | Array Role(s) ids to check the permissions for. resourceString Resource to ask permissions for. permissionsString | Array Permission(s) over the resource. callbackfunction Callback called when finished. -
isAllowed(userId, resources, permissions, callback)
-
Check if a user is allowed to access resource(s) with given permission(s) (note: it must fulfil all the permissions). Examples: acl.isAllowed('user1', 'resource1', 'permission1', callback); acl.isAllowed('user1', ['resource1', 'resource2'], ['permission1', 'permission2'], callback);
Parameters:
Name Type Description userIdString | Number User id. resourcesString | Array Resource(s) to ask permissions for. permissionsString | Array Permission(s). callbackfunction Callback called when finished. -
removeAllow(role, resources, permissions, callback)
-
Remove permissions from roles over resources. Examples: acl.removeAllow('role1', 'resource1', 'permission1', callback); acl.removeAllow('role1', ['resource1', 'resource2'], ['permission1', 'permission2'], callback);
Parameters:
Name Type Description roleString Role to remove permission(s) of resource(s) from. resourcesString | Array Resource(s) to remove permission(s) from. permissionsString | Array Permission(s) of the resource(s). callbackfunction Callback called when finished. -
removeResource(resourceId, callback)
-
Remove a resource from the system. Examples: acl.removeResource('resource1', callback);
Parameters:
Name Type Description resourceIdString Resource to be removed. callbackfunction Callback called when finished. -
removeRole(roleId, callback)
-
Remove a role from the system. Examples: acl.removeRole('role1', callback);
Parameters:
Name Type Description roleIdString | Number Role to be removed callbackfunction Callback called when finished. -
removeUserRoles(userId, roles, callback)
-
Remove roles from a given user. Examples: acl.removeUserRoles('user1', 'role1', callback); acl.removeUserRoles('user1', ['role1', 'role2'], callback);
Parameters:
Name Type Description userIdString | Number User id. rolesString | Array Role(s) to remove from the user. callbackfunction Callback called when finished. -
userRoles(userId, callback)
-
Return all the roles the user belongs to. Examples: acl.userRoles('user1', callback);
Parameters:
Name Type Description userIdString | Number User id. callbackfunction Callback called when finished. -
whatResources(roles, permissions, callback)
-
Get resources the role(s) has permission(s) over. Examples: acl.whatResources('role1', 'permission1', callback); acl.whatResources('role1', ['permission1', 'permission2'], callback); acl.whatResources(['role1', role2], 'permission1', callback); acl.whatResources(['role1', role2], ['permission1', 'permission2'], callback);
Parameters:
Name Type Description rolesString | Array Roles ids. permissionsString | Array Permissions ids. callbackfunction Callback called when finished.