{"id":18812761,"url":"https://github.com/alexdonh/adonis-rbac","last_synced_at":"2025-10-05T23:39:52.852Z","repository":{"id":71796908,"uuid":"218218447","full_name":"alexdonh/adonis-rbac","owner":"alexdonh","description":"Another Role-Based Access Control (RBAC) implementation for AdonisJs.","archived":false,"fork":false,"pushed_at":"2019-11-06T10:12:27.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-26T02:07:21.002Z","etag":null,"topics":["access-control","adonis-framework","adonisjs","permission","rbac","role"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexdonh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-29T06:25:53.000Z","updated_at":"2019-11-06T10:12:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"6bde3d59-6bdb-493b-b05c-676d0c7a186d","html_url":"https://github.com/alexdonh/adonis-rbac","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdonh%2Fadonis-rbac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdonh%2Fadonis-rbac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdonh%2Fadonis-rbac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdonh%2Fadonis-rbac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexdonh","download_url":"https://codeload.github.com/alexdonh/adonis-rbac/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239748302,"owners_count":19690236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access-control","adonis-framework","adonisjs","permission","rbac","role"],"created_at":"2024-11-07T23:35:01.278Z","updated_at":"2025-10-05T23:39:47.792Z","avatar_url":"https://github.com/alexdonh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Adonis RBAC\n\nAnother Role-Based Access Control (RBAC) implementation for [AdonisJs](https://github.com/adonisjs/adonis-framework)\n\n## Installation\n\n```bash\n$ adonis install git+https://github.com/alexdonh/adonis-rbac.git --as=adonis-rbac\n```\n\n## Setup\n\n1. Register RBAC providers in `start/app.js` file.\n\n```js\nconst providers = [\n  ...\n  '@adonisjs/lucid/providers/LucidProvider',\n  'adonis-rbac/providers/RbacProvider'\n]\n\nconst aceProviders = [\n  ...\n  '@adonisjs/lucid/providers/MigrationsProvider',\n  'adonis-rbac/providers/CommandsProvider'\n]\n```\n\n2. Setting up trait in `/app/Models/User.js` model.\n\n```js\nclass User extends Model {\n\n  static get traits() {\n    return [\n      '@provider:Rbac/Traits/User'\n    ]\n  }\n\n  // or if you need to customize the properties\n\n  static boot () {\n    super.boot()\n\n    this.addTrait('@provider:Rbac/Traits/User', {\n      cache: false, // or cache component. See https://github.com/alexdonh/adonis-cache.git\n      cacheKeyPrefix: 'rbac/user/',\n      cacheDuration: 60 * 24,\n      allowActions: []\n    })\n  }\n}\n```\n\n3. Setting up middleware in `start/kernel.js` file.\n\n```js\nconst namedMiddleware = {\n  ...\n  rbac: 'Rbac/Middlewares/AccessControl'\n  ...\n}\n```\n\n4. Run the migrations. See [https://adonisjs.com/docs/4.1/migrations](https://adonisjs.com/docs/4.1/migrations)\n\n```bash\n$ adonis migration:run\n```\n\n## Usage\n\n1. In `start/routes.js`:\n\n```js\nRoute.get('/path/to/action', 'SomeController.someAction').middleware(['auth'])\n\n// or\n\nRoute\n  .group(() =\u003e {\n    ...\n  })\n  .middleware(['auth'])\n```\n\n2. In controller actions:\n\n```js\nif (auth.user.is('administrator')) {\n  ...\n}\n\n// or\n\nif (auth.user.can('/path/to/action')) {\n  ...\n}\n```\n\n## Credits\n\n- [Alex Do](https://github.com/alexdonh)\n\n## Support\n\nHaving trouble? [Open an issue](https://github.com/alexdonh/adonis-rbac/issues/new)!\n\n## License\n\nThe MIT License (MIT). See [License File](LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdonh%2Fadonis-rbac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexdonh%2Fadonis-rbac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdonh%2Fadonis-rbac/lists"}