====== UserManagement ====== UserManagement bildet die Basis für die Authentifizierung und für die Autorisierung, Module, die austauschbar sein sollen, ohne das gesamte Prinzip der Benutzervewaltung austauschen zu müssen((Die Authentifizierung kann z.B. beliebig verändert werden, z.B. auf eine OAuth 2.0 Implementierung von Google, oder auf eine Windows Authentifizierung)). Hier werden Benutzerkonten eingeführt((Eine Rolle der Person)), und Systemkonten((Für die Rechtevergabe für nicht-Personen, z.B. für Schnittstellen, SAGAs oder andere Prozesse)). Auch die Lizenzierung wird hierüber verwaltet, wobei das noch in ein separates Modul ausgelagert werden könnte. ===== Aggregates ===== [[prom20:usermanagement:useraccount|UserAccount]] \\ [[prom20:usermanagement:systemaccount|SystemAccount]] \\ [[prom20:usermanagement:licencegroup|LicenceGroup]] \\ \\ UserAccount und SystemAccount leiten sich nicht von einer gemeinsamen Basisklasse ab. Der Grund ist der, dass UserAccount eine Rolle von //Person// ist, und von //AggregatePartRoot// abgeleitet ist, SystemAccount direkt von //Aggregate//. Zudem verwendet UserAccount dadurch die Id von Person, SystemAccount hat eine eigene Id. Es hat auch keinen wirklichen Vorteil, beide von derselben Basisklasse abzuleiten. Wenn man möchte, kann man beide eine gemeinsame Schnittstelle implementieren lassen, dafür sehe ich aber aktuell keine Notwendigkeit.