Bulk Actions
Feature Detail
Description
Provides a bulk action toolbar on the user list page allowing Org Admins to perform operations on multiple users simultaneously - bulk role reassignment, bulk deactivation, bulk reactivation, and bulk invitation resend. Selection is via checkbox with select-all and select-page controls, and the toolbar surfaces the count of selected users plus the available actions. Each bulk action shows a confirmation dialog summarizing the operation and the affected users, then executes server-side with progress feedback and a per-record success/failure report on completion.
Sources & reasoning
Source lists Bulk Actions as the third feature of admin-user-management. No explicit phase assignment in the source roadmap (Phase 1 admin MVP names only invitation, deactivation, role assignment), so per the resolution rule the second non-mobilization phase 'Core Product' is used.
-
docs/source/likeperson.md · line 374admin-user-management | User Management | User CRUD, Role Assignment, Bulk Actions
Analysis
Bulk actions deliver substantial operational efficiency for larger organizations. NHF's structure (12 landsforeninger, 9 regions, 1400 lokallag) means Org Admins routinely manage hundreds of users, and per-record clicks become a real time sink at that scale. Bulk deactivation is particularly valuable during seasonal transitions, role reorganizations, or when migrating from legacy systems. Bulk operations also reduce the risk of inconsistent state - when 50 peer mentors need the same role change, doing it in one transaction avoids the partial-completion problems that arise from interrupted manual workflows. This positions the admin portal as a serious operational tool rather than a per-record editor.
Implemented as a Bulk Action Service that wraps the existing per-user mutations in a single transaction, with per-record try/catch so one bad record does not abort the batch. The toolbar appears when at least one user is selected and presents only actions the current admin is authorized to perform. Each bulk operation writes individual audit log entries (one per affected user) plus a bulk-operation header entry that ties them together for traceability. For operations affecting more than a configurable threshold (e.g. 100 users), the action is queued and processed asynchronously with a progress indicator, avoiding HTTP timeouts and giving the admin a clear status view.
Quality Assurance
Organization Administrator (primary)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator og åpne Brukeradministrasjon → Brukere.
- Huk av radavkrysningsboksen for minst to brukere i listen.
- Bekreft at den klebrige handlingslinjen vises øverst og viser antall valgte brukere.
- Trykk Deaktiver i handlingslinjen og verifiser at forhåndsvisningen viser korrekt antall brukere som vil bli berørt.
- Trykk Bekreft i bekreftelsesdialogen og vent pĂĄ resultatet.
- Bekreft at hver berørt bruker viser status Deaktivert i listen, og at eventuelle feilrader er listet opp per rad uten å blokkere de øvrige.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator og åpne Brukeradministrasjon → Brukere.
- Screen reader Sideoverskrift 'Brukere' annonseres; tab-rekkefølge: hovedmeny → sideoverskrift → filter → tabell.
- Keyboard / focus Hele navigasjonen og tabellen er nĂĄbar med Tab; ingen tastaturfeller.
- Focus visibility Synlig fokusring pĂĄ alle interaktive elementer.
-
Huk av radavkrysningsboksen for minst to brukere i listen.
- Screen reader Hver avkrysningsboks annonseres med kolonneoverskrift, brukernavn og tilstand 'avkrysset'.
- Keyboard / focus Mellomrom huker av/pĂĄ; piltaster flytter mellom rader.
- Touch target Avkrysningsboks ≥ 24×24 CSS-piksler.
-
Bekreft at den klebrige handlingslinjen vises øverst og viser antall valgte brukere.
- Live region '3 brukere valgt' annonseres via høflig live region når valget endres.
- Contrast Tellertekst og knapper har minst 4.5:1 kontrast; antall valgte formidles ikke kun med farge.
-
Trykk Deaktiver i handlingslinjen og verifiser at forhåndsvisningen viser korrekt antall brukere som vil bli berørt.
- Screen reader Bekreftelsesdialog annonseres som modal med tittel 'Deaktiver brukere' og forhĂĄndsvisningstekst.
- Keyboard / focus Esc lukker dialogen uten å utføre handlingen.
- Focus visibility Fokus flyttes automatisk til dialogen; fokus er fanget i modalen til den lukkes.
-
Trykk Bekreft i bekreftelsesdialogen og vent pĂĄ resultatet.
- Focus visibility Fokus returneres til handlingslinjen eller første berørte rad når dialogen lukkes.
- Live region 'Behandler 3 brukere…' og deretter 'Ferdig. 3 av 3 fullført.' annonseres høflig.
-
Bekreft at hver berørt bruker viser status Deaktivert i listen, og at eventuelle feilrader er listet opp per rad uten å blokkere de øvrige.
- Screen reader Statuskolonne leses opp som 'Deaktivert' per rad; feilmeldinger annonseres med radkontekst.
- Zoom Tabell og statuskolonne er fortsatt lesbar ved 200 % zoom.
- Contrast Status Deaktivert formidles med ikon + tekst, ikke kun farge; minst 4.5:1 kontrast.
Role Boundaries
4 role(s) must NOT access this feature-
Peer Mentor (Likeperson)
Logger ikke inn i Admin-portalen; ingen tilgang til brukerlisten eller bulk-handlinger. Deep-link til /admin/users returnerer 403.
-
Coordinator (Koordinator)
Logger ikke inn i Admin-portalen; ingen tilgang til brukerlisten eller bulk-handlinger. Deep-link til /admin/users returnerer 403.
-
Global Administrator
Ingen standardtilgang til organisasjonens brukerdata; bulk-handlinger er skjult med mindre tidsbegrenset støttetilgang er innvilget av Org Admin.
-
Prospective Buyer
Har ingen konto i Admin-portalen; innlogging og deep-link gir 401/403.
Expected End State
Den valgte bulk-handlingen er utført per bruker i batchen. Vellykkede rader viser ny status (f.eks. Deaktivert / ny rolle / Invitasjon sendt) og en per-rad resultatoppsummering vises, hvor eventuelle feilrader er rapportert individuelt uten å rulle tilbake de vellykkede.
Components (9)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.