2024-03-28 14:30:22 +01:00

8.9 KiB

Use Cases

Requierements

  • User0 - User ohne Account
  • UserA - generischer User
  • UserB - generischer User mit gleichen Rollen wir UserA
  • UserC - generischer User ohne Rollen
  • MaschineA - frei zugängliche Resource mit festem Ort und Stromanschluss
  • TerminalA - NFC Reader bei MaschineA, welche nur MaschinA nutzen kann
  • RolleB - Rolle mit Berechtigungen MaschineB zu nutzen
  • MaschineB - beschränkt zugängliche Resource mit festem Ort und Stromanschluss
  • TerminalB - NFC Reader bei MaschineA, welche nur MaschineB mit PIN nutzen kann
  • TerminalB - NFC Reader bei MaschineA, welche nur MaschinB mit PIN nutzen kann
  • MaschineC - frei zugängliche Resource mit festem Ort und Stromanschluss, benötigt MaschineD zum funktionieren
  • MaschineD - Maschine mit welche von MaschineC gebraucht wird
  • MaschineE - Maschine, welche von meheren Nutzer gleichzeitig verwendet werden kann
  • ManagerA - User mit Berechtigung zum Verwalten von Usern und Vergeben von Berechtigungen
  • UserB
  • CardA - FabFireCard von UserA
  • CardB - FabFireCard von UserB
  • Borepin - Client zum Interagieren von BFFH über FabAccess API
  • BFFH - Server mit FabAccess API

Assumptions

  • die Pin für alle FabFireCards eine User ist die gleiche
  • Terminals wissen für welche Maschine sie eine PIN benötigen
  • Terminals sind immer an einen Satz von Maschinen gebunden und könnten nur diese Ausleihen
  • Maschinen fallen in einen definierten State zurück, wenn der Claim disowned wird oder disown failed, wenn sich einen Maschine in einem bestimmten State befindet
  • User können entweder einen Claim oder einen Interset an der selben Resource haben

Tests

Serverdaten

User0 kann von BFFH im Bootstrape sich Informationen zu dem Serverrelease und namen holen und über die InstanceURL, sowie den Spacenamen.

Accounterzeugung

User0 geht zu ManagerA und bittet um einen Account

ManagerA öffnet Borepin, wird automatisch angemeldet

  • öffnet die Nutzerverwaltung
  • beginnt mit dem Anlegen eines neuen Nutzers
  • trägt den Nutzernamen ein
  • fügt zusätzliche Informationen hinzu
  • gerneriert ein Initialpasswort für User0
  • sagt User0 das Passwort / druckt User0 das Passwort aus / erstellt einen QR-Code mit Anmeldedaten / emuliert einen NTAG mit Anmeldedaten

User0 installiert Borepin, öffnet Borepin und

  • trägt die Serveradresse ein
  • verbindet sich mit dem Server
  • logt sich mit Username und Passwort ein

oder

  • scannt die Anmeldedaten per QR-Code / scannt die Anmeldedaten per NFC
  • verbindet sich mit dem Server und logt sich direkt ein

-> BFFH zwingt User0 ein neues Passwort zu setzen User0 setzt ein neues Passwort Borepin holt ein Token für die zukünftige Anmeldung des Gerätes

User0 kann nun Resourcen ausleihen

Rollenvergabe

UserA möchte MaschineB verwenden können

UserA geht zu ManagerA und erhält eine Einweisung für MaschineB ManagerA öffnet Borepin, wird automatisch angemeldet und

  • öffnet die Nutzerverwaltung
  • wählt UserA aus
  • fügt UserA RolleB zu

UserA kann nun Borepin öffnen, wird automatisch angemeldet und kann MaschineB nutzten

Claim

UserA steht vor MaschineA und möchte diese verwenden

UserA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA in einer Liste aus / scannt den QR-Code von MaschineA / scannt den NTAG von MaschineA
  • leiht MaschineA aus
  • schaltet den Strom von MaschineA frei
  • verwendet MaschineA
  • gibt MaschineA zurück, Strom wird gesperrt vom BFFH

UserA hat MaschineA verwendet

Transfer

UserA möchte UserB die MaschineB übergeben

UserA hatte MaschineB ausgeliehen, öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA in einer Liste aus / scannt den QR-Code von MaschineA / scannt den NTAG von MaschineA
  • generiet ein Transfer QR-Code / emuliert eine Transfer NTAG

UserB öffnet Borepin, wird automatisch angemeldet und

  • scannt Transfer QR-Code / scannt Transfer NTAG

UserB kann nun MaschineB verwenden, ohne das der Zustand der Maschine sich verändet hat

Lend/Instruct

UserA möchte UserC an MaschineB ausbilden

UserA hatte MaschineB ausgeliehen, öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA in einer Liste aus / scannt den QR-Code von MaschineA / scannt den NTAG von MaschineA
  • generiet ein Lend QR-Code / emuliert eine Lend NTAG

UserC öffnet Borepin, wird automatisch angemeldet und

  • scannt Lend QR-Code / scannt Lend NTAG
  • verwendet MaschineB
  • gibt MaschineB zurück

