crAcl
Overview
crAcl is Access Control List module for AngularJs. It works with UI-Router letting you to restrict the access of specific routes to a set of roles.
Install
You can use npm
npm install cr-acl
add to your html:
then inject it in your app:
angular
Role configuration
There are two fathers of all roles: ROLE_USER
for authenticated users and ROLE_GUEST
for anonymous users.
You can set a role hierarchy configuration.
In this exaple the role ROLE_ADMIN
if over ROLE_CUSTOMER
(that's father of ROLE_USER
) and ROLE_USER
.
Assign role to users
Whenever you want (for example after a successful login action) you can set the role of a user with crAcl
service (inject it into your controllers, services, directive...):
$scope{ crAcl;};
Default role is ROLE_GUEST
If your user is not allowed for this route triggers a redirect to unauthorized
state.
You can override it in the run:
Restrict route access
Now you can set a list of granted role for single state:
In this example, the home
route is accessible by both ROLE_CUSTOMER
and ROLE_ADMIN
(because that roles extend ROLE_USER
) and the dashboard
route is accessible only by ROLE_ADMIN
.
Directive
You can prevent compilation of specific DOM components with the cr-granted
directive:
Hello Admin!
This directive supports multiple roles:
Hello guys!