ReferenceSettings
Settings permissions and states
Reference the personal and organization Settings routes, access checks, and state transitions.
All routes below use https://settings.infra.one unless stated otherwise.
Personal routes
| Sidebar label | Route | Access boundary |
|---|---|---|
| Profile | /app/users/edit-profile | Signed-in, confirmed account |
| Public profile | /app/users/public-profile | Signed-in, confirmed account |
/app/users/edit-email | Signed-in, confirmed account | |
| Password | /app/users/change-password | Signed-in, confirmed account; current password for an in-session change |
| Connected accounts | /app/users/connected-accounts | Signed-in, confirmed account |
| Two-factor authentication | /app/users/two-factor-authentication | Signed-in, confirmed account; current password before enabling or changing 2FA, viewing or regenerating backup codes, or disabling 2FA |
| Notifications | /app/users/edit-notifications | Signed-in, confirmed account |
| Localization | /app/users/edit-localization | Signed-in, confirmed account |
| Appearance | /app/users/display | Signed-in, confirmed account |
| Memory | /app/users/memories | Ordinary signed-in, confirmed Settings account; no additional Memory-specific feature authorization |
| Invitations | /app/users/invitations | Signed-in, confirmed recipient; rows are scoped to that user |
The host root redirects to /app/users/edit-profile.
Organization routes
Replace :org_slug with the organization slug.
| Sidebar label | Route | Access boundary |
|---|---|---|
| General | /app/orgs/:org_slug/edit | Organization manage_orgs capability |
| Team | /app/orgs/:org_slug/team | Organization manage_orgs; grant editing adds manage_membership_grants |
| Notifications | /app/orgs/:org_slug/notifications/subscriptions | Organization manage_orgs |
| Notifications providers tab | /app/orgs/:org_slug/notifications/providers | Organization manage_orgs |
| Investor portal | /app/orgs/:org_slug/portal | Organization manage_orgs |
| Email activity | /app/orgs/:org_slug/email-activity | Organization manage_orgs |
The bare organization route /app/orgs/:org_slug redirects to General. A member without administrator access sees Request admin access in that organization’s sidebar group instead of the protected section links.
Entry states
| State | Result |
|---|---|
| Signed out | Redirect to the canonical Venture sign-in, preserving the Settings source destination |
| Signed in, email unconfirmed | Redirect to https://venture.infra.one/auth/confirm |
| Signed in, profile incomplete | Redirect on the current host to /app/users/onboarding |
| Two-factor challenge pending | Redirect to https://venture.infra.one/auth/totp before protected content |
| Personal setting permitted | Render the account-owned page |
| Organization setting permitted | Render the page for the organization resolved from :org_slug |
Organization member lacks manage_orgs | Refuse the direct settings route and return to that organization on Venture; the member's Settings sidebar offers Request admin access |
| Not a member of the organization | Do not resolve the organization settings context or render its forms; the member-only request action is unavailable |
Important lifecycle states
- A primary-email change is pending until its seven-day confirmation link succeeds.
- An additional email is Pending confirmation or Confirmed. Only a confirmed address can become primary.
- Two-factor authentication is disabled or 2FA enabled. Enable starts first-time setup; Change starts replacement setup. Changing the authenticator preserves the existing backup codes, while Regenerate backup codes replaces and invalidates the entire old set.
- A membership invitation remains pending while its invitation row exists. Accepting creates access; rejecting or withdrawing removes the pending row.
- A membership can be left only when the account or organization invariants permit it. The final organization admin and an investment-account owner cannot leave from this page. An investment-account membership also cannot leave while it is the sole recipient for a required notification topic or the last active signatory in any signatory group. Assign the required notification recipient or replacement signatory first.
See Account Settings access and lifecycle for token and session effects around sensitive changes.