Mailinglisten-Archive |
Bjoern Schimpf wrote: > > 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 ;-) group_member.groupID = group.groupID hmmpf! > was ich eigentlich damit sagen wollte ist, dass ich durch das speichern in > der user-tabelle einen kompletten sql-zugriff ausfallen lassen kann... naja, wenn du die gruppenmitgliedschaft beim login in die session packst, spart dir das natuerlich einiges. <snip> > 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. ok. > 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. geht auch. weniger flexibel. wenn ich das jetzt richtig sehe, gibt es dann aber fuer jeden knoten nur einen admin, einen owner, einen editor ? > Ich könnte so eine Lösung erreichen, indem ich bei jedem Benutzer eine > Parent_id anlege kennst du eine variante, baumstrukturen mit vererbung effizient in sql unterzubringen ? es waere ja schon viel geholfen, eine query zu haben, die den gewuenschten knoten mit allen seinen parents bis zur wurzel aufzulisten. mir schwebt da was mit functions oder rules ein, mit denen man vielleicht die noetige rekursion produzieren kann ... > > > 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. richtig. die rechte innerhalb der gruppe. bei meinem modell ist das aber keine gruppe im sinne einer unix-style- usergroup sondern eher sowas wie eine maillist oder ein irc-channel ... voellig verschiedene sachen. fuer die usergroups wuerde ich lieber den begriff acl verwenden ... man kann im uebrigen ja dann auch gruppen bestimmte rechte geben, die dann alle ihre mitglieder erben ... (a la NDS) > > > 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.... vererbung ? > > 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. hmm. ich versuche mal ob ich bei psql da was mit rules hinbiegen kann ... > 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. hat das problem, dass du bei sehr grossen baeumen entweder den ganzen baum laden musst oder fuer jede ebene eine query brauchst. > 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. das ist mist. funktioniert naemlich nur dann, wenn man die ids seriell zuordnet ... ~-n > > Gruß Björn > > -- -------------------------------------------- > Dipl. Ing. Björn Schimpf > visual4 > bjoern_schimpf_(at)_visual4.de > 0179.6098437 0711.649123.8 > -- > ** http://www.php-center.de ** > Die PHP-Liste: mailto: php_(at)_phpcenter.de > http://lists.phpcenter.de/mailman/listinfo/php -- Enrico Weigelt == meTUX IT services software development, IT service, internet security solutions www: http://www.metux.de/ phone: +49 36207 519931 email: contact_(at)_metux.de cellphone: +49 174 7066481
php::bar PHP Wiki - Listenarchive