Skip to content

Organization Settings

  • Where the page is and who can open it
  • The seven sections you’ll find on it
  • How the admin gate works

Two URLs both render the same component:

  • /organization/{organizationid}/settings — the standard path users reach from their organization profile
  • /administration/organizations/{organizationid} — the platform-admin entry that lands on the same page (the component flags fromAdmin = true based on the URL prefix)

In either case the component receives the organization id from the route param and loads the organization’s profile.

Before showing any editable settings, the page calls userOrganizationService.isUserAdministrator(organizationId). While that’s resolving, the page is in an authorizing state and shows nothing editable. The result drives what happens next:

  • You are an org admin → the loader fetches the organization profile and the section sidebar renders
  • You are not an org admin → a snackbar reads “Only organization administrators can change these settings.” and the router navigates you to /organization/{id} (the public profile)
  • The check fails (network or server error) → a different snackbar reads “Could not verify your access to this organization.” and you’re bounced to the public profile the same way

This is a hard client-side gate — non-admins never see the editable forms at all.

The settings sidebar has seven sections. Selecting one swaps the right pane to that section’s component:

SectionComponentWhat it covers
Logoapp-org-settings-logoSquare logo image used in the public profile, organization cards, and footer placements
Bannerapp-org-settings-bannerWide banner image used on the org profile and public-page representations
Profileapp-org-settings-profileCore identity fields — name, description, contact info
Membersapp-org-settings-membersAdd and remove organization members and administrators
Permitsapp-org-settings-permitsActive research permits associated with the organization
Data Preferencesapp-org-settings-data-preferencesDefaults that apply when this organization submits encounters
Dangerapp-org-settings-dangerDestructive actions, isolated from the main flow

The default selected section is Logo. Section state is local to the page — switching doesn’t update the URL, so a refresh always lands on Logo.

The page tracks savingProfile and savingDataPreferences flags separately. Other sections handle their own save state via their own components.

When the organization profile loads it populates a single OrganizationProfileDto that the section components edit in place. The dto is dispatched back to the API per-section as you save.