Reference

Package Routes

On this page

Every web route is under the prefix /systemroles/admin and uses route_middleware (default web, auth, super_admin). Parameters are sent as query string or form fields; no route has URL parameters.

Roles and permissions#

Method URI Name Action Inputs
GET /systemroles/admin systemroles.admin.index Roles list –
GET /systemroles/admin/dashboard systemroles.admin.dashboard Redirect to roles list –
GET /roles, /roles/index systemroles.admin.roles, .roles.index Roles list –
POST /roles/store systemroles.admin.roles.store Create role role_name, role_guard_name?, role_description?, role_sequence?
PUT, POST /roles/update systemroles.admin.roles.update Update role role_id, role_name, role_guard_name, role_description?, role_sequence?
GET /roles/manage systemroles.admin.roles.manage Role's permission matrix role_id
GET /roles/permissions systemroles.admin.roles.permissions All permissions –
POST /roles/permissions/store systemroles.admin.roles.permissions.store Add permission role_id, in_name, in_guard_name, in_role (0/1)
PUT /roles/permissions/update systemroles.admin.roles.permissions.update Update permission in_id, role_id, in_name, in_guard_name?, in_role, in_sequence?
GET /roles/permissions/up systemroles.admin.roles.permissions.up Move up in_id
GET /roles/permissions/down systemroles.admin.roles.permissions.down Move down in_id

URIs after the first two rows are relative to /systemroles/admin.

store and update for roles return JSON ({"status":"success","message":"..."}) when the request expects JSON, otherwise redirect back.

Users#

Method URI Name Action Inputs
GET /roles/users systemroles.admin.roles.users Users screen –
POST /roles/userdata systemroles.admin.roles.users.userdata DataTables JSON draw, start, length (max 1000), search[value], order[0][column], order[0][dir]
POST /roles/user/assign systemroles.admin.roles.user.assign Assign role user_id, role_id

userdata response:

JSON
{
  "draw": 1,
  "recordsTotal": 120,
  "recordsFiltered": 3,
  "data": [
    {
      "id": 7, "name": "Ada", "email": "ada@example.com",
      "email_verified_at": "2026-01-02 10:00:00",
      "created_at": "2026-01-01 09:00:00", "updated_at": "2026-01-02 10:00:00",
      "role_id": 3, "role_name": "<span class=\"badge ...\">Manager</span>",
      "role_guard_name": "manager",
      "can_manage": true, "manage_url": "/admin/users/7/edit"
    }
  ]
}

Sortable columns: 0 id, 1 name, 2 email, 4 updated_at.

Classes (controllers)#

Method URI Name Action Inputs
GET /roles/classes/index systemroles.admin.roles.classes.index Controllers list (scans if scan_on_request) –
GET /roles/classes/manage systemroles.admin.roles.classes.manage One controller class_id
POST /roles/classes/in/store systemroles.admin.roles.classes.in.store Save access class_id, role_id[<role_id>], in_role[<role_id>] (0/1)
POST /roles/classes/in/init systemroles.admin.roles.classes.in.init Scan + create missing rows –

Routes#

Method URI Name Action Inputs
GET /roles/routes/index systemroles.admin.roles.routes.index Routes list (needs a view) –
GET /roles/routes/manage systemroles.admin.roles.routes.manage One route (needs a view) route_id
POST /roles/routes/init systemroles.admin.roles.routes.init Sync routes –
POST /roles/routes/store systemroles.admin.roles.routes.store Save access route_id, role_id[<role_id>], in_route[<role_id>] (0/1)

View variables: roles.routes.index gets $all_routes, $route_roles, $all_roles. roles.routes.manage gets $route, $route_roles, $all_roles.

Method URI Name Inputs
GET /roles/menus/index systemroles.admin.menus.index –
GET /roles/menus/items systemroles.admin.menus.items menu_id
GET /roles/menus/manage systemroles.admin.menus.manage menu_id
GET /roles/menus/items/manage systemroles.admin.menus.items.manage item_id
POST /roles/menus/store systemroles.admin.menus.store menu_id?, menu_name, menu_type, menu_desc
POST /roles/menus/assign systemroles.admin.menus.assign Not implemented
POST /roles/menus/items/store systemroles.admin.menus.items.store menu_id, item_name, item_icon, item_type, route_id, roles[]
DELETE /roles/menus/destroy systemroles.admin.menus.destroy menu_id
DELETE /roles/menus/items/destroy systemroles.admin.menus.items.destroy item_id
GET /roles/menus/items/manage/sync systemroles.admin.menus.items.manage.sync menu_id
GET /roles/menus/items/manage/up systemroles.admin.menus.items.manage.up item_id
GET /roles/menus/items/manage/down systemroles.admin.menus.items.manage.down item_id

API (off by default)#

Loaded only when load_api_routes is true. Uses api_middleware (default api, auth:sanctum, super_admin).

Method URI Name Action
POST /api/systemroles/users/userdata systemroles.admin.users.userdata Same as the web userdata route

Route caching#

The package registers its routes only when routes are not cached. After php artisan route:cache, the package routes are part of the cache like your own. Re-run route:cache after upgrading the package.