User CRUD
Feature Detail
Description
Complete lifecycle management for users in the Admin Web Portal - invitation by email, profile editing, deactivation, and deletion. Org Admins manage Peer Mentors and Coordinators within their own tenant; Global Admins require a time-bounded support grant before accessing any org's data. All changes propagate to session state immediately and are written to the org audit trail, satisfying GDPR data-subject management and Bufdir grant traceability obligations shared across all four organizations.
Sources & reasoning
Blueprint tags user-crud [MVP] and the Admin Web Portal MVP scope (lines 326, 329) explicitly lists brukeradministrasjon as a launch requirement and confirms Coordinators and Peer Mentors are managed records, not portal users. Target release is MVP per both the blueprint and the source doc's Admin Web Portal MVP section.
-
docs/source/likeperson.md · line 326Brukeradministrasjon (invitere, deaktivere, rolletildeling)
-
docs/source/likeperson.md · line 329Coordinators og Peer Mentors logger IKKE inn i admin-portalen; de forvaltes som datarecords (invitasjon, rolletildeling, deaktivering) av Org Admin.
Analysis
Without user lifecycle management no peer mentor or coordinator can be onboarded, making every other platform feature inaccessible. NHF manages users across 1,400 local chapters, making efficient invitation and deactivation a hard operational requirement. Timely deactivation with session revocation protects sensitive contact and assignment data when volunteers depart unexpectedly. Every user record change is audit-logged, satisfying Bufdir grant traceability and GDPR data-subject management obligations. Time-bounded Global Admin support grants enforce strict tenant separation without creating permanent cross-org access risks.
Next.js SSR pages consuming REST API at /api/v1/users. Invitation sends a time-limited token email; accepting creates the auth credential and org membership record atomically. Deactivation calls the Authentication Module's session revocation endpoint synchronously so mobile access ends immediately. All user-scoped endpoints check the caller's org context against the target's membership record for tenant isolation. Global Admin access is gated by support_access_grants expiry - expired records return 403. User list uses server-side pagination and filtering to handle large orgs without browser memory pressure.
Quality Assurance
Organization Administrator (primary) · Global Administrator (support-grant path)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Brukeradministrasjon → Brukere. Bekreft at brukerlisten viser navn, e-post, rolle og aktiveringsstatus for alle brukere i din organisasjon.
- Trykk pĂĄ Inviter bruker. Fyll inn e-postadresse og velg rollen Koordinator i InviteUserModal. Trykk Send invitasjon. Bekreft at modalen lukkes og brukerlisten oppdateres med en ventende invitasjon.
- Ă…pne en eksisterende Peer Mentor ved ĂĄ trykke pĂĄ navnet i tabellen. Endre visningsnavn i brukerdetaljer-skjermen. Trykk Lagre. Bekreft at endringen er synlig umiddelbart og at et revisjonsspor-element er opprettet.
- Endre rollen til brukeren fra Peer Mentor til Koordinator via rollevelgeren. Trykk Lagre. Bekreft at ny rolle vises i UserDetailPage og i UserListPage.
- Trykk Deaktiver konto for en annen aktiv bruker. Bekreft at statusen endres til Deaktivert i brukerlisten og at brukerens aktive sesjoner blir avsluttet umiddelbart.
- Naviger til Revisjonskontroll-fanen eller Sikkerhetslogg. Bekreft at alle endringer fra stegene ovenfor er logget med tidsstempel og din identitet som utfører.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Brukeradministrasjon → Brukere. Bekreft at brukerlisten viser navn, e-post, rolle og aktiveringsstatus for alle brukere i din organisasjon.
- Screen reader Sideoverskrift 'Brukeradministrasjon' annonseres ved navigasjon; tabellhoder leses opp: 'Navn, E-post, Rolle, Status, Handlinger'.
- Keyboard / focus Tab-rekkefølge: toppmeny → søkefelt → rollefilter → tabell → rader. Piltaster navigerer mellom rader.
- Focus visibility Synlig fokusring pĂĄ alle interaktive tabellceller og filterkontroller.
- Zoom Tabellen er brukbar ved 200 % zoom; kolonner brytes ikke slik at innhold skjules.
- Contrast Statusbadger ('Aktiv', 'Deaktivert') kommuniseres ikke kun via farge; tekstetikett er alltid synlig. 4.5:1 kontrast for all tekst.
-
Trykk pĂĄ Inviter bruker. Fyll inn e-postadresse og velg rollen Koordinator i InviteUserModal. Trykk Send invitasjon. Bekreft at modalen lukkes og brukerlisten oppdateres med en ventende invitasjon.
- Screen reader Modal annonseres som dialog med tittel 'Inviter bruker'; lukk-knapp er merket. Valideringsfeil leses opp direkte etter inntasting.
- Keyboard / focus Fokus flyttes til første felt i modalen ved åpning; Tab navigerer e-postfelt → rollevalg → Send-knapp → Avbryt-knapp. Escape lukker uten å lagre.
- Focus visibility Synlig fokusring pĂĄ alle felt og knapper inne i modalen.
- Touch target Knappene 'Send invitasjon' og 'Avbryt' er minst 24Ă—24 CSS px.
- Live region 'Invitasjon sendt til [e-post].' annonseres som polite live region etter vellykket innsending.
-
Ă…pne en eksisterende Peer Mentor ved ĂĄ trykke pĂĄ navnet i tabellen. Endre visningsnavn i brukerdetaljer-skjermen. Trykk Lagre. Bekreft at endringen er synlig umiddelbart og at et revisjonsspor-element er opprettet.
- Screen reader Ny side annonseres med brukerens fulle navn som overskrift. Lagre-knapp er merket 'Lagre endringer'.
- Keyboard / focus Tab-rekkefølge: tilbakeknapp → visningsnavnfelt → rollevelger → statusveksler → Lagre-knapp.
- Focus visibility Fokus returneres til Lagre-knappen etter vellykket lagring; feilmeldinger tilknyttes tilhørende felt med aria-describedby.
- Live region 'Bruker oppdatert.' annonseres som polite live region etter lagring.
-
Endre rollen til brukeren fra Peer Mentor til Koordinator via rollevelgeren. Trykk Lagre. Bekreft at ny rolle vises i UserDetailPage og i UserListPage.
- Screen reader Dropdown for rollevelger annonserer gjeldende valg og tilgjengelige alternativer. Valgt rolle bekreftes etter endring.
- Keyboard / focus Rollevelger nĂĄs med Tab; piltaster velger alternativ; Enter bekrefter. Ingen mus pĂĄkrevd.
- Focus visibility Fokusring er tydelig synlig pĂĄ dropdown-kontrollen.
- Contrast Rollebadger bruker tekstetikett, ikke kun farge, for ĂĄ skille Peer Mentor fra Koordinator.
-
Trykk Deaktiver konto for en annen aktiv bruker. Bekreft at statusen endres til Deaktivert i brukerlisten og at brukerens aktive sesjoner blir avsluttet umiddelbart.
- Screen reader Bekreftelsesdialog annonseres med advarselstekst og to knapper: 'Deaktiver' og 'Avbryt'. Endret status leses opp i tabellen etter handling.
- Keyboard / focus Fokus flyttes til bekreftelsesdialog ved ĂĄpning; Tab navigerer mellom Deaktiver og Avbryt; Escape avbryter uten endring.
- Focus visibility Fokus returneres til brukerens rad i tabellen etter at dialog lukkes.
- Live region '[Brukernavn] er nĂĄ deaktivert. Alle aktive sesjoner er avsluttet.' annonseres som polite live region.
-
Naviger til Revisjonskontroll-fanen eller Sikkerhetslogg. Bekreft at alle endringer fra stegene ovenfor er logget med tidsstempel og din identitet som utfører.
- Screen reader Tabell over revisjonslogg leses opp med kolonner: Tidsstempel, Handling, Bruker, Utfører.
- Keyboard / focus Fane-navigasjon med Tab/piltaster; revisjonsloggtabell kan traverseres rad for rad med piltaster.
- Focus visibility Aktiv fane har synlig fokusindikator og aria-selected='true'.
- Zoom Revisjonslisten er lesbar ved 200 % zoom uten horisontal scrolling.
Global Administrator
Quick UAT
- Logg inn i Admin-portalen som Global Administrator. Naviger til en organisasjons Brukeradministrasjon uten aktiv støttetilgang. Bekreft at siden viser en melding om at støttetilgang er påkrevd og at brukerlisten ikke er synlig.
- Be Organisasjonsadministratoren om å aktivere tidsavgrenset støttetilgang via Organisasjonsinnstillinger → Støttetilgang. Bekreft at Global Administrator nå ser brukerlisten for den aktuelle organisasjonen.
- Gjennomfør en brukerhandling (f.eks. vis brukerdetaljer for en Peer Mentor). Bekreft at alle handlinger logges i organisasjonens revisjonsspor med Global Administrator-identiteten og tidsstempel.
- Vent til støttetilgangen utløper (eller be Organisasjonsadministratoren trekke tilbake tilgangen). Forsøk å laste brukerlisten på nytt. Bekreft at tilgangen er umiddelbart sperret og at feilmeldingen vises.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Global Administrator. Naviger til en organisasjons Brukeradministrasjon uten aktiv støttetilgang. Bekreft at siden viser en melding om at støttetilgang er påkrevd og at brukerlisten ikke er synlig.
- Screen reader Tilgangssperret-melding annonseres som en alert-region; overskriften leses opp automatisk ved sidelasting.
- Keyboard / focus Feilmeldingspanel er første fokusbare element på siden; lenke til informasjon om støttetilgang er tilgjengelig via Tab.
- Focus visibility Synlig fokusring på lenken 'Lær mer om støttetilgang'.
- Contrast Tilgangssperret-melding har 4.5:1 kontrast; status kommuniseres ikke kun via rød farge.
-
Be Organisasjonsadministratoren om å aktivere tidsavgrenset støttetilgang via Organisasjonsinnstillinger → Støttetilgang. Bekreft at Global Administrator nå ser brukerlisten for den aktuelle organisasjonen.
- Screen reader Etter at tilgang er innvilget og siden lastes: sideoverskrift 'Brukeradministrasjon – [org-navn]' annonseres; tilgangsstatus-banner leses opp.
- Keyboard / focus Tilgangsbanner øverst på siden er første fokusbare element og er traverserbar med Tab.
- Focus visibility Fokusring synlig pĂĄ alle interaktive elementer i brukertabellen.
- Live region 'Støttetilgang aktivert for [org-navn] frem til [dato].' annonseres som polite live region.
-
Gjennomfør en brukerhandling (f.eks. vis brukerdetaljer for en Peer Mentor). Bekreft at alle handlinger logges i organisasjonens revisjonsspor med Global Administrator-identiteten og tidsstempel.
- Screen reader UserDetailPage annonserer brukerens navn og rolle som overskrift. Alle felt er labelet med tilgjengelige navn.
- Keyboard / focus Tab-rekkefølge på detaljsiden: tilbakelenke → datafelt → handlingsknapper. Ingen museavhengige interaksjoner.
- Focus visibility Fokusring synlig pĂĄ tilbakelenken og alle handlingsknapper.
-
Vent til støttetilgangen utløper (eller be Organisasjonsadministratoren trekke tilbake tilgangen). Forsøk å laste brukerlisten på nytt. Bekreft at tilgangen er umiddelbart sperret og at feilmeldingen vises.
- Screen reader Tilgangssperret-alert annonseres automatisk ved opplasting; 'Støttetilgangen er utløpt. Du har ikke lenger tilgang til [org-navn].' leses opp.
- Keyboard / focus Fokus flyttes til tilgangssperret-meldingen automatisk; navigasjonslenker til egne admin-funksjoner er fortsatt tilgjengelige via Tab.
- Live region 'Støttetilgang utløpt.' annonseres som assertive live region.
- Contrast Utløpsvarsel bruker ikon + tekst, ikke kun farge for å signalisere sperret tilstand.
Role Boundaries
3 role(s) must NOT access this feature-
Peer Mentor
Brukeradministrasjon finnes ikke i mobilappens navigasjon. Et forsøk på å nå admin-portalens URL omdirigeres til 'Ingen tilgang'-siden. API-kallet /api/v1/admin/users returnerer 403.
-
Coordinator
Koordinatorer logger kun inn i mobilappen og har ingen tilgang til Admin Web Portal. Admin-portalens innloggingsside viser ikke koordinatorrollen som gyldig innloggingstype. Direkte URL-tilgang returnerer 403.
-
Prospective Organization Representative
Prospective-rollen har ingen konto i driftsystemet; admin-portalen aksepterer ikke pĂĄlogging. Salgsnettsiden er eneste tilgjengelige overflate for denne rollen.
Expected End State
-
Organization Administrator
Brukerposten er oppdatert med nye felteverdier og/eller ny status. Deaktiverte brukere har alle aktive sesjoner avsluttet umiddelbart. Alle endringer er skrevet til organisasjonens revisjonsspor med Org Admin-identitet og ISO-tidsstempel. Inviterte brukere mottar velkomst-e-post og vises med status 'Ventende' i brukerlisten.
-
Global Administrator
Global Administrator har kun tilgang til organisasjonens brukerdata innenfor den tidsavgrensede støtteperioden som er innvilget av Org Admin. Alle handlinger utført under støttetilgangen er revisjonslogget i den aktuelle organisasjonens logg. Tilgangen opphører øyeblikkelig ved utløp eller tilbakekalling.
Components (25)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.