Mailinglisten-Archive |
Hi Enrico, > wenn du den gruppennamen brauchst, warum dann nicht gleich: > > SELECT group.name WHERE group_member.groupID = group_member.groupID > AND group_member.UID = $uid > es ist mir schon klar, dass ich wenn ich namen will auch die namen selecten muss :-) allerdings sollte Dein "group_member.groupID = group_member.groupID" uns auch nicht richtig voranbringen ;-) was ich eigentlich damit sagen wollte ist, dass ich durch das speichern in der user-tabelle einen kompletten sql-zugriff ausfallen lassen kann... > > Und die Phplib arbeitet mit Kommaseparierten Gruppennamen... > fuer kleinere anwendungen mag das durchaus ausreichen, > wenn du es aber mit 10000 usern und 1000 gruppen zu tun hast, > wirds ziemlich ineffizient ... > > ausserdem kannst du bei meiner variante leichter komplexere > operationen mit den gruppen in der datenbank machen, beispielsweise > wenn du leute suchst, die in bestimmten gruppen gleichzeitig sind etc. > (so musst du halt ein langsames preg_match machen ...) ich wollte mit möglichst wenig gruppen auskommen, und der standard-benutzer ist ja auch nicht in mehr als 1-2 Gruppen... Die admin-funktionen können ruhig ein wenig länger brauchen, da sie mit sicherheit nicht die hauptlast ausmachen werden. Ich habe mir die Lösung von Zope nochmal angeschaut, die arbeiten nicht explizit mit gruppen, sondern mit roles (editor, owner, admin) und speichern die benutzer und rechte an beliebigen Knoten des Baumes. Die Benutzersind dann oberhalb einfach nicht bekannt -> Gast, un können unterhalb alles editieren, was in ihrer macht steht. Ich könnte so eine Lösung erreichen, indem ich bei jedem Benutzer eine Parent_id anlege > > wie meinst du das mit dem permission-feld in group members? > wenn beispielsweise jemand innerhalb einer gruppe bestimmte rechte > haben soll (ist sinnvoll, wenn du die gruppen nicht zur rechtesteuerung, > sondern als agglomeration von leuten, z.b. in einer mailinglist > verwendest) das wäre mir ein wenn zu viel... ich gehe davon aus, dass es in jeder Unterstruktur (z.B. Abteilung) verschiedene Aufgaben / Rechte geben muss. Wenn ich dich richtig verstanden habe, muss ich dann ja bei dir bei jeder benutzer-gruppen-zuordnung die Benutzerspezifischen Rechte angeben. > > Problematisch wird es, wenn mehrere in der Baumstruktur > > aufeinanderfolgende admins existieren. Der "ranghöchste" kann die > > untergeordneten Seiten nicht editieren... > warum nicht ? weil man dann beim anlegen einer neuen untergruppe allen übergeordneten benutzern mit schreibrechten(o.ä.) die gruppenzugehörigkeit geben müsste: übergeordnete seiten suchen, gruppen daraus extrahieren, benutzer mit schreibrechten finden und der gruppe zufügen.... > wenn du fuer jedes einzelne gruppen-mitglied (user + gruppe + > permissions) > einen extra eintrag hast, sollte das doch kein problem sein. > > btw: kennst du eine variante, solche baumstrukturen direkt in SQL > aufzuloesen ? bei oracle scheint es ein "select tree" zu geben, habe ich aber (in ermangelung einer oracle db :-)) noch nie getestet. ich mache ein select, sortiert nach der parent-id, in der while-schleife erledige ich gleich die vererbung, und weise jeden ergebnis-array gleich noch einem id-sortierten array zu. im zweiten schritt habe ich eine rekursive funktion, die den nach parent-id sortierten array abarbeitet und mir einen xml-baum erstellt. geht schön schnell, funktioniert aber nur, wenn die parent-id immer kleiner als die id ist. Gruß Björn -- -------------------------------------------- Dipl. Ing. Björn Schimpf visual4 bjoern_schimpf_(at)_visual4.de 0179.6098437 0711.649123.8
php::bar PHP Wiki - Listenarchive