| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
thorn Fortgeschrittener Benutzer

Anmeldedatum: 23.09.2007 Beiträge: 71 Wohnort: Niederried b.K. (CH) Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB
|
Verfasst am: 24.02.2009, 03:09 Titel: |
|
|
Neiiiiiiiiiiiiiiiiiin
Verdammt!!!
Jetzt hab ich einen halben Roman geschrieben und am ende kackt mir der PC ab - Bluescreen....
Argh!
*keks frisst* acht, geht mir schon wieder viel besser
Also, ich wollte meinen Senf loswerden bezüglich "Rechtevergebung"
(der Thementitel scheint mir etwas ungenau)
Ich hab ne halbe Philosophie geschrieben über ACL und deren Möglichkeiten.
Ich werde mich nämlich genauer damit auseinander setzen und auch etwas in der Form aufbauen...
ACL (Access Controll List) ermöglicht es, Benutzern und Gruppen einzelne Rechte zu vergeben und diese bei den Rechteobjekten nach oben hin zu vererben (wenn dem Objekt nichts zugewiesen wurde, suche im Elternteil weiter)
In Webanwendungen genügt es mir, wenn ich für ein Objekt eine Berechtigung habe (allow/deny)
Am Beispiel eines News-Bereiches folgende Rechteobjekte:
new, edit, delete, archive
Um Datenbankabfragen zu sparen, habe ich mir folgende XML-Struktur ausgedacht (<> durch {} ersetzt):
| Code: |
{acl}
{news all="deny" order="allow"}
{access}
{group id="321" access="allow"/}
{/access}
{new/}
{edit/}
{delete all="deny" order="allow"}
{access}
{user id="44" access="allow"/}
{/access}
{/delete}
{archive all="deny" order="allow"}
{access}
{user id="123" access="allow"/}
{/access}
{/archive}
{/news}
{/acl} |
Sollte soweit selbsterklärend sein. Das Schlüsselwort "access" kann in diesem Fall nicht verwendet werden, da es als Container verwendet wird.
Die Frage nun, ob man dies auch in einer Datenbank verwenden kann.
Hierzu habe ich mir folgende Tabellen ausgedacht:
| Code: |
acl_object:
acl_id | acl_parent_id | acl_name | acl_all | acl_order
1 | 0 | News | deny | allow
2 | 1 | New | inherit | allow
3 | 1 | Edit | inherit | allow
4 | 1 | Delete | deny | allow
5 | 1 | Archive | deny | allow
acl_user:
user_id | acl_id | acl_access
123 | 5 | allow
44 | 4 | allow
acl_group:
group_id | acl_id | acl_access
321 | 1 | allow |
Braucht wenig Platz, kann meiner Meinung nach auch einfach editiert werden
Das Auslesen, ob ein Benutzer ein Recht hat, stelle ich mir hier aber wesentlich schwieriger vor als beim XML.
Hier ist, wie auch beim XML, die GUI-Administrationsoberfläche auch ein Problem... Wobei man das mit einer schönen Baum-Ansicht recht übersichtlich machen kann.
Idee für das Administrationstool - man kann eine Gruppe oder Rolle auswählen und es zeigt einem farblich in grün die Zugriffe an und mit einem klickt auf ein Rechteobjekt kann man diesen Zugriff von allow zu deny und umgekehrt machen...
Tja... wer hat lust da mitzuhelfen?
((So, jetzt aber erstmal speichern, wer weiss wann ich nächstes mal blau sehe!)) |
|
| Nach oben |
|
 |
thorn Fortgeschrittener Benutzer

Anmeldedatum: 23.09.2007 Beiträge: 71 Wohnort: Niederried b.K. (CH) Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB
|
Verfasst am: 24.02.2009, 04:58 Titel: |
|
|
...und ich sehe grün!
XML-Parsing fertiggestellt - der Code den ich geschrieben hab hat auf anhieb geklappt *schulter klopf*
Weitere Diskussionen über ein ACL-Plugin hab ich hier eröffnet: https://www.syncom.org/viewtopic.php?t=1514 |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Anhänge in diesem Forum nicht anhängen. Du kannst Dateien in diesem Forum nicht herunterladen.
|
|