Hallo!
Ich dachte ja immer es wäre eine gute Idee ein Rechtesystem zu schreiben, dass auf dem binären Zahlensystem aufbaut, doch wurde ich ja nun eines Besseren belehrt und möchte mich daher an die Entwicklung eines neuen Systems setzen. In dem Thread, in dem ich mein Binäres Rechtesystem vorgestellt hatte, wurden ja schon einige Alternativen genannt, wie ich ein solches System aufbauen könnte.
Eine Möglichkeit wäre natürlich alle Rechte eines Nutzers in eine Spalte rights in die Usertabelle zu schreiben und einfach durch Kommata zu separieren. Das halte ich bei großen Systemen für eine absolut unübersichtliche, Performance fressende und vorallem schlecht zu händelnde Variante.
Manko 10 hatte da denke ich schon eine deutlich bessere Alternative. Seine Idee war es drei Tabellen für die User, die Rechte (oder geschützten Bereiche) sowie eine Tabelle in der diese Zusammengeführt werden, also die Benutzer bezogenen Rechte (Permissions), zu erstellen. Auf diese Weise könnte man relativ einfach Module hinzufügen oder auch entfernen.
Schön fand ich auch die Idee von dr.e das ganze über Beziehungen zu regeln. Allerdings halte ich diesen Ansatz für etwas zu komplex. Man könnte an dieser Stelle vielleicht ansetzen und anstatt mit tausenden Tabellen mit Nested Sets arbeiten. Käme mir auch ganz geöegen, da ich mich bereits mit diesem Thema beschäftigt habe.
Ich würde jetzt auf der Idee von Manko 10 aufbauen und eine drei Tabellen Struktur aufbauen. Doch anstatt einer Tabelle, in der nur die existierenden Bereiche gespeichert sind, würde ich eine Tabelle einfügen, die auf Nested Sets aufbaut. Durch die Baumstruktur ist es nun sehr einfach möglich Rechte zur Verarbeitung eines, eines Bereichs oder allen Artikeln zu vergeben. Zudem kann man duch die Baumstruktur auch sehr sehr einfach verschiedene Navigationen von einander trennen, diese Navigationen individuell sortieren, weitere Module einbinden oder eine Sitemap erstellen lassen.
Was haltet ihr von einem solchen Ansatz? Gibt es Anregungen, Fragen oder weiterführende Ideen? Freue mich über jede Wortmeldung.
MfG, Andy
Ich dachte ja immer es wäre eine gute Idee ein Rechtesystem zu schreiben, dass auf dem binären Zahlensystem aufbaut, doch wurde ich ja nun eines Besseren belehrt und möchte mich daher an die Entwicklung eines neuen Systems setzen. In dem Thread, in dem ich mein Binäres Rechtesystem vorgestellt hatte, wurden ja schon einige Alternativen genannt, wie ich ein solches System aufbauen könnte.
Eine Möglichkeit wäre natürlich alle Rechte eines Nutzers in eine Spalte rights in die Usertabelle zu schreiben und einfach durch Kommata zu separieren. Das halte ich bei großen Systemen für eine absolut unübersichtliche, Performance fressende und vorallem schlecht zu händelnde Variante.
Manko 10 hatte da denke ich schon eine deutlich bessere Alternative. Seine Idee war es drei Tabellen für die User, die Rechte (oder geschützten Bereiche) sowie eine Tabelle in der diese Zusammengeführt werden, also die Benutzer bezogenen Rechte (Permissions), zu erstellen. Auf diese Weise könnte man relativ einfach Module hinzufügen oder auch entfernen.
Schön fand ich auch die Idee von dr.e das ganze über Beziehungen zu regeln. Allerdings halte ich diesen Ansatz für etwas zu komplex. Man könnte an dieser Stelle vielleicht ansetzen und anstatt mit tausenden Tabellen mit Nested Sets arbeiten. Käme mir auch ganz geöegen, da ich mich bereits mit diesem Thema beschäftigt habe.
Ich würde jetzt auf der Idee von Manko 10 aufbauen und eine drei Tabellen Struktur aufbauen. Doch anstatt einer Tabelle, in der nur die existierenden Bereiche gespeichert sind, würde ich eine Tabelle einfügen, die auf Nested Sets aufbaut. Durch die Baumstruktur ist es nun sehr einfach möglich Rechte zur Verarbeitung eines, eines Bereichs oder allen Artikeln zu vergeben. Zudem kann man duch die Baumstruktur auch sehr sehr einfach verschiedene Navigationen von einander trennen, diese Navigationen individuell sortieren, weitere Module einbinden oder eine Sitemap erstellen lassen.
Was haltet ihr von einem solchen Ansatz? Gibt es Anregungen, Fragen oder weiterführende Ideen? Freue mich über jede Wortmeldung.
MfG, Andy
Kommentar