Bulk Actions
Feature Detail
Description
Allows Organization Admins to perform operations - deactivate, assign roles, move between org units - on multiple selected users simultaneously from the Admin Web Portal user list. A contextual multi-select toolbar appears when users are checked; destructive operations require an explicit confirmation modal showing the affected count. The backend processes operations transactionally and returns a per-record result manifest so partial failures are visible and the audit trail captures every affected record.
Sources & reasoning
Blueprint tags bulk-actions [v1.0], placing it after MVP. NHF's 1,400 local chapters (line 109) is the primary driver - individual user management at that scale is operationally impractical, motivating batch operations as a near-term follow-on to core User CRUD. No source doc phase evidence places it at MVP; the blueprint's v1.0 tag is authoritative. Target release is v1.0.
-
docs/source/likeperson.md · line 109Bredest organisasjonsstruktur: 12 landsforeninger, 9 regioner, 1 400 lokallag - aktivitetsfordeling mellom ledd må støttes.
-
docs/source/likeperson.md · line 188Coordinators and Peer Mentors are managed inside the admin portal (invitations, role assignment, deactivation) but never log in to it
Analysis
NHF's 1,400 local chapters make individual user management impractical for seasonal housekeeping - deactivating departed volunteers or reassigning users after restructures can involve hundreds of records at once. Delayed access revocation after volunteer departures creates security exposure; bulk deactivation closes that window efficiently. For the platform's largest prospective customers, administrative efficiency is a key retention factor: high-volume organizations that find per-user management untenable may revert to manual processes or seek competing tools. Bulk operations also reduce transcription errors inherent in repetitive individual edits.
BulkActionToolbar is a sticky bar appearing when users are selected in the list, calling POST /api/v1/users/bulk. The backend processes operations transactionally, returning a per-record results manifest so partial failures are surfaced rather than silently discarded. Select-all scopes to the current filter result set to prevent accidental mass operations; destructive actions require a confirmation modal with affected-user count. Session revocation for bulk-deactivated users is queued asynchronously to avoid blocking the API response. All bulk operations are written to the audit log with a shared batch identifier linking all affected records.
Quality Assurance
Organization Administrator (primary)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Brukeradministrasjon → Brukere.
- Kryss av én eller flere brukerrader i listen. Bekreft at verktøylinjen for massehandlinger vises med korrekt antall valgte brukere.
- Velg operasjonen «Deaktiver» i verktøylinjen. Bekreft at en bekreftelsesdialog åpnes og viser antall berørte brukere.
- Bekreft handlingen i dialogvinduet. Bekreft at operasjonen sendes til serveren og at en fremdriftsindikator vises.
- Bekreft at resultatmanifestet vises med per-bruker-status (vellykket / mislykket) for alle valgte poster.
- Naviger til Revisjonslogg og bekreft at det er opprettet én revisjonshendelse per berørt bruker.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Brukeradministrasjon → Brukere.
- Screen reader Sideoverskrift 'Brukere' annonseres ved lasting; navigasjonslenker har synlige tekstlabeler.
- Keyboard / focus Tab-rekkefølge: toppmeny → sidemeny → søkefelt → tabell.
-
Kryss av én eller flere brukerrader i listen. Bekreft at verktøylinjen for massehandlinger vises med korrekt antall valgte brukere.
- Screen reader Avmerkingsboks annonseres med 'ikke avmerket' / 'avmerket' og radidentifikator. Verktøylinjen annonseres dynamisk når den vises.
- Keyboard / focus Space aktiverer avmerkingsboks; Shift+Klikk for rekkevalg er tilgjengelig via tastatur.
- Focus visibility Synlig fokusring på avmerkingsboks og verktøylinjens knapper.
- Touch target Avmerkingsbokser og knapper er minst 24Ă—24 CSS px.
- Live region '2 brukere valgt' kunngjøres som polite live region når valget endres.
-
Velg operasjonen «Deaktiver» i verktøylinjen. Bekreft at en bekreftelsesdialog åpnes og viser antall berørte brukere.
- Screen reader Dialogtittel og antall berørte brukere annonseres ved åpning; fokus flyttes til dialogen.
- Keyboard / focus Enter aktiverer Deaktiver-knappen; fokus fanges inne i dialogen (modal trap).
- Focus visibility Fokus settes på primærknappen i dialogen ved åpning; Escape lukker uten å utføre handlingen.
- Contrast Destruktiv handling (Deaktiver) skilt fra avbryt med tekst og form, ikke kun farge.
-
Bekreft handlingen i dialogvinduet. Bekreft at operasjonen sendes til serveren og at en fremdriftsindikator vises.
- Screen reader Bekreft-knapp annonseres; fremdriftsindikator med rolle='status' annonseres som 'Behandler…'.
- Keyboard / focus Enter på Bekreft-knapp sender forespørsel; Escape er deaktivert under pågående operasjon.
- Live region 'Behandler 3 brukere…' kunngjøres som polite live region.
- Zoom Dialog og fremdriftsindikator er brukbare ved 200 % zoom uten overlapping.
-
Bekreft at resultatmanifestet vises med per-bruker-status (vellykket / mislykket) for alle valgte poster.
- Screen reader Resultatliste annonseres; feilposter leses med årsak, ikke kun rødt ikon.
- Keyboard / focus Tab navigerer gjennom resultatradene; Enter ĂĄpner brukerdetalj for feilposter.
- Live region 'Massehandling fullført: 2 vellykket, 1 mislykket' kunngjøres som assertive live region.
- Contrast Vellykket/mislykket-status formidles med ikon + tekst, ikke kun grønn/rød farge (4.5:1).
-
Naviger til Revisjonslogg og bekreft at det er opprettet én revisjonshendelse per berørt bruker.
- Screen reader Tabellrader annonseres med kolonneoverskrifter; filterkontroller er merket.
- Keyboard / focus Piltaster navigerer i revisjonstabellen; sortering tilgjengelig via tastatur.
- Focus visibility Synlig fokusring pĂĄ filterknapper og tabellrader.
Role Boundaries
3 role(s) must NOT access this feature-
Peer Mentor
Admin-portalen er ikke tilgjengelig for Likepersoner; påloggingsforsøk omdirigeres til mobilappen. Bulk Actions-skjermen finnes ikke i mobilnavigasjonen; direkte URL-tilgang returnerer 403.
-
Coordinator
Admin-portalen er ikke tilgjengelig for Koordinatorer; de forvaltes som dataposter av Org Admin. Brukeradministrasjon → Massehandlinger-URL returnerer 403.
-
Prospective Organization Representative
Ingen autentisert tilgang til Admin-portalen; salgsnettstedet er eneste tilgjengelige overflate.
Expected End State
Alle valgte brukere er behandlet transaksjonelt; statusen for hver post (deaktivert, rolletildelt, eller flyttet til ny org-enhet) er oppdatert i databasen. Et per-post resultatmanifest er synlig i portalen, og én revisjonslogg-hendelse per berørt bruker er skrevet til audit_log_entries-tabellen.
Components (20)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.