medium complexity extracted Organization Management Confidence: 100%
6
Components
2
Shared
0
User Stories
Yes
Analyzed

Description

This feature manages the assignment of users to one or more member associations (local chapters) within an organization. NHF specifically calls out that members can belong to up to five local associations, which complicates activity attribution and reporting. Org Admins maintain the membership records, resolve overlaps, and configure how a user's activities are credited across the associations they belong to.

Sources & reasoning

NHF (§66) explicitly requires multi-chapter membership handling to prevent double-reporting; listed as a feature of admin-organization in §378. Core Product since it depends on hierarchy and is not in the MVP admin scope.

Analysis

Business Value

Multi-association membership is not an edge case - it's the norm for active volunteers in federated Norwegian non-profits. Ignoring it causes double-counting in activity statistics, incorrect Bufdir reports, and confusion when coordinators try to determine which association 'owns' an activity. Solving it explicitly removes a frequent source of reporting errors and prevents the duplicate-activity registration problem NHF specifically called out. For the platform, getting this right early avoids painful retrofitting of statistics, reports, and the duplicate-detection feature once data has accumulated.

Implementation Notes

Backed by the member_associations table (one_to_many between users and organizations) capturing each user's membership in specific associations within the org hierarchy. The admin portal exposes a membership management surface allowing assignment, removal, and primary-association designation. Activities reference the association they were performed under; reporting queries aggregate by association while statistics deduplicate at the user level. Validation prevents a single activity from being credited to multiple associations simultaneously without an explicit split.

Quality Assurance

Organization Administrator (primary) · Global Administrator (same flow, time-bounded support access)
1
Scenarios
5
UAT Steps
18
A11y Annotations
3
Role Boundaries
Organization Administrator

Organization Administrator

Quick UAT

  1. Logg inn i Admin-portalen som Organisasjonsadministrator. Åpne Organisasjon → Medlemstilknytninger og søk opp en bruker som tilhører flere lokallag.
  2. Trykk Legg til tilknytning, velg et lokallag fra listen, og lagre.
  3. Marker ett av lokallagene som Primær tilknytning og bekreft endringen.
  4. Forsøk å legge til et sjette lokallag og bekreft at systemet blokkerer handlingen med feilmelding om maks fem tilknytninger.
  5. Fjern én tilknytning via Fjern-knappen, bekreft i dialogen, og verifiser at brukerens tilknytningsliste oppdateres umiddelbart.

Quick UAT — Accessibility

  1. Logg inn i Admin-portalen som Organisasjonsadministrator. Åpne Organisasjon → Medlemstilknytninger og søk opp en bruker som tilhører flere lokallag.
    • Screen reader Sideoverskrift 'Medlemstilknytninger' annonseres; tab-rekkefølge: hovedmeny → sideoverskrift → søkefelt → resultatliste.
    • Keyboard / focus Søkefeltet nĂĄs med Tab; piltaster navigerer treffliste; Enter ĂĄpner brukerens tilknytningspanel.
    • Focus visibility Synlig fokusring (min 2px) pĂĄ søkefelt og trefflinjer.
  2. Trykk Legg til tilknytning, velg et lokallag fra listen, og lagre.
    • Screen reader Knapp 'Legg til tilknytning' annonseres; dialog ĂĄpnes og fokus flyttes til første kontroll; dialog-rolle 'modal' kunngjøres.
    • Keyboard / focus Esc lukker dialogen; Tab er fanget inne i dialogen; lokallags-nedtrekksliste ĂĄpnes med Enter/Space og navigeres med piltaster.
    • Focus visibility Fokus flyttes til første feltet i dialogen ved ĂĄpning og tilbake til utløserknappen ved lukking.
    • Touch target ≥ 24Ă—24 CSS px pĂĄ Legg til-knapp og dialog-handlingsknapper.
  3. Marker ett av lokallagene som Primær tilknytning og bekreft endringen.
    • Screen reader Radioknapp 'Primær tilknytning' annonseres med valgt/ikke-valgt tilstand; endring kunngjøres via polite live region.
    • Keyboard / focus Piltaster bytter mellom radio-alternativer i samme gruppe; Space velger.
    • Live region 'Primær tilknytning satt til {lokallagsnavn}.'
    • Contrast Primær-status angis ikke kun ved farge — ogsĂĄ ikon og tekstetikett 'Primær'.
  4. Forsøk å legge til et sjette lokallag og bekreft at systemet blokkerer handlingen med feilmelding om maks fem tilknytninger.
    • Screen reader Feilmelding annonseres via assertive live region: 'Maks fem tilknytninger tillatt. Fjern en eksisterende før du legger til ny.'
    • Focus visibility Fokus flyttes til feilmeldingen; meldingen er programmatisk knyttet til Lagre-knappen via aria-describedby.
    • Contrast Feilmelding bruker bĂĄde ikon og tekst, ikke bare rød farge; tekstkontrast ≥ 4.5:1.
  5. Fjern én tilknytning via Fjern-knappen, bekreft i dialogen, og verifiser at brukerens tilknytningsliste oppdateres umiddelbart.
    • Screen reader Bekreftelsesdialog 'Vil du fjerne tilknytning til {lokallag}?' annonseres; etter bekreftelse leses 'Tilknytning fjernet'.
    • Keyboard / focus Tab mellom Avbryt og Bekreft i dialogen; Esc avbryter.
    • Touch target ≥ 24Ă—24 CSS px pĂĄ Fjern- og bekreftelsesknapper.
    • Live region 'Tilknytning til {lokallag} fjernet. Brukeren har nĂĄ {n} aktive tilknytninger.'

Role Boundaries

3 role(s) must NOT access this feature
  • Peer Mentor (Likeperson)

    Medlemstilknytninger er en Admin-portal-funksjon. Likepersoner logger kun inn i Mobilappen; skjermen finnes ikke i mobilnavigasjonen, og direkte API-kall returnerer 403.

  • Coordinator (Koordinator)

    Koordinatorer har ikke pĂĄlogging til Admin-portalen. Funksjonen er ikke synlig i deres mobilkontekst; deep-link til admin-URL gir innloggings-redirect uten tilgang.

  • Prospective Buyer

    Salgsnettstedet har ingen pĂĄlogging. Ingen rute til Medlemstilknytninger eksisterer; funksjonen er fullstendig isolert fra det offentlige domenet.

Expected End State

Brukerens tilknytningssett er oppdatert i Member Association Store med maks fem aktive lokallag og nøyaktig én primær tilknytning. Endringen er umiddelbart synlig på Member Associations-siden, brukes av attribusjonslogikken for å hindre dobbeltrapportering på tvers av lokallag, og er logget i organisasjonens revisjonslogg med utførende administrators identitet og tidsstempel.

User Stories

No user stories have been generated for this feature yet.