medium complexity extracted Profile Management Confidence: 100%
2
Components
18
Shared
0
User Stories
Yes
Analyzed

Description

Profile Switching allows users who belong to multiple local associations or hold multiple roles to switch between organizational contexts without logging out. When an Org Admin acts as a Coordinator in the mobile app, this feature enables fluid role transitions. The switch updates the active session context, refreshes organization-specific data, and adapts the home screen and available modules to reflect the selected profile, preventing double-reporting and ensuring correct activity attribution across organizations.

Sources & reasoning

Profile Switching is v1.0 per the blueprint [v1.0] marker, aligning with Fase 2 of the roadmap. The need is driven by NHF's multi-association requirement (line 106) requiring unambiguous affiliation to prevent double-reporting, and the platform-wide design decision that Org Admins are surfaced as Coordinators on mobile (line 257), both demanding a context-switch mechanism that does not require re-authentication.

  • **HĂ„ndtering av medlemmer i flere lokallag (opptil 5):** Avklare tilhĂžrighet og hindre dobbeltrapportering.
  • **On mobile, an Org Admin is surfaced as a Coordinator** - they use the same mobile experience as coordinators without a separate UI path.

Analysis

Business Value

NHF explicitly requires handling members in multiple local associations (up to 5) with clear affiliation tracking and prevention of double-reporting. Profile Switching addresses this by letting users select their active organizational context before logging activities. For Org Admins surfaced as Coordinators on mobile, seamless role context switching prevents activities being attributed to the wrong organizational unit. This reduces administrative corrections, improves data integrity across all reporting workflows, and ensures Bufdir export figures reflect accurate per-organization activity counts.

Implementation Notes

Profile Switching is implemented as a ProfileSwitchWidget bottom sheet that retrieves available organizational memberships via ProfileSwitchService querying the UserOrganizationMemberships table. On selection the service issues a context-switch API call returning a session token scoped to the selected organization, replacing the current token in SecureStorage. The Riverpod provider tree is selectively invalidated to reload module toggles and organization labels without a full app restart. The UI blocks switching while unsynced mutations are pending, prompting the user to sync first to prevent cross-organization data leakage and attribution errors.

Quality Assurance

Coordinator (primary) · Peer Mentor (same flow)
1
Scenarios
6
UAT Steps
15
A11y Annotations
2
Role Boundaries
Coordinator

Coordinator

Quick UAT

  1. Logg inn i mobilappen som Koordinator med minst to organisasjonstilknytninger.
  2. PÄ hjemskjermen, trykk pÄ profilbyttewidgeten som viser gjeldende organisasjonsnavn.
  3. Bekreft at en liste over tilgjengelige profiler og organisasjoner vises.
  4. Velg en annen organisasjon fra listen.
  5. Bekreft at toppfeltet oppdateres med den valgte organisasjonens navn og at hjemskjermen lastes pÄ nytt.
  6. Naviger til Aktiviteter og bekreft at kun aktiviteter tilknyttet den valgte organisasjonen vises.

Quick UAT — Accessibility

  1. Logg inn i mobilappen som Koordinator med minst to organisasjonstilknytninger.
    • Screen reader Innloggingsskjerm annonseres med overskrift; tab-rekkefĂžlge: e-postfelt → passordfelt → Logg inn-knapp.
    • Keyboard / focus Alle felt nĂ„s med Tab; Enter sender skjema.
  2. PÄ hjemskjermen, trykk pÄ profilbyttewidgeten som viser gjeldende organisasjonsnavn.
    • Screen reader TalkBack leser opp 'Profilbytteknapp, [organisasjonsnavn], dobbelttrykk for Ă„ Ă„pne'.
    • Focus visibility Synlig fokusring pĂ„ profilbyttewidgeten; semantisk label inkluderer gjeldende organisasjonsnavn.
    • Touch target ≄ 24×24 CSS px
  3. Bekreft at en liste over tilgjengelige profiler og organisasjoner vises.
    • Screen reader Listebeholder annonseres med antall elementer, f.eks. 'Profilliste, 3 elementer'.
    • Keyboard / focus Piltaster navigerer mellom listeelementer; Enter velger.
    • Zoom Liste forblir lesbar og scrollbar ved 200% zoom uten horisontalt overflyt.
  4. Velg en annen organisasjon fra listen.
    • Screen reader Valgt element bekreftes: '[Organisasjonsnavn], valgt'.
    • Touch target ≄ 24×24 CSS px per listeelement.
    • Contrast 4.5:1 for organisasjonsnavn; aktiv/inaktiv tilstand kommuniseres ikke utelukkende via farge.
  5. Bekreft at toppfeltet oppdateres med den valgte organisasjonens navn og at hjemskjermen lastes pÄ nytt.
    • Focus visibility Fokus flyttes til hjemskjermens overskrift etter bytte.
    • Live region 'Profil byttet til [Organisasjonsnavn]. Hjemskjerm oppdatert.'
  6. Naviger til Aktiviteter og bekreft at kun aktiviteter tilknyttet den valgte organisasjonen vises.
    • Screen reader Aktivitetsliste annonseres med riktig organisasjonskontekst i overskriften.
    • Keyboard / focus Aktiviteter-fane nĂ„s via Tab og aktiveres med Enter.

Role Boundaries

2 role(s) must NOT access this feature
  • Global Administrator

    Mobilappen viser en ingen-tilgang-skjerm for Global Administrator og omdirigerer til admin-portalen; profilbyttewidgeten vises ikke.

  • Prospective Organization Representative

    Ingen mobil brukerkonto tildeles; innlogging i mobilappen avvises og profilbyttefunksjonen er utilgjengelig.

Expected End State

Aktiv sesjonskontekst er oppdatert til valgt organisasjon. Toppfelt, hjemskjerm og aktivitetsliste reflekterer ny organisasjonstilhĂžrighet. Alle fremtidige aktivitetsregistreringer krediteres den valgte organisasjonen.

User Stories

No user stories have been generated for this feature yet.