![]() |
Baumstruktur mit Rechten
Hallo zusammen,
ich glaube ich brauche mal ein par Anregungen. Es geht um folgendes: Ich bastel an einem PHP-Projekt mit einer Benutzerverwaltung, in dem ich eine Baumstruktur habe (in meinem Fall ein Menü), die in einer MySQL-Datenbank liegt. Nun soll aber nicht jeder Benutzer Zugriff auf die ganze Struktur haben. Dazu wollte ich einfach eine Relation einführen, die einen Knoten ggf. mit einem Benutzer in Verbindung bringt, wenn dieser bestimmte Zugriffsrechte hat (hierbei würde ich gerne auch eine mögliche Vererbung einbauen). Nun stellt sich mir die Frage wie ich das ganze Heckmeck in die Datenbank bekomme. Für eine menüartige Baumstruktur würden sich ja Nested Sets anbieten aber die Farge ist, ob das Sinn macht, wenn ich die Struktur via "Rechteauslese" zerschnibbel. Eine andere Idee wäre einfach eine Tabelle zu nehemen und für jeden Knoten einen evtl. Vater anzugeben. Das zurechtschnibbeln könnte ich dann in PHP machen. Ich bin für jeden Vorschlag dankbar... |
Re: Baumstruktur mit Rechten
Ich würde die Rechte in eine eigene Relation auslagern.
|
Re: Baumstruktur mit Rechten
Zitat:
Zitat:
Ich dachte eben an eine Tabelle mit KnotenID, BenuterID und Recht (+ evtl. Vererbung?)... |
Re: Baumstruktur mit Rechten
So hatte ich es auch gemeint. Wie meinst du die Vererbung auf Nutzer- oder Astebene?
|
Re: Baumstruktur mit Rechten
Ich dachte an die Äste... also Knoten A hat für Benutzer X ein Recht, welches auf die Unterbäume weitervererbt wird.
|
Re: Baumstruktur mit Rechten
Je nach implementierung der Baumanzeige ( Rekursion) ergibt sich das ja automatisch.
|
Re: Baumstruktur mit Rechten
Das mag sein... die Frage ist wie macht man es am Besten?
Wenn man mit Nested Sets arbeitet und man die "Auslese" via SQL gestaltet wird man wohl für jeden Zweig mit Vererbung ein extra Query machen müssen. Das ist eher nicht so elegant oder? Also besser alles holen und mittels PHP verarbeiten? Dann wäre ja die Lösung ohne Nested Sets und mit VaterID angebracht...? |
Re: Baumstruktur mit Rechten
Zitat:
Rechteverwaltung ist ein sehr schönes Kapitel in der Unternehmenssoftwareentwicklung, die Delphi-Komponenten die ich bisher gesehen habe, waren alle recht einfach gestrickt (und daher mussten wir uns etwas eigenes bauen, das halbwegs funktioniert). Falls ich es neu progrommieren würde: RBAC mit Rollenmappings fällt mir da als Ansatz ein, also Rollen die bestimmten Funktionen zugeordnet sind, und innerhalb der Benutzerverwaltung können die Benutzer einer oder mehreren Gruppen zugeordnet werden. Als Sahnehäubchen dient das Rollenmapping dazu, die Namen der Rollen im Programm mit den Rollennamen in der Benutzerverwaltung zu mappen. Also User1 -> GruppeA -> Rolle1 -> Rechte Konkret: 'Maier' in Gruppe 'Personalsachbearbeitung', diese Gruppe wird auf die Rolle 'Human Resources' gemappt, und dieser Rolle werden die Rechte zugeordnet. |
Re: Baumstruktur mit Rechten
Vielen Dank für die ausführliche Antwort!
Role Based Access Control hört sich ganz gut an, aber was mich noch interessieren würde ist wie das ganze in der Baumstruktur verankert wird? Wichtig wäre mir auch noch ein Rat zum Thema Speicherung: In welcher Form lege ich den Baum am besten in der Datenbank ab und wo verarbeite ich das ganze am besten? Momentan tendiere ich dazu einfach die ganze Struktur aus der Datenbank zu lesen und mittels PHP die Rechte darauf anzuwenden. Nur weiß ich nicht wie ich das mit der Vererbung hinbekommen soll. |
Re: Baumstruktur mit Rechten
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz