Multi-Organization Hierarchy
Feature Detail
Description
This feature supports complex organizational structures where a parent organization contains regions, local associations, or sub-units. NHF in particular has 12 landsforeninger, 9 regions, and 1,400 lokallag, and activities must be attributable across these levels. Org Admins manage the hierarchy tree, place users and activities within it, and configure how data rolls up for reporting and oversight.
Sources & reasoning
Required by NHF's stated structure (§69) and listed as an Admin Portal core capability (§143). Placed in Core Product because the MVP admin scope (§244-247) lists user management and org settings but not hierarchy, and NHF is the org most needing it after MVP launch.
-
docs/source/likeperson.md · line 69Bredest organisasjonsstruktur: 12 landsforeninger, 9 regioner, 1 400 lokallag - aktivitetsfordeling mellom ledd må støttes.
-
docs/source/likeperson.md · line 143Multi-organization hierarchy management
Analysis
Without hierarchy support, the largest organizations cannot meaningfully use Meander - NHF's 1,400 local associations cannot be flattened into a single tenant view without losing the organizational structure that drives accountability, regional reporting, and Bufdir-level aggregation. Supporting hierarchy also enables fair attribution of volunteer effort across levels, which matters for funding allocations and for the gamification and statistics features that motivate volunteers. Strategically, this feature unlocks the platform's ability to serve umbrella organizations and federated structures common in the Norwegian non-profit landscape.
Backed by the organization_hierarchy table (one_to_many with organizations) using a parent-pointer tree or materialized path for efficient ancestor queries. The admin portal exposes a tree management UI for adding, moving, renaming, and deactivating nodes. Activities, users, and reports query against ancestor sets so a regional admin sees all sub-units. Tenant isolation is preserved - hierarchy operates within a single tenant; cross-tenant hierarchy is not supported. Authorization checks resolve the caller's position in the tree before granting visibility on sub-unit data.
Quality Assurance
Organization Administrator (primary)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator og åpne Organisasjonsadministrasjon → Hierarki.
- Trykk 'Ny node', velg type 'Region', skriv navn 'Region Vest' og velg overordnet 'Hovedforbund'. Lagre.
- Dra eller velg 'Lokallag Bergen' og knytt den som underordnet til 'Region Vest'. Bekreft endringen.
- Tildel en bruker til 'Lokallag Bergen' via brukerlisten i hierarki-panelet.
- Åpne Rapporter → Team-rapport og filtrer på 'Region Vest'. Bekreft at aggregert tall inkluderer 'Lokallag Bergen' og at noder utenfor subtreet ikke vises.
- Forsøk å opprette en sirkulær relasjon ved å sette 'Hovedforbund' som underordnet til 'Lokallag Bergen'. Bekreft at systemet avviser handlingen med tydelig feilmelding.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator og åpne Organisasjonsadministrasjon → Hierarki.
- Screen reader Sideoverskrift 'Hierarki' annonseres; landemerker (navigasjon, hovedinnhold) er korrekt merket.
- Keyboard / focus Tab-rekkefølge: sidemeny → undermeny 'Hierarki' → hovedinnhold. Aktivering med Enter.
- Focus visibility Synlig fokusring pĂĄ alle navigasjonslenker.
-
Trykk 'Ny node', velg type 'Region', skriv navn 'Region Vest' og velg overordnet 'Hovedforbund'. Lagre.
- Screen reader Dialog annonseres som modal; skjemafelter har tilknyttede label-elementer ('Navn', 'Type', 'Overordnet').
- Keyboard / focus Fokus fanges i dialog; Esc lukker; Tab sykler kun gjennom dialog-kontroller.
- Focus visibility Første felt får fokus ved åpning; obligatoriske felt merket programmatisk og visuelt.
- Touch target Knapper og select-kontroller minst 24Ă—24 CSS-piksler.
-
Dra eller velg 'Lokallag Bergen' og knytt den som underordnet til 'Region Vest'. Bekreft endringen.
- Keyboard / focus Ikke-drag alternativ tilgjengelig: 'Flytt til...'-knapp ĂĄpner velger med tastaturnavigerbar treliste (piltaster + Enter).
- Focus visibility Fokus følger valgt node; aria-selected oppdateres.
- Live region 'Lokallag Bergen flyttet under Region Vest.'
-
Tildel en bruker til 'Lokallag Bergen' via brukerlisten i hierarki-panelet.
- Screen reader Tabellrader annonseres med kolonneoverskrifter; knappen 'Tildel' har tilgjengelig navn inkludert brukernavn.
- Keyboard / focus Piltaster navigerer rader; Enter ĂĄpner tildelingsdialog.
- Live region 'Bruker tildelt Lokallag Bergen.'
-
Åpne Rapporter → Team-rapport og filtrer på 'Region Vest'. Bekreft at aggregert tall inkluderer 'Lokallag Bergen' og at noder utenfor subtreet ikke vises.
- Screen reader Filter-kontroll annonseres som combobox; valgte verdier leses opp.
- Zoom Tabell og filterpanel forblir brukbare ved 200% zoom uten horisontal scroll på primær kolonne.
- Contrast Aggregerte tall har minst 4.5:1 kontrast; subtre-tilhørighet vises ikke kun via farge (også ikon/tekst).
-
Forsøk å opprette en sirkulær relasjon ved å sette 'Hovedforbund' som underordnet til 'Lokallag Bergen'. Bekreft at systemet avviser handlingen med tydelig feilmelding.
- Screen reader Feilmelding annonseres via aria-live='assertive' og er programmatisk knyttet til feltet.
- Focus visibility Fokus flyttes til feilmeldingen eller det aktuelle feltet.
- Live region 'Handling avvist: kan ikke opprette sirkulær hierarki-relasjon.'
- Contrast Feilmelding bruker tekst + ikon, ikke kun rød farge.
Role Boundaries
4 role(s) must NOT access this feature-
Peer Mentor (Likeperson)
Hierarki-administrasjon finnes ikke i mobilappens navigasjon; ingen admin-portal-pĂĄlogging mulig for denne rollen.
-
Coordinator (Koordinator)
Koordinator logger ikke inn i admin-portalen; hierarki-skjerm ikke tilgjengelig. Deep-link returnerer 403.
-
Global Administrator
Uten gyldig tidsbegrenset støttetilgang gitt av Org Admin returnerer hierarki-endepunkter 403; tilgang logges i organisasjonens audit trail når innvilget.
-
Prospective Buyer
Ingen pĂĄlogging; salgsnettstedet eksponerer ikke admin-portalens hierarki-funksjoner.
Expected End State
Hierarkiet er oppdatert med ny region- og lokallagstruktur, brukere og aktiviteter er knyttet til riktig nivå, og aggregerte rapporter respekterer subtre-omfang uten dobbeltrapportering eller sirkulære relasjoner.
Components (8)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.