1.0.1 • Published 4 years ago
@shagital/adonisjs-acl v1.0.1
AdonisJS ACL
Version for Adonis v5
This package allows you easily add role/permission based access to your AdonisJS applications routes:
Available Features
- Role based route authentication
- Permission based route authentication
Requirements
- Adonisjs v5
- Node >=8
- Mysql >=5
- PostgreSQL >=10
Dependencies
- Adonisjs5 lucid(
@adonisjs/lucid) - Adonisjs5 auth(
@adonisjs/auth)
Installation
You can install the package via NPM:
npm install @shagital/adonisjs-aclOr with yarn
yarn add @shagital/adonisjs-aclSetup
- Configure package with
node ace configure @shagital/adonisjs-acl - In
start/kernel.ts, add the following toServer.middleware.registerNamed:
is: () => import('App/Middleware/Is'),
can: () => import('App/Middleware/Can'),- Update
config/rolePermission.tsto customize table names - Run migration to create role and permission tables:
node ace migration:run
Usage
Role Based Access
Route.get('/something-important', 'ImportantController.show').middleware('is:administrator')Multiple Roles
Route.get('/something-important', 'ImportantController.show').middleware('is:administrator,superadmin')Permission Based Access
Route.get('/important', 'SomeController.show').middleware('can:view-important')Multiple Roles
Route.get('/important', 'SomeController.show').middleware('can:view-important,read-important')NB: User is granted access if they have one or more role/permission specified
Todo
- Add properties to models e.g
User.hasRole,User.hasPermission,role.hasPermission, etc
Contributing
If you have a feature you'd like to add, kindly send a Pull Request (PR)
Security
If you discover any security related issues, please email zacchaeus@shagital.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.