Profile Switching
Feature Detail
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.
-
docs/source/likeperson.md · line 66-66HÄndtering av medlemmer i flere lokallag (opptil 5): Avklare tilhÞrighet og hindre dobbeltrapportering.
-
docs/source/likeperson.md · line 192-192On mobile, an Org Admin is surfaced as a Coordinator - they use the same mobile experience as coordinators without a separate UI path.
Analysis
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.
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.Coordinator (Koordinator)
Quick UAT
- 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.
- Ă 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.
- Velg en annen profil enn den aktive (bytt rolle eller lokallag) og bekreft valget.
- 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.
- Lukk appen helt og Äpne den pÄ nytt i samme Þkt. Bekreft at den sist valgte profilen fortsatt er aktiv.
Quick UAT â Accessibility
-
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.
-
Ă 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.
-
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.
-
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.
-
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.
Components (4)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.