Skip to content

Members & Roles

NuxtBase ships with three organization roles:

  • owner
  • admin
  • member

These roles are configured in the Better Auth organization plugin and then enforced again through UI behavior and server-side guards.

The owner is the highest organization role in normal product flows.

Owners can:

  • manage members
  • manage invitations
  • manage teams
  • manage billing
  • perform owner-only organization actions

Admins are managers, but not owners.

In the current template, admins can:

  • manage members
  • manage invitations
  • manage teams
  • manage billing

But they are still blocked from owner-only actions.

Members are regular organization users.

Members can use organization-scoped product features, but they do not get manager controls in the team-management screens.

In the dashboard UI, “manager” behavior is computed from the current organization membership.

The key frontend rule is:

  • owner and admin -> manager
  • member -> not a manager

This is what drives buttons like:

  • invite member
  • resend invite
  • cancel invite
  • create team
  • rename team
  • remove team

The template also enforces organization role checks on the server.

Important guards include:

  • requireActiveBillingManager()
  • requireOrganizationManager()
  • requireOrganizationOwner()

So even if you accidentally expose a UI action, the server still protects the mutation path.

Billing management allows:

  • owner
  • admin

and rejects regular members.

Some organization actions are explicitly owner-only. The server returns:

Only the organization owner can perform this action

for non-owner attempts.

On the dashboard members page, managers can:

  1. invite a new member
  2. choose member or admin for the invitation
  3. toggle an existing member between member and admin
  4. remove an existing member

The page intentionally prevents manager actions on:

  • the current signed-in user
  • the owner row

That makes the default behavior safer than a fully open member table.