Who can use this: Solavel staff with the Admin or Super Admin role URL / Route:
/adminand theadmin.*route group (89 routes total) Plan / feature gate: Always on for staff
Purpose
/admin is the back-office shell that Solavel staff use to manage every client, organization, plan, and subscription on the platform. Most pages are read-and-edit. A handful of system-level pages (roles, permissions, projects, send-email) are reserved for Super Admins.
Step by step (first visit)
- Sign in at
/loginwith your staff account. - Open
/admin. If your account is flagged as a staff admin, you arrive at the admin dashboard. If not, you see a "restricted to administrators" message. - The sidebar (
resources/views/components/admin-sidebar.blade.php) lists every section. Click any item to drill in.
Sidebar map
The admin sidebar has these top-level sections, in order:
| Section | Route | Who sees it | What it does |
|---|---|---|---|
| Dashboard | admin.dashboard (/admin) |
Admin, Super Admin | Welcome + quick stats. |
| Admins | admin.admins.index |
Admin, Super Admin | Manage Solavel staff accounts. See Users, roles, and permissions. |
| Clients | admin.clients.index |
Admin, Super Admin | List and edit every client (legal entity). |
| Plans | admin.plans.index |
Admin, Super Admin | Edit plan tiers seeded by ProjectPlanSeeder. See Plans and features. |
| Contact messages | admin.contact-messages.index |
Admin, Super Admin | Inbox of submissions from the public contact form, with reply support. |
| Projects | admin.projects.index |
Super Admin only (the entries are still rendered for Admins but write actions are blocked) | Manage the master list of apps/projects (Solabooks, HR, Projects, Inventory). |
| Roles | admin.roles.index |
Super Admin only | Edit role definitions. |
| Permissions | admin.permissions.index |
Super Admin only | Edit permission definitions. |
| Send Email | admin.emails.create |
Super Admin only | Compose a one-off email and send to one or many users. |
| Tap test | admin.tap-test.index |
Admin, Super Admin | Sandbox tool to fire a test charge at the Tap gateway. |
The sidebar is rendered for any signed-in admin; the visibility of write actions inside each page is controlled by the per-route middleware (EnsureAdmin on most, EnsureSuperAdmin on the four restricted areas).
Other admin URLs you can reach (not in the sidebar)
These exist as routes but are linked from inside other pages, not directly from the sidebar:
admin.my-workspace.*(/admin/my-workspace/*) — when a staff member opens their own organization, they get an extended workspace shell with Apps, Billing, Members, Settings, and a Solabooks launcher.admin.organizations.indexand.show— read-only browsing of every organization in the system.admin.subscriptions.indexand.show— every active subscription. See Subscriptions and billing.admin.client-users.*— list, edit, reset password, and toggle status on any client user account.admin.beta-reports.*— review bug reports from beta users. See System event logs.admin.system-event-logs.*— search, view, and CSV-export the audit log. See System event logs.admin.user-monitor.*— operations tool that pings live users and runs health checks against their workspaces.admin.errors.indexand.show— captured server errors.admin.features.index(/admin/features) — read-only viewer of the feature catalog. See Plans and features.admin.finance-go(/admin/finance-go) — quick launcher into Solabooks for the staff member's own workspace.
Risk: the admin sidebar does not link to My Workspace, Organizations, Subscriptions, Client Users, Beta Reports, System Event Logs, User Monitor, Errors, Features, or Solabooks Go. They are reachable only via direct URL or in-page links. Adding them to
resources/views/components/admin-sidebar.blade.phpwould make the back-office faster to navigate.
Permissions / restrictions
- Open
/admin: requiresauthand theEnsureAdminrule (which checksusers.is_admin = true). - Open Roles, Permissions, Projects, Send Email: further requires
EnsureSuperAdmin(Spatie rolesuper-admin). - Open My Workspace pages: further requires the
LoadMyWorkspacerule, which loads the staff member's own client/organization. - Promote a user to admin: done from
admin.admins.edit(super-admin only effectively, because role assignment requires theassign-rolespermission which only super-admin holds out of the box).
Common problems
- "Your account is not an administrator." —
users.is_adminis false. A super-admin must edit your account. - A super-admin-only page returns 403. You hold Admin but not Super Admin. Ask a super-admin to promote you, or to perform the action.
- A sidebar item exists but the destination is empty — see the risk note above; some pages are not yet linked.