Projekt

Allmänt

Profil

Handlingar

Features #255

öppen
CA CA

Samling: Artikelstyrd auktorisering (efter första releasen)

Features #255: Samling: Artikelstyrd auktorisering (efter första releasen)

Tillagd av Codex API för 19 dagar sedan.

Status:
New
Prioritet:
Normal
Tilldelad:
Kategori:
-
Versionsmål:
-
Startdatum:
2026-09-12
Deadline:
% Klart:

0%

Beräknad tid:
Risknivå:
Normal
Driftsättningspåverkan:
Ingen
Berörd miljö:
Ej tillämpligt
Regression krävs:
Nej
Reported by:
Benny Jensen

Beskrivning

Prioriteringsbeslut

Framtida backlog efter första produktionsreleasen (1.0). Ingen implementation ska startas nu. Detta är inte ett releasekrav eller en blockerare för första releasen. Ingen målversion sätts ännu.

Samlingsärende

Detta samlar användarens funktionsunderlag, inte ett enda genomförandeärende. Vid senare prioritering ska arbetet delas upp i små länkade underärenden med var sitt konkret resultat, explicit Definition of Done och verifieringsmiljö. Samlingsärendet avslutas först när överenskommen delomfattning är klar. Artikelkonfiguration/datamodell, QR-auktorisering, serverkontroll/återkallande och administrationsvyer är kandidater för senare uppdelning, inte arbete att starta nu.

Att precisera inför implementation

  • Vad verifierat medlemskap innebär, skilt från kontots frivilliga föreningskoppling. Vanliga QR-besök skapar inte medlemskap eller auktorisering.
  • Hur administratören säkerställer att rätt konto auktoriseras; tokenlivslängd, återanvändning och avslut.
  • Vems auktorisering som krävs vid köp åt deltagare samt återkallande under pågående köp.
  • Normalartiklar utan krav behåller sitt befintliga flöde, även för gäster.

Avgränsning

Ingen kod, databasändring, driftsättning eller föreningsspecifik kvalifikationskontroll nu. Underlaget nedan bevaras för senare förfining.

Funktion: Artikelstyrd auktorisering

Syfte

Föreningsadministratören ska kunna konfigurera en artikel så att den endast får användas eller köpas av medlemmar som föreningen uttryckligen har auktoriserat för artikeln.

Auktoriseringen ska vara en generell funktion kopplad till artikel + medlem + förening. Systemet ska inte känna till eller kontrollera orsaken till att auktorisering krävs.

Exempelvis kan en skytteförening använda funktionen för en artikel som representerar användning av lånevapen. Föreningen kan då själv kontrollera att medlemmen exempelvis har genomfört grönt kort och uppnått ett visst skjutresultat innan medlemmen auktoriseras.

Sådana bakomliggande kvalifikationer ligger utanför Föreningskiosk och ska inte modelleras eller valideras av systemet.


Artikelinställning

En artikel ska kunna markeras med exempelvis:

Kräver medlemsauktorisering

När denna inställning är aktiverad gäller följande:

  • Artikeln får endast användas av en inloggad användare med medlemskonto.
  • Medlemmen måste ha en aktiv auktorisering för den aktuella artikeln.
  • Auktoriseringen gäller inom den aktuella föreningen.
  • En medlem som saknar auktorisering får inte genomföra användning/köp av artikeln.
  • Gäster eller tillfälliga köpare utan konto kan inte använda en artikel som kräver medlemsauktorisering.

Auktorisering av medlem

Föreningsadministratören ska kunna öppna artikelns funktion för auktorisering.

Flödet ska vara:

  1. Föreningsadministratören öppnar aktuell artikel.
  2. Administratören väljer Auktorisera medlem.
  3. Systemet genererar en QR-kod kopplad till den aktuella artikeln och föreningen.
  4. Medlemmen skannar QR-koden med sin telefon.
  5. Om medlemmen inte redan är inloggad ska medlemmen först logga in på sitt konto.
  6. Systemet identifierar medlemmen genom det inloggade kontot.
  7. Medlemmen tilldelas auktorisering för den aktuella artikeln.
  8. Systemet visar en tydlig bekräftelse för medlemmen och föreningsadministratören.

Administratören behöver alltså inte manuellt söka fram eller skriva in medlemmen.

QR-koden används endast som metod för att koppla den medlem som skannar koden till den artikel som administratören för tillfället auktoriserar.


