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

Description

Allows users who hold multiple role contexts (e.g. an Org Admin surfaced as a Coordinator on mobile, or a Coordinator who is also a Peer Mentor) to switch between those contexts within the app without signing out. NHF explicitly raised that members may belong to up to five local associations, and Org Admins reuse the Coordinator mobile experience - both situations require a deliberate, auditable context switch rather than implicit role inference. The switcher exposes the active role + organisation membership, persists the last-used context, and re-evaluates module toggles and labels for the chosen scope so the rest of the app renders consistently.

Sources & reasoning

NHF explicitly needs to disambiguate members belonging to up to five local associations, and the doc requires Org Admins to appear as Coordinators on mobile - both demand an explicit context switcher to prevent mis-attributed activities. Targeted to Core Product because MVP only needs single-context login; multi-context handling is a documented Phase-2 concern tied to proxy/bulk registration and duplicate detection.

  • HĂ„ndtering av medlemmer i flere lokallag (opptil 5): Avklare tilhĂžrighet og hindre dobbeltrapportering.
  • docs/source/likeperson.md · line 192-192
    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

Without an explicit switcher, multi-role and multi-association users either need separate accounts (operationally painful, breaks Bufdir attribution) or risk logging activity against the wrong organisation - a real concern flagged by NHF whose members can sit in up to five local associations. A clean switcher prevents duplicate-activity confusion (which NHF already calls out as a separate problem) and keeps audit trails honest. It also unlocks the documented "Org Admin appears as Coordinator on mobile" pattern without confusing users about which hat they are wearing, which matters for trust and for the strict tenant-isolation guarantees Norse promises customers.

Implementation Notes

Profile context lives in a Riverpod-scoped state that downstream providers (module registry, organisation labels, role guard) listen to; switching the context invalidates and refetches the affected providers rather than restarting the app. The active context is persisted in user_preferences so it survives restarts, but every API call still sends the context in the request so the backend remains the source of truth and enforces tenant isolation server-side. The switcher UI lives in the profile area and is conditionally rendered only when the current user has more than one available context. Selecting a context emits an audit event so coordinators/admins can later see who switched into which role and when.

Quality Assurance

Peer Mentor + Coordinator (same flow — switcher behaves identically for any user who holds multiple profile contexts). Organization Admin uses Coordinator mobile experience.
1
Scenarios
5
UAT Steps
13
A11y Annotations
3
Role Boundaries
Coordinator (Koordinator)

Coordinator (Koordinator)

Quick UAT

  1. Logg inn i Meander mobilappen som en bruker som har minst to profilkontekster (f.eks. Likeperson i lokallag A og Koordinator i lokallag B, eller medlemskap i flere lokallag innenfor samme organisasjon). Bekreft at Hjem viser én aktiv profil Þverst i headeren.
  2. Åpne profilbytteren fra app-headeren eller kontomenyen. Bekreft at gjeldende profil er markert som aktiv og at de þvrige tilgjengelige profilene listes med rolle og lokallag/organisasjon.
  3. Velg en annen profil enn den aktive (bytt rolle eller lokallag) og bekreft valget.
  4. Bekreft at Hjem-dashbordet skifter til riktig rollevisning, at Kontakter og Aktivitetsregistrering nÄ viser data for den nye konteksten, og at brukeren IKKE ble logget ut underveis.
  5. Lukk appen helt og Äpne den pÄ nytt i samme Þkt. Bekreft at den sist valgte profilen fortsatt er aktiv.

Quick UAT — Accessibility

  1. Logg inn i Meander mobilappen som en bruker som har minst to profilkontekster (f.eks. Likeperson i lokallag A og Koordinator i lokallag B, eller medlemskap i flere lokallag innenfor samme organisasjon). Bekreft at Hjem viser én aktiv profil Þverst i headeren.
    • Screen reader Skjermleser annonserer sideoverskrift inkludert aktiv profil, f.eks. 'Hjem, Koordinator, lokallag <navn>'.
    • Contrast Aktiv profil-indikator har minst 4.5:1 kontrast og kommuniseres med tekst + ikon, ikke kun farge.
  2. Åpne profilbytteren fra app-headeren eller kontomenyen. Bekreft at gjeldende profil er markert som aktiv og at de þvrige tilgjengelige profilene listes med rolle og lokallag/organisasjon.
    • Screen reader Knapp annonseres som 'Bytt profil, aktiv: <rolle> <lokallag>, knapp'. Ved Ă„pning leses 'Profilbytter, <N> alternativer'.
    • Keyboard / focus Profilbytter-knapp nĂ„s via Tab; Enter/Mellomrom Ă„pner panelet; piltaster navigerer mellom radene.
    • Focus visibility Synlig fokusring pĂ„ knappen; fokus flyttes inn i panelet ved Ă„pning og tilbake til knapp ved lukking.
    • Touch target Profilbytter-knapp og hver profil-rad er ≄ 24×24 CSS-piksler.
  3. Velg en annen profil enn den aktive (bytt rolle eller lokallag) og bekreft valget.
    • Screen reader Hver rad annonseres som '<rolle>, <lokallag>, valgt' eller 'ikke valgt'; aktivering leses som 'Valgt'.
    • Keyboard / focus Enter eller Mellomrom pĂ„ fokusert rad velger profilen.
    • Contrast Valgt tilstand markeres med hake-ikon eller fet tekst i tillegg til farge.
  4. Bekreft at Hjem-dashbordet skifter til riktig rollevisning, at Kontakter og Aktivitetsregistrering nÄ viser data for den nye konteksten, og at brukeren IKKE ble logget ut underveis.
    • Screen reader Ny sideoverskrift annonseres med oppdatert aktiv profil.
    • Live region 'Profil byttet til <rolle>, <lokallag>. Hjem oppdatert.' annonseres via polite live region.
    • Zoom Hjem-dashbord, Kontakter og Aktivitetsregistrering forblir brukbare ved 200 % zoom uten horisontal scroll.
  5. Lukk appen helt og Äpne den pÄ nytt i samme Þkt. Bekreft at den sist valgte profilen fortsatt er aktiv.
    • Screen reader Etter relansering annonseres sideoverskrift fortsatt med den sist valgte profilen.

Role Boundaries

3 role(s) must NOT access this feature
  • Organization Administrator

    Organisasjonsadministrator har ingen egen 'admin-profil' i mobilbytteren. PĂ„ mobil opptrer Org Admin som Koordinator og ser bare sine koordinator-/likepersons-profiler i bytteren — admin-funksjoner forblir kun i Admin Web Portal.

  • Global Administrator

    Global Administrator har ikke tilgang til mobilappen. Innlogging avvises eller omdirigeres til admin-portalen, og profilbytteren er aldri synlig.

  • Prospective Buyer

    Prospective Buyer har ingen konto pÄ mobilappen og kan ikke nÄ profilbytteren. Salgsnettstedet eksponerer ikke profilkonsept.

Expected End State

Den valgte profilkonteksten (rolle + lokallag/organisasjon) er aktiv for Ăžkten, persistert via Profile Context Service, og Hjem, Kontakter og Aktivitetsregistrering opererer mot den valgte konteksten inntil brukeren bytter igjen eller logger ut. Ingen utlogging skjer som del av byttet.

User Stories

No user stories have been generated for this feature yet.