• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Gruppenrechte speichern (Wie würdet ihr es machen?)

TecEye

New member
Also ich steh vor der Aufgabe Benutzern Gruppenrechte mit Unterebenen zuzuweisen. Hier meine Idee (von der ich selbst noch nicht überzeugt bin)

Also ich lege eine DB Tabelle an "Gruppenrechte" da kommt jetzt zB. Administrator, Moderator, Sekretärin, Verwaltung, Buchhaltung usw.
Zu den einzelnen Gruppenrechten gibt es verschiedene Module, die auf on/off gestellt werden können, zB. Stammdaten, Benutzerverwaltung, Kassensystem, usw.
Dazu dachte ich mir leg ich Spalten an, denn es kommt noch die Berechtigung auf Feldebene, die ich dann in arrays Speichern wollte in den Feldern der einzelnen Module und zwar haben die Felder jeweils die Rechte lesen,schreiben,ausführen, die dazugehörige Titulierung, bzw Zuweisung im Code habe ich mit einem Kürzel versehen, das ganze sieht dan wie folgt aus

| code | name | stammdaten | benutzerverwaltung | kassensystem |
----------------------------------------------------------------------------------------------------------------------------------------
| md5() | Verwaltung | 1|ST001,1,0,0|ST002,1,1,1|... | 1|ST001,1,0,0|ST002,1,1,1|... | 0 |
----------------------------------------------------------------------------------------------------------------------------------------
| md5() | Buchhaltung | 1|ST001,1,0,0|ST002,1,1,1|... | 1|ST001,1,0,0|ST002,1,1,1|... | 1|ST001,1,0,0|ST002,0,1,1|... |

der erste wert bedeutet ob das Modul überhaupt angezeigt wird 1 ja, 0 nein
dann folgen die arrays mit den Unterebenen ST002,0,1,1
ST002 ist in dem Fall zB das Feld Vorname der gelesen, geändert und ausgeführt werden darf...

Ich hoffe ihr könnt mir folgen. Das mit den Arrays macht mir sorgen mit der Performance, weil es ein parr Hundert werden, und das bei allen Modulen und das gesehen auf 10-20 Gruppenrechten kommt da ne menge zusammen.

Hat da ev jemand einen anderen Lösungsansatz?
 
Ich würde das so lösen: Es gibt Benutzer, Profile, Einzelberechtigungen und meinetwegen auch noch Funktionsmodule. Einem Profil können beliebig viele Einzelberechtigungen und Funktionsmodule zugewiesen werden. Und einer Person kann (je nach pers. Geschmack) ein oder mehrere Profile zugewiesen werden.

Durch die Zwischenebene Profile bist du nach beiden Seiten sehr flexibel. Einerseits kannst du über das Profil schnell prüfen, ob eine Berechtigung für ein Funktionsmodul bzw. eine Einzelberechtigung besteht und danach Code ausführen, andererseits kannst du bei den Benutzern sehr flexibel die Rechte und Funktionen ändern, brauchts nämlich immer nur das/die Profile anfassen, nicht die Benutzer selbst. Das macht auch die Benutzeradministration einfacher und entkoppelt sie von den Personen. Meistens sind ja technische Admins keine disziplinarischen Vorgesetzten und sollen deshalb möglichst garnichts von oder über einzelne Personen sehen.
 
klar, meine vorgehensweise behinhaltet die zuweisung der gruppenrechte an die Benutzer, also jeder Benutzer bekommt ein Gruppenrecht zugeteilt. Damit mehrere Benutzer das selbe Gruppenrecht benutzen können, was die Administrierung wesentlich vereinfacht. Das war schon mein Gedanke ;) Mir geht es hier in erster Linie um die Umsetzung in der Datenbank. Haste da eine patente preformanceschonende Lösung parat?
 
Zurück
Oben