Solavel Solavel Docs

Client portal

docs/solavel/client-portal.md

Who can use this: Organization Owners, Managers, and Members (each sees a different subset) URL / Route: /portal/* (the portal.* route group) Plan / feature gate: Always on

Purpose

The client portal is your main workspace inside the Solavel central app. It is where you pick an organization, manage its members and projects, see what plan it is on, and pay invoices. Everything under /portal/* shares one sidebar and one selected-organization context, so once you pick an organization you stay inside it until you switch.

What is in the sidebar

The portal sidebar (resources/views/components/client/sidebar.blade.php) has three sections.

Workspace — top-level pages that do not require an organization:

  • Dashboard/dashboard. The starting screen.
  • Organizations/portal/orgs. List of organizations you can access.
  • Team Access/users. Visible only if you have view-team-member. The team-member admin lives here, not under an organization.

Organization — appears once you have selected an organization. Items:

  • Overviewportal.orgs.show
  • Membersportal.orgs.members.index
  • Projectsportal.orgs.projects.index
  • Billing (collapsible) — visible only if your role grants can_view_billing_portal. Submenu links to Overview, Subscriptions, Payment Methods, Invoices, and Payments. See Subscriptions and billing.

Account — pages tied to your user, not the organization:

  • Profile & Security/portal/settings (route portal.settings.edit). Covered in Profile and account settings.
  • Reports/client/beta-reports (the bug-report tool).
  • Documentation → opens this docs site (/docs/finance) in a new tab.

Step by step (typical session)

  1. Sign in. You land on /dashboard.
  2. Click Organizations in the sidebar. Pick the one you want, or click Create organization if you have none.
  3. The sidebar now shows the Organization section. Use Overview to see the org at a glance.
  4. From Members, invite or remove people. From Projects, see which apps (Solabooks, etc.) are enabled.
  5. From Billing → Subscriptions, change plan, switch tier, or cancel.
  6. To enter Solabooks, use the "Open Solabooks" launcher on the overview card. It walks you through the SSO redirect.

The 32 organization routes

The portal.orgs.* group has 32 routes. Grouped by purpose:

  • List and select: portal.orgs.index, portal.orgs.select (POST), portal.orgs.show, portal.orgs.edit, portal.orgs.update.
  • Create wizard: portal.orgs.create (start), portal.orgs.create.store, portal.orgs.create.plan (pick plan), portal.orgs.create.plan.store, portal.orgs.create.projects (pick apps), portal.orgs.create.projects.store, portal.orgs.create.checkout, portal.orgs.create.checkout.store, portal.orgs.create.checkout.return.
  • Members: portal.orgs.members.index. (Add/edit happens at the older /users route, not under the org — see Organizations.)
  • Projects: portal.orgs.projects.index.
  • Plan: portal.orgs.plan.show, portal.orgs.plan.update, portal.orgs.plan.cancel.
  • Billing: portal.orgs.billing.show, portal.orgs.billing.subscriptions.index, portal.orgs.billing.invoices.index, portal.orgs.billing.invoices.show, portal.orgs.billing.payments.index, portal.orgs.billing.payment_methods.index, portal.orgs.billing.payment_methods.replace, portal.orgs.billing.payment_methods.default, portal.orgs.billing.payment_methods.destroy, portal.orgs.billing.subscription.cancel_at_period_end, portal.orgs.billing.subscription.resume, portal.orgs.billing.tap.initiate, portal.orgs.billing.tap.return.

Plus the top-level portal.home, portal.billing, portal.plan, and portal.settings.edit.

Permissions / restrictions

  • Sign-in is required for every route in the group.
  • Email must be verified (the EnsureWorkspaceOnboardingCompleted check redirects to /onboarding/verify otherwise).
  • SetClientContext resolves your client (the legal entity that owns your organizations). If you have no client linked, you cannot reach /portal/*.
  • Once you open a specific organization, SetSelectedOrganization checks that you actually belong to that organization. People who are not members get a 403.
  • Billing menu items are hidden for users whose role does not grant the billing-portal permission. The Spatie permission key behind this is manage-subscriptions (held by Owners and Admins, not by Managers or Members).

Common problems

  • "Page not found" when opening /portal/orgs/{id}. You are not a member of that organization, or the organization was deleted.
  • The sidebar shows no Organization section. Pick one from /portal/orgs first.
  • The Billing submenu is missing. Your role does not include billing access — only Organization Owners (and Solavel admins) see it.

Related

Source: docs/solavel/client-portal.md ← All documentation