Rechtesystem für Web-Portal
s. dingens
- programmiertechnik
0 Gast
Guten Morgen zusammen,
in meinem momentanen Projekt, einer Bildergalerie, möchte ich ein Rechtesystem einführen. Der Administrator soll dann den Usergruppen und Usern Rechte zuweisen können. Ein Gast gilt bei mir ebenfalls als User.
Sobald ein User "neu" auf die Seite kommt, wird ihm der Datensatz des "Gastes" in der User-Tabelle zugewiesen.
Mir fehlt nur leider der Ansatz, wie ich dieses Rechtesystem bewerkstellige. Wenn sich Rechte widersprechen, sollten die User-Rechte überwiegen; sprich, die Userrechte überschreiben die Usergruppenrechte.
Zudem soll für jedes Album angegeben werden können, welche User anzeigen, zugreifen, hochladen, ändern kann.
Wie müsste der SQL zum holen der Alben prinzipiell aussehen?
Hole album_id, album_name in dieser $_GET['categorie'], verbinde mit Berechtigungstabelle durch album_id=album_id, Wo in der Berechtigungstabelle meine User-ID angegeben ist.
SELECT album_id, album_name FROM gal_albums a LEFT JOIN gal_permissions p ON a.album_id=p.album_id WHERE p.user_id=$userid AND a.categorie=$_GET['categorie']
Das wäre für mich momentan am logischsten. Aber in diesem Fall kann ja der Datensatz in der Berechtigungstabelle gar nicht vorhanden sein...
Wie genau müsste dann das Konstrukt aussehen, damit ich hinterher in der Ergebnistabelle wirklich nur die Alben drin habe, die der User anzeigen darf?
Und wie verbinde ich das mit der Usergruppen-Berechtigung und der Überschreibung mit den User-Berechtigung?
Gruß
S. Dingens
Guten Morgen,
Mir fehlt nur leider der Ansatz, wie ich dieses Rechtesystem bewerkstellige.
User-Tabelle: Du richtest für jeden User einen Datensatz ein, auch für den anonymen User "Gast" (ich).
Album-Tabelle: Für jedes Album ein Datensatz.
Gruppen-Tabelle: Jeder User kann einer oder mehreren Gruppen zugeordnet werden (darf Urlaubsbilder sehen, darf Familienbilder sehen, ...). Jedes Album wird einer oder mehreren Gruppen zugeordnet (sind Urlaubsbilder).
Will jetzt User XYZ das Album ABC ansehen, gehst du in die Gruppen-Tabelle, holst die für User XYZ zulässigen Gruppen und prüfst, ob Album ABC einer dieser Gruppen angehört.
Oder besser: Du bietest User XYZ nur die Alben an, die er sehen darf. Wenn er eins anklickt, Rechteprüfung durchführen.
MfG Gast