User management is controlled by role-based permissions. Super admins have full access, while other users need explicit custom role permissions (e.g. a "Prospect Manager" role) to manage users from Admin > Users.
The platform has four base access levels. Admins and users can be extended with custom roles for granular table-level permissions:
| Role | Description | Manager Access |
|---|---|---|
visitor | Not signed in. Can only view published content. | None |
user | Signed in. Can manage their own profile, orders, and favorites. | None |
admin | Baseline admin label. Gets visitor + user-level access by default. All other table access requires explicit custom role permissions. | Requires custom roles (no blanket access) |
super | Full access to all tables and actions. | Full |
Base permissions by role. Admins can gain additional permissions through custom roles assigned by a Super admin:
| Action | Visitor | User | Admin (base) | Super |
|---|---|---|---|---|
| Read public records | Yes | Yes | Yes | Yes |
| Read own user data | - | Yes | Yes | Yes |
| Update own profile | - | Yes | Yes | Yes |
| CRUD data tables | - | - | Via custom roles | Yes |
| Manage users | - | - | Via custom roles | Yes |
| Assign roles | - | - | Via custom roles (cannot assign super/admin) | Yes |
| Delete records | - | - | - | Yes |
| Edit site config | - | - | - | Yes |
Custom roles grant specific table-level permissions to admins. A Super admin creates custom roles from Admin > Roles and assigns them to users. For example:
Security: Non-super users can never assign the super or admin roles, and no user can modify their own roles. User deletion remains super-only.
Users can be created in two ways: self-registration (if sign-up is enabled in Site Config) or admin onboarding (a Super admin creates the account manually).
When a visitor signs up, they provide their name, email, and password. The account is created with the user role by default and an active status. Sign-up can be disabled entirely from Site Config > Security > Allow sign up.
Users with the appropriate custom role permissions (e.g. "Prospect Manager") or Super admins can create accounts on behalf of others from the Users table. This triggers the welcome email flow:
pending status and generates a secure onboarding token.active and they can sign in normally.The welcome email uses the site's branding (logo, colors, fonts) configured in Site Config. It is sent from the no-reply email address with the support email as reply-to.
Every user account has a status that controls their ability to sign in and access the platform:
| Status | Can Sign In | Description |
|---|---|---|
active | Yes | Normal operating state. Full access based on assigned roles. |
pending | No | Account created via admin onboarding but user has not completed setup. |
suspended | No | Temporarily blocked by an admin. User cannot sign in until reinstated. |
inactive | No | Deactivated account. User cannot sign in until reactivated. |
To revoke a user's access, a Super admin changes their status to suspended or inactive from the Users table (user status is a super-only field). This has two effects:
active, the session is invalidated and the user is signed out.To reinstate access, change the status back to active. The user can then sign in again with their existing credentials.
The platform uses JWT-based sessions. When a user signs in, a JSON Web Token is created containing their identity, roles, and status. Key behaviors:
From the Users table, authorized users can:
super or admin roles, and nobody can modify their own roles.Every signed-in user has access to their profile at Dashboard > Profile. The profile page allows users to manage their personal information:
Users can also make their profile public, which creates a viewable profile page at their handle URL. Public profiles display the user's name, avatar, bio, location, and social links.
Users can enable 2FA from their profile using a TOTP authenticator app (Google Authenticator, Authy, etc.). Once enabled, sign-in requires both the password and a time-based one-time code.
The Roles table (Admin > Roles) defines the available roles in the system. The default roles (visitor, user, admin, super) are built-in. Super admins manage the Roles table and create custom roles.
Each role has a name, description, and set of table-level permissions. Roles are assigned to users as an array, meaning a user can hold multiple roles. Permissions from all assigned roles are combined — the union of all granted actions determines effective access.
Custom roles like "Editor", "Prospect Manager", or "Comm Team" allow fine-grained delegation without granting full admin or super access.