UserA erhält MaschineB zurück, prüft MaschineB, gibt MaschineB zurück

UserC hat MaschineB verwendet, unter Verantwortung von UserA

FabFireCard Erzeugung

UserA geht zu ManagerA und möchte ein FabFireCard erhalten

ManagerA öffnet Borepin, wird automatisch angemeldet und

  • öffnet die Nutzerverwaltung
  • wählt UserA aus
  • hält eine leere DESFire Karte auf den NFC Scanner
  • legt eine FabFireCard für UserA an und beschreibt diese
  • gibt UserA die FabFireCard - Card A

UserA öffnet Borepin, wird automatisch angemeldet und

  • geht auf seinem Profil
  • setzt eine Pin für die FabFireCard

UserA hat eine FabFireCard erhalten und eine zusätzliche Pin festgelegt

Passwortänderungen

UserA möchte sein Passwort ändern

UserA öffnet Borepin, wird automatisch angemeldet und

  • geht auf seinem Profil
  • beginnt mit dem Ändern des Passwort
  • gibt sein altes Passwort ein
  • gibt ein neues Passwort ein

UserA hat sein Passwort geändert

FabFireCard Pin ändern

UserA möchte seine PIN zur FabFireCard ändern

UserA öffnet Borepin, wird automatisch angemeldet und

  • geht auf seinem Profil
  • beginnt mit dem Ändern der Pin
  • gibt sein Passwort ein
  • gibt eine neue PIN ein

UserA hat seine PIN geändert

Passwort vergessen

UserA geht zu ManagerA und bittet darum ein neues Passwort zu erhalten

ManagerA öffnet Borepin, wird automatisch angemeldet und

  • öffnet die Nutzerverwaltung
  • wählt UserA aus
  • sagt User0 das Passwort / druckt User0 das Passwort aus / erstellt einen QR-Code mit Anmeldedaten / emuliert einen NTAG mit Anmeldedaten

Gleiches Verhalten wie bei Accounterzeugung UserA hat sein Passwort zurückgesetzt

Terminalnutzung

UserA möchte MaschineA mit CardA ausleihen

UserA steht vor TerminalA und

  • hält CardA auf den NFC Reader

TerminalA meldet sich bei BFFH und

  • leiht MaschineA für UserA aus
  • schaltet den Strom frei

UserA steht vor TerminalA und

  • gibt auf TerminalA ein, MaschineA zurückgeben

oder UserA öffnet Borepin, wird automatisch angemeldet und

  • gibt MaschinA zurück

UserA hat MaschineA mit CardA ausgeliehen und verwendet

Terminalnutzung mit PIN

UserA möchte MaschineB mit CardA ausleihen

UserA steht vor TerminalB und

  • hält CardA auf den NFC Reader -> TerminalB fordert eine PIN
  • tippt PIN ein

TerminalB meldet sich bei BFFH und

  • leiht MaschineB für UserA aus
  • schaltet den Strom frei Gleiches Verhalten wie bei Accounterzeugung

UserA hat MaschineA mit CardA ausgeliehen und verwendet

Reservieren

UserA möchte für morgen MaschineA reservieren

UserA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • geht auf reservieren und trägt ein Zeitraum ein

-> UserA erhält zum Begin der Reservierung automatisch den Claim für die MaschineA, wenn dieser verfügbar ist

oder

-> UserA erhält zum Begin der Reservierung eine Benachrichtigung, dass die Maschine gerade verwendet wird

UserA geht zu ManagerA und bittet ihn die Maschine freizugeben

ManagerA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • entfernt den Claim

-> UserA erhält automatisch den Claim für MaschineA UserA kann MaschineA im Reservierungszeitraum nutzen

Queuing

UserB verwendet gerade MaschineA und UserA möchte als nächster an MaschineA UserA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • geht auf queuing

UserB gibt MaschineA zurück -> UserA erhält automatisch ein Claim auf MaschineA UserA kann direkt nach UserB MaschineA nutzen

Intereset/Reservierung/Queuing aufhebn

UserA hat einen Interest auf MaschineA UserA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • beendet Interest

UserA hat jetzt keinen Interest auf MaschineA

Benachrichten

UserA möchte wissen wann die MaschineA frei ist UserA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • aktiviert Benachrichtigungen für MaschineA (mit Optionen, um welchen State es geht)

-> BFFH benachrichtigt UserA, dass die MaschineA frei ist -> Noftiy wird wieder gelöscht

oder

-> BFFH benachrichtigt UserA, dass die MaschineA frei ist UserA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • deaktiviert Benachrichtigungen für MaschineA

UserA wurde über Änderungen von MaschineA benachrichtigt

Abhängige Maschinen

UserA möchte MaschineC ausleihen

serA öffnet Borepin, wird automatisch angemeldet und

  • wählt MaschineA aus Liste aus
  • claimed MaschineA -> MaschineD wird von BFFH geclaimed

Kaputte Maschine melden

Multi Claim

Claim überschreiben

Register