Role Assignment
Feature Detail
Description
Enables Org Admins to assign and modify roles for users within their organization through a dedicated assignment panel. The four defined roles - Peer Mentor, Coordinator, Organization Administrator, and Global Administrator - are presented as selectable options with clear descriptions of their access boundaries and capabilities. Role changes take effect immediately and propagate to the mobile app's session bootstrap, ensuring users see the correct navigation and capabilities on their next session refresh. The panel surfaces role descriptions inline so admins understand what they are granting before confirming.
Sources & reasoning
Source lists Role Assignment as an explicit feature of admin-user-management and ties role-based access to the four-role model. MVP scope for admin explicitly includes rolletildeling (role assignment).
-
docs/source/likeperson.md · line 374admin-user-management | User Management | User CRUD, Role Assignment, Bulk Actions
-
docs/source/likeperson.md · line 189-1934 defined user roles: Peer Mentor (Likeperson), Coordinator, Organization Administrator (Org Admin), Global Administrator
-
docs/source/likeperson.md · line 244-247Brukeradministrasjon (invitere, deaktivere, rolletildeling)
Analysis
Role assignment is the gate that controls who can do what across the platform. Without it, every user would have identical access, breaking the core access model where Peer Mentors and Coordinators see different home dashboards, only Org Admins can run Bufdir exports, and Global Admins are kept out of operational data by default. For organizations like NHF with 12 landsforeninger and 1400 lokallag, granular role assignment is essential to scale coordinator oversight without giving every volunteer admin-level capabilities. It also protects sensitive workflows (encrypted assignments, expense approval) by ensuring only authorized roles can access them.
Implemented as a panel embedded in the user edit page plus a dedicated assignment screen for bulk reassignment scenarios. The Role Assignment Service writes to the `user_roles` join table and emits an audit log entry on every change. Role changes invalidate the user's session-bootstrap cache so the next API call returns the updated role set. The UI exposes only roles the acting admin is permitted to assign - Org Admins cannot create Global Admins, and the surface enforces the tenant isolation rules from the role model. The mobile app re-reads role claims on token refresh, so a demoted coordinator loses coordinator surfaces within minutes without a forced re-login.
Quality Assurance
Organization Administrator (primary) · Global Administrator (same flow, requires time-bounded support grant)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Brukeradministrasjon â Brukere.
- SÞk opp en eksisterende bruker (f.eks. en likeperson) og Äpne brukerens redigeringsside.
- Ă pne panelet Rolletildeling. Bekreft at gjeldende rollemedlemskap vises korrekt.
- Legg til rollen Koordinator i tillegg til Likeperson, og trykk Lagre.
- Bekreft at suksessmelding vises og at brukerens rollemedlemskap nÄ viser bÄde Likeperson og Koordinator.
- ForsĂžk Ă„ tildele rollen Global administrator. Bekreft at handlingen avvises med tydelig feilmelding om ulovlig rolleovergang.
- Fjern rollen Koordinator, lagre, og bekreft at brukeren tilbakestilles til kun Likeperson.
Quick UAT â Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator og Ă„pne Brukeradministrasjon â Brukere.
- Screen reader Sideoverskrift 'Brukere' annonseres; landmark-navigasjon fĂžrer til hovedinnhold.
- Keyboard / focus Tab-rekkefĂžlge: hovednavigasjon â side-navigasjon â sĂžkefelt â brukertabell.
- Focus visibility Synlig fokusring pÄ alle interaktive elementer.
-
SÞk opp en eksisterende bruker (f.eks. en likeperson) og Äpne brukerens redigeringsside.
- Screen reader SĂžkefeltet annonseres som 'SĂžk brukere, kombinasjonsboks'; resultater oppdateres med polite live region.
- Keyboard / focus Piltaster navigerer rader i resultatlisten; Enter Äpner brukeren.
- Live region 'Antall treff: N' annonseres nÄr sÞkeresultatet oppdateres.
-
Ă pne panelet Rolletildeling. Bekreft at gjeldende rollemedlemskap vises korrekt.
- Screen reader Panelets overskrift 'Rolletildeling' annonseres som region; nÄvÊrende roller leses som liste.
- Focus visibility Fokus flyttes inn i panelet ved Äpning; lukk-knapp er nÄbar med Tab.
- Contrast Rollebadges har minst 4.5:1 kontrast og status formidles ikke kun via farge â ogsĂ„ med ikon og tekstetikett.
-
Legg til rollen Koordinator i tillegg til Likeperson, og trykk Lagre.
- Keyboard / focus Avmerkingsboks for Koordinator nÄs med Tab; Mellomrom slÄr pÄ/av.
- Focus visibility Lagre-knapp har synlig fokusring; deaktivert tilstand annonseres nÄr ingen endringer er gjort.
- Touch target Avmerkingsbokser og Lagre-knapp er â„ 24Ă24 CSS-piksler.
-
Bekreft at suksessmelding vises og at brukerens rollemedlemskap nÄ viser bÄde Likeperson og Koordinator.
- Live region 'Rollene er oppdatert. Bruker har nÄ rollene Likeperson og Koordinator.' annonseres via polite live region.
- Zoom Suksessmelding og oppdatert rolleliste er fullt synlig ved 200 % zoom uten horisontal scrolling.
-
ForsĂžk Ă„ tildele rollen Global administrator. Bekreft at handlingen avvises med tydelig feilmelding om ulovlig rolleovergang.
- Screen reader Feilmelding er knyttet til kontrollen via aria-describedby og annonseres ved fokustap.
- Live region 'Ulovlig rolletildeling: Organisasjonsadministrator kan ikke tildele rollen Global administrator.' annonseres som assertive.
- Contrast Feiltilstand formidles med ikon + tekst, ikke kun rĂžd farge.
-
Fjern rollen Koordinator, lagre, og bekreft at brukeren tilbakestilles til kun Likeperson.
- Keyboard / focus Avmerkingsboks fjernes med Mellomrom; Tab fĂžrer videre til Lagre.
- Live region 'Rollen Koordinator er fjernet. Bruker har nÄ rollen Likeperson.' annonseres polite.
Role Boundaries
3 role(s) must NOT access this feature-
Peer Mentor (Likeperson)
Likepersoner logger kun pÄ mobilappen og har ingen tilgang til Admin-portalen. Deep-link til /admin/users/* returnerer 403 og rolletildelingspanelet er aldri synlig.
-
Coordinator (Koordinator)
Koordinatorer logger kun pÄ mobilappen. Selv om de administrerer likepersoner operasjonelt, kan de ikke tildele eller endre roller. Deep-link til Admin-portalens rolletildeling returnerer 403.
-
Prospective Buyer
Har ingen konto i plattformen og kan ikke logge inn i Admin-portalen. Alle admin-URLer returnerer 401/403.
Expected End State
Brukerens rollemedlemskap reflekterer de gyldige rollene som ble tildelt eller fjernet, ulovlige rolleoverganger blokkeres med tydelig feilmelding, og hver endring loggfĂžres i organisasjonens revisjonslogg med utfĂžrende administrators identitet og tidsstempel.
Components (9)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.