Guides

Known Limitations and Roadmap

On this page

SystemRoles is under active development. This page lists what is not there yet, so you can plan around it.

Current limitations#

Area Limitation Workaround
Enforcement No permission middleware for your own routes ships with the package Use the middleware recipes
Route access No admin screen; no built-in route check helper Sync with systemroles:sync, manage rows in code, use the RouteAccess recipe
Menus No admin screens; menus/assign does nothing Treat as experimental; render menus yourself
Roles No delete from the UI Retire the role, or delete in a transaction (see Roles)
Permissions No delete from the UI; renaming one role's row doesn't rename it on other roles Use the queries in Permissions
Users One role per user Combined roles
user_roles_in Not refreshed when the matrix changes Use roleHas() for checks
Role assignment in code updateUserRole() / createUserRole() don't write history Use the AssignRole service
Scans Never remove rows for deleted controllers or routes Clean up by hand
Session helpers Session copies don't refresh Prefer live checks
Translations Screens are English only (role_lang_name is eng) Publish and translate the views
Users screen Expects users.name and users.email Publish and adapt the view

Roadmap#

Planned or under consideration:

  • A permission: route middleware and a route access helper in the package.
  • Admin screens for routes and menus.
  • Delete actions for roles and permissions, with safety checks.
  • Renaming a permission across all roles in one step.
  • Clean-up option for systemroles:sync to remove stale routes and controllers.
  • Built-in caching of role permissions with automatic clearing.
  • An AssignRole service in the package that writes history and refreshes the snapshot.
  • Translations for the admin screens.

Suggestions and pull requests are welcome on GitHub: https://github.com/BabeRuka/systemroles