Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Best practice: Benutzerverwaltung mit Datenbankanbindung

  Alt 30. Apr 2013, 13:24
Also es gibt User, Groups und Permissions (Rechte).
Die Permissions kann man den Usern aber auch den Gruppen zuteilen.
Es besteht als einen N:M Beziehung zwischen User und Permissions als auch zwischen Groups und Permissions.

Wenn ein User sich anmeldet, dann sammelt man alle seine Permissions in einer Liste.
Der User kann Mitglied in mehreren Gruppen sein.
Also erhält der User weitere Permissions aus diesen Gruppen.

Eine Permission könnte z.B. sein:
Code:
Permission_Edit_Global_Config (Benutzer darf globale Konfiguration ändern)
Dann gibt es lokal in jedem Formular / Datenmodul eine Zuordnung von Permissions zu bestimmten Properties von Komponenten.
Das könnte z.B. so aussehen:
Delphi-Quellcode:
PanelConfig.Enabled := SecurityManager.HasPermission('Permission_Edit_Global_Config');
QueryPreise.ReadOnly := not SecurityManager.HasPermission('Permission_Change_Prices');
MenuItemDebug.Visible := SecurityManager.HasPermission('Permission_Debug');
Es gibt hauptsächlich 3 Properties, die von Interesse sind: Enabled, Visible und ReadOnly.
Mit Hilfe von RTTI kann man die Zuordnung zwischen Komponenten-Properties und Permissions zur Laufzeit herstellen.

Du kannst es dir aber auch einfach machen und die TMS Security System Komponenten (früher: Uil Security) kaufen.
  Mit Zitat antworten Zitat