Behörighetskontroll

När en artikel med Kräver medlemsauktorisering används ska systemet kontrollera:

Är användaren inloggad?
    Nej -> artikeln får inte användas.

Är användaren medlem i aktuell förening?
    Nej -> artikeln får inte användas.

Kräver artikeln medlemsauktorisering?
    Nej -> normalt artikelflöde.

Har medlemmen aktiv auktorisering för artikeln?
    Ja -> normalt artikelflöde fortsätter.
    Nej -> artikeln får inte användas.

Kontrollen ska ske på serversidan och får inte enbart baseras på vad användargränssnittet visar.


Auktoriseringens livscykel

En auktorisering ska minst innehålla koppling mellan:

förening
medlem/användare
artikel
status
datum för auktorisering
vem/vilken administratör som initierade auktoriseringen

En auktorisering gäller tills den återkallas.

Föreningsadministratören ska därför kunna:

  • se vilka medlemmar som är auktoriserade för en artikel,
  • se vilka artikelauktoriseringar en viss medlem har,
  • återkalla en auktorisering.

Efter återkallande får medlemmen inte längre använda artikeln.


QR-kodens säkerhet

QR-koden ska inte i sig representera en permanent behörighet.

Den ska innehålla eller referera till en tillfällig auktoriseringssession/token som identifierar:

  • föreningen,
  • artikeln,
  • auktoriseringsförfarandet.

Token ska vara svår att gissa och valideras på serversidan.

QR-koden bör ha begränsad giltighetstid så att en fotograferad eller tidigare sparad QR-kod inte kan användas senare utan att en föreningsadministratör aktivt har öppnat auktoriseringsläget.

När administratören avslutar auktoriseringsläget ska den aktuella QR-koden inte längre kunna användas.


Ansvarsgräns

Föreningskiosk ska inte innehålla regler för varför en medlem får eller inte får auktoriseras.

Systemet ska exempelvis inte känna till begrepp såsom:

  • grönt kort,
  • bronsmärke,
  • utbildningsnivå,
  • licens,
  • ålder,
  • certifikat eller andra föreningsspecifika kvalifikationer.

Det är föreningsadministratörens ansvar att kontrollera eventuella krav innan auktoriseringen genomförs.

Föreningskiosk hanterar endast resultatet:

Den här medlemmen är auktoriserad att använda den här artikeln i den här föreningen.


Exempel: lånevapen

Föreningen skapar artikeln:

Namn: Lånevapen
Pris: 50 kr
Kräver medlemsauktorisering: Ja

Medlemmen Anna har genomfört de krav som föreningen ställer för att få använda lånevapen.

En föreningsadministratör:

  1. öppnar artikeln Lånevapen,
  2. väljer Auktorisera medlem,
  3. visar den genererade QR-koden för Anna,
  4. Anna skannar QR-koden och loggar in,
  5. systemet registrerar:
Anna
+ aktuell förening
+ artikeln Lånevapen
= auktoriserad

Anna kan därefter använda/köpa artikeln.

Medlemmen Erik, som inte har auktoriserats, kan se artikeln om föreningen tillåter det men kan inte genomföra användningen/köpet.


Designprincip

Funktionen ska implementeras som en generell egenskap hos artiklar och inte som en specialfunktion för exempelvis lånevapen.

Samma mekanism ska senare kunna användas för andra typer av artiklar där föreningen behöver kontrollera behörighet, exempelvis:

  • tillgång till särskild utrustning,
  • avancerade träningspass,
  • maskiner eller lokaler,
  • certifieringskrävande aktiviteter,
  • funktionärsartiklar,
  • andra föreningsspecifika behörigheter.

Grundmodellen är därför:

Artikel
    |
    +-- kräver_authorisering = true/false

Artikelauktorisering
    |
    +-- förening
    +-- artikel
    +-- medlem
    +-- status
    +-- auktoriserad_at
    +-- auktoriserad_av

Artikelns affärslogik ska endast fråga om auktoriseringen finns och är aktiv. Orsaken till auktoriseringen ligger utanför systemets domän.


Acceptanskriterier

Framtida samlingsärende: användarens underlag bevarat; uttryckligen utanför första releasen och utan implementation nu. Inför genomförande skapas avgränsade underärenden med egen DoD och verifieringsmiljö. Samlingen avslutas först när överenskommen delomfattning är verifierad.

Ingen data att visa

Handlingar

Finns även som: PDF Atom