Solavel Solavel Docs

Admin dashboard

docs/solavel/admin-dashboard.md

Who can use this: Solavel staff with the Admin or Super Admin role URL / Route: /admin and the admin.* 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)

  1. Sign in at /login with your staff account.
  2. 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.
  3. 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.index and .show — read-only browsing of every organization in the system.
  • admin.subscriptions.index and .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.index and .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.php would make the back-office faster to navigate.

Permissions / restrictions

  • Open /admin: requires auth and the EnsureAdmin rule (which checks users.is_admin = true).
  • Open Roles, Permissions, Projects, Send Email: further requires EnsureSuperAdmin (Spatie role super-admin).
  • Open My Workspace pages: further requires the LoadMyWorkspace rule, 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 the assign-roles permission which only super-admin holds out of the box).

Common problems

  • "Your account is not an administrator." — users.is_admin is 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.

Related

Source: docs/solavel/admin-dashboard.md ← All documentation