Hallo!
Auch wenn dieses Thema sehr oft angesprochen wird, wage ich es erneut. Ich verfolge einen anderen Ansatz, als das offizielle Rechtemanagement in dieses Forum.
z.B. hier
http://www.php-resource.de/forum/sho...5&pagenumber=3
oder hier.
http://www.php-resource.de/forum/sho...chtemanagement
Ich versuche gerade ein bestehendes Web-Content-Management-System neu zu strukturieren bzw. zu modularisieren und es mit einer komfortablen Benutzerverwaltung zu versehen. Die Verwaltung von Usern Rechte etc. findet wie gewohnt im Backend des Systems statt.
Einen groben Entwurf findet ihr im Anhang!
Prinzip: Module, Templates …
Herzstück jeder Website ist die Navigation. Die Navigation soll im Backend beliebig erweiterbar sein. Die verschiedenen Links werden in der Tabelle navigation verwaltet.
Jedem Link ist eine template_id zugeordnet. Das Template ist die Schablone der Website, die beliebig ausgetauscht werden kann. Im Template (HTML-Code, CSS etc. werden Platzhalter als Funktionen eingetragen, die den Inhalt repräsentieren. z.B. load_Module(0)
Was jetzt an dieser Stelle angezeigt wird, kann im Backend zugewiesen werden. Load_Module(0) muss also nicht zwingend z.B. die Navigation der Website sein, sondern kann auch die Artikelverwaltung darstellen. Die Zuweisung erfolgt in der Tabelle box_mod_templ!
Box entspricht dabei die „0“ als Argument der Funktion load_Module(0).
Die Tabelle box_mod_templ weißt also einem bestimmten Template und einer bestimmten Box das Modul zu! Das Modul besteht aus einer Eingabedatei (fileinput) und einer Ausgabedatei (fileoutput). Die Eingabedatei schreibt etwas in die Datenbank hinein und die Ausgabedatei holt einen Inhalt aus der Datenbank wieder heraus.
Zur Tabelle gruppe_module komme ich gleich…
Nun zum Rechtemanagement (linker Teil):
Ausgangspunkt des Rechtemanagement Systems ist der Workflow (Arbeitsablauf) eines bestimmten Mitarbeiters. Beispiel für einen Workflow: Knicken -> Lochen -> Abheften ;-)
Dabei stellen diese drei Prozesse die Rechte dar. Kann natürlich beliebig erweitert werden.
Nun zum Rollen und Gruppen Konzept.
Verschieden Mitarbeiter können verschiedene Rollen in verschiedenen Gruppen einnehmen.
Gruppen sind hier keine Gruppierung von Rechten!
Eine Gruppe ist ein Teilbereich des Systems z.B. Gruppen: Artikelverwaltung, Administration, Forum etc.
Rollen sind z.B. User, Editor, Author, Admin etc.
Ein Benutzer kann also die Rolle Editor in der Gruppe Forum einnehmen, weil er die Kompetenz dafür besitzt. Der gleiche Benutzer kann aber die Rolle User in der Gruppe Artikelverwaltung einnehmen.
In der Tabelle session werden die User und Gäste gespeichert, die gerade online sind (das ist schon fertig).
Nun zur Tabelle gruppe_module: Mit dieser Tabelle versuche ich den Zusammenhang zwischen der Rechteverwaltung und der Modul/Template-Verwaltung zu schaffen. Ein Modul kann also in verschiedenen Gruppen eingesetzt werden und demnach haben die Benutzer des Systems nach ihrer Rolle entweder Zugriff und keinen Zugriff auf das Modul (edit_article.php/show_articles.php).
Lange Rede kurzer Sinn…
hat jemand schon einmal mit solch einem System (RBAC:Role-Base-Access-Controll) Erfahrungen gemacht?
Ist es sinnvoll, eine CMS so aufzubauen?
Hat jemand vielleicht Verbesserungsvorschläge?
Ich bin über jeden Kommentar sehr dankbar!
Das ganze soll irgendwann auch mal ein Tutorial werden...
In diesem Tutorial soll das Matrixmodell (wie hier im Forum)
Das RBAC-Modell
Und ein Rechtemodell mit Vererbung enthalten.
Siehe Dissertation von G. Popp Kapitel 4 ab Seite 29.
http://mediatum.ub.tum.de/mediatum/s...df?hosts=local
Auch wenn dieses Thema sehr oft angesprochen wird, wage ich es erneut. Ich verfolge einen anderen Ansatz, als das offizielle Rechtemanagement in dieses Forum.
z.B. hier
http://www.php-resource.de/forum/sho...5&pagenumber=3
oder hier.
http://www.php-resource.de/forum/sho...chtemanagement
Ich versuche gerade ein bestehendes Web-Content-Management-System neu zu strukturieren bzw. zu modularisieren und es mit einer komfortablen Benutzerverwaltung zu versehen. Die Verwaltung von Usern Rechte etc. findet wie gewohnt im Backend des Systems statt.
Einen groben Entwurf findet ihr im Anhang!
Prinzip: Module, Templates …
Herzstück jeder Website ist die Navigation. Die Navigation soll im Backend beliebig erweiterbar sein. Die verschiedenen Links werden in der Tabelle navigation verwaltet.
Jedem Link ist eine template_id zugeordnet. Das Template ist die Schablone der Website, die beliebig ausgetauscht werden kann. Im Template (HTML-Code, CSS etc. werden Platzhalter als Funktionen eingetragen, die den Inhalt repräsentieren. z.B. load_Module(0)
Was jetzt an dieser Stelle angezeigt wird, kann im Backend zugewiesen werden. Load_Module(0) muss also nicht zwingend z.B. die Navigation der Website sein, sondern kann auch die Artikelverwaltung darstellen. Die Zuweisung erfolgt in der Tabelle box_mod_templ!
Box entspricht dabei die „0“ als Argument der Funktion load_Module(0).
Die Tabelle box_mod_templ weißt also einem bestimmten Template und einer bestimmten Box das Modul zu! Das Modul besteht aus einer Eingabedatei (fileinput) und einer Ausgabedatei (fileoutput). Die Eingabedatei schreibt etwas in die Datenbank hinein und die Ausgabedatei holt einen Inhalt aus der Datenbank wieder heraus.
Zur Tabelle gruppe_module komme ich gleich…
Nun zum Rechtemanagement (linker Teil):
Ausgangspunkt des Rechtemanagement Systems ist der Workflow (Arbeitsablauf) eines bestimmten Mitarbeiters. Beispiel für einen Workflow: Knicken -> Lochen -> Abheften ;-)
Dabei stellen diese drei Prozesse die Rechte dar. Kann natürlich beliebig erweitert werden.
Nun zum Rollen und Gruppen Konzept.
Verschieden Mitarbeiter können verschiedene Rollen in verschiedenen Gruppen einnehmen.
Gruppen sind hier keine Gruppierung von Rechten!
Eine Gruppe ist ein Teilbereich des Systems z.B. Gruppen: Artikelverwaltung, Administration, Forum etc.
Rollen sind z.B. User, Editor, Author, Admin etc.
Ein Benutzer kann also die Rolle Editor in der Gruppe Forum einnehmen, weil er die Kompetenz dafür besitzt. Der gleiche Benutzer kann aber die Rolle User in der Gruppe Artikelverwaltung einnehmen.
In der Tabelle session werden die User und Gäste gespeichert, die gerade online sind (das ist schon fertig).
Nun zur Tabelle gruppe_module: Mit dieser Tabelle versuche ich den Zusammenhang zwischen der Rechteverwaltung und der Modul/Template-Verwaltung zu schaffen. Ein Modul kann also in verschiedenen Gruppen eingesetzt werden und demnach haben die Benutzer des Systems nach ihrer Rolle entweder Zugriff und keinen Zugriff auf das Modul (edit_article.php/show_articles.php).
Lange Rede kurzer Sinn…
hat jemand schon einmal mit solch einem System (RBAC:Role-Base-Access-Controll) Erfahrungen gemacht?
Ist es sinnvoll, eine CMS so aufzubauen?
Hat jemand vielleicht Verbesserungsvorschläge?
Ich bin über jeden Kommentar sehr dankbar!
Das ganze soll irgendwann auch mal ein Tutorial werden...
In diesem Tutorial soll das Matrixmodell (wie hier im Forum)
Das RBAC-Modell
Und ein Rechtemodell mit Vererbung enthalten.
Siehe Dissertation von G. Popp Kapitel 4 ab Seite 29.
http://mediatum.ub.tum.de/mediatum/s...df?hosts=local
Kommentar