Kombination von Gruppenrechten

 
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: 501st.de
Beiträge: 5
Dabei seit: 02 / 2019
Betreff:

Kombination von Gruppenrechten

 · 
Gepostet: 05.03.2019 - 11:33 Uhr  ·  #1
Hi,

ich bin gerade dran, mir Gedanken über die Berechtigungen in unserem neuen (CBACK) Forum zu machen, stoße aber an gewissen Grenzen. Von Vorteil wäre es, wenn man mehrere Berechtigungsgruppen eines Benutzers zu einer Gesamtbereichtigung zusammenführen könnte, also eine zusammengesetze Hauptgruppe (z.B. Mitgliedsberechtigung + Clubführungsberechtigung + Regionalberechtigung_A, *_B, oder *_C) hätte. Das geht aber leider nicht. So viel habe ich gelesen und verstanden. Deshalb die Frage: Wie ist die "best practice" für diesen Fall? Muss ich tatsächlich alle möglichen/sinnvollen Gruppenkombinationen erstellen (z. B. Mitglied_Clubführung_RegionA oder Mitlgied_RegionB)? Das wären in meinem Fall schon recht viele ...

Grüße,

Michael.
Admin
Avatar
Geschlecht:
Herkunft:
Alter: 33
Homepage: cback.de
Beiträge: 17158
Dabei seit: 12 / 2003
Betreff:

Re: Kombination von Gruppenrechten

 · 
Gepostet: 05.03.2019 - 14:36 Uhr  ·  #2
Hi Michael,

das CF4 hat ein Matrix-Befugnissystem, welches am Anfang vielleicht etwas ungewohnt ist als man das so kennt, aber später im Grunde viel einfacher zu handeln ist, da man wirklich an einer einzigen übersichtlichen Stelle jede Berechtigung genau sehen kann und man nicht das Problem hat, das man sozusagen Studieren muss um die Befugnisse zu verstehen bzw. negativ und positivberechtigungen an mehreren Stellen irgendwann für ein Chaos sorgen und man nicht mehr weiß wer was warum darf oder nicht.

Als wir dieses System schon damals beim CF3 angelegt hatten basierte das auf der Beobachtung, dass im Grunde die Berechtigungen in sicher weit über 90% der Foren äußerst Pyramidenartig sind. Also sprich: Es gibt eine untere ebene, die kann wenig. Dann gibts noch eine Ebene, die kann etwas mehr aber trotzdem immer noch das der untersten Ebene, dann gibts noch eine Drüber die kann vielleicht alles usw.

So musst Du Dir das dann bei den Befugnissen also immer Vorstellen: Einer höheren Gruppe klickst Du die Befugnisse der Gruppe drunter auch noch mit ein und baust dann ggf. weiteres auf. Und alles was Du von dieser Gruppe sehen kannst ist auch das, was der User kann. Wenn der User in mehreren Gruppen ist aber nur eine bestimmte als Hauptgruppe gewählt hat, dann weißt Du trotzdem sicher, dass er nur das kann was Du basierend auf dieser Gruppe im Befugnisraster eingestellt hast, da sich die Gruppen untereinander nicht beeinflussen.


Natürlich kannst Du wie bei anderen Foren auch trotzdem sogar so weit gehen, dass im Endeffekt jeder User eine eigene Berechtigungskapsel bekommen kann. Dazu gibt es z.B. die "Versteckten Gruppen", die dann die selbe Farbe haben wie eine öffentliche Gruppe aus Deiner Legende (Mitglied, Moderator, Admin) aber trotzdem Sonderrechte bekommen kann. Ich würde aber sagen das macht Dir das Leben viel zu kompliziert. Insbesondere, weil Du mit Befugnis Templates bei festeren Gruppen viel einfacher arbeiten kannst falls mal ein neues Forum dazu kommt.


Ich würde also direkt mal ein Raster anlegen wo Du bestimmst, wie der Forenzugang normal funktioniert.

Du hast zum Beispiel zunächst die Gäste, die dürfen z.B. gar nichts sehen, also kriegen Gäste keine Rechte in den Foren.

Dann hast du die Registrierten, die dürfen vielleicht 2, 3 Foren sehen. Klickst ihnen dann dieses Recht rein.

Dann hast Du die Mitglieder, die dürfen alle Mitgliedsforen sehen. Klickst Du dieses Recht rein. In der Regel ist es ja so, dass "höhergestellte" Mitglieder aber trotzdem auch die zwei Foren sehen können, die frisch registrierte sehen, also klickst Du das zusätzlich rein. (Falls es aber ein Forum mit "schalt mich bitte frei" gibt und das die freigeschalteten nicht mehr sehen sollen kannst Du selbst das einstellen).

Dann gibts meinentwegen die Moderatoren. Diese haben grundlegend das selbe Recht wie die Mitglieder, also klickst Du ihnen erstmal diese Rechte nochmal mit ein. Zusätzlich gibt es vielleicht ein Moderator-Forum. Dort klickst Du natürlich nur die Moderator-Gruppe rein.

Und Admins dürfen ja sicher alles, denen klickst dann also alles rein. ;)



Wichtig zu sagen ist auch: Du kannst für normale Moderatoren (Befugniskapsel vom Typ Moderator) sogar bestimmen in welchen Foren die entsprechende Moderatorgruppe moderieren darf. Das ist das Recht in den Foren "Forum moderieren".

Die Super-Moderatoren allerdings dürfen automatisch in allen Foren moderieren auf die sie zugriff haben.


Also auf der Basis kannst Du das glaube ich sehr weitreichend einstellen ohne, dass Du zu viele Gruppen brauchst. Weil die Höhere Gruppe darf ja normal immer auch die "tiefere" sehen.


Wenn Du allerdings in Deinem Forum noch spezielle Foren für eine Region freigeben möchtest wird das ganze schon etwas schwieriger, dann bräuchtest Du echt sehr viele Gruppen und Gruppenzustände. Da würde ich dann eher ein individuelles Profilfeld anlegen, wo die Admins eine Region einstellen dürfen (damit die User auch nicht "wechseln" können) und dann einfach per Plugin gewisse Foren-IDs zusätzlich via Plugin querchecken ob das entsprechende Befugnisfeld da ist oder nicht. Für solche Sonderfälle bietet das Pluginsystem zumindest an allen nötigen Punkten eine Einhängmöglichkeit an.

So könntest Du den Mitgliedern grundlegend die Rechte geben in allen Regionalforen zu lesen & zu schreiben aber hängst ein Plugin in die forumview, topic und posting ein die bei falscher Region und nicht Admin sagt "Sorry, Du darfst hier nicht lesen/schreiben". Wenn Du ganz viel Programmieren willst könnte man sogar die reine Verlinkung der Foren auf dem Index schon basierend darauf rauskegeln, aber da steckt dann sicher ein bisschen Arbeit dahinter. :) Und es gibt noch eine kleine Falle: Mit der Suchfunktion findet man die Themen mitunter noch aus diesen Foren, kann sie nur nicht in Gänze lesen. Also denke ich eher schweirig wenn es zu geheim wird mit den Inhalten in diesen Foren.


Fazit:
Falls die Admins eh in alle Regionalgruppen schauen können würde ich dann einfach mehrere Mitgliedgruppen basierend auf der Region als best practice vorschlagen. (Ihr habt 4 oder 5 gell?)

Mitglied_SWSQ
Mitglied_AC
usw.

Dann hättest Du eine Einstiegsgruppe, 4 oder 5 Mitgliedergruppen mit unterschiedlichem Regionalgruppen Zugang und eine Administration / Leitung die halt überall rein darf (was ja denk ich gewollt ist).

Dann bräuchtest Du kein Plugin aber mit 6 oder 7 Gruppen insgesamt ist es trotzdem noch ganz übersichtlich denke ich.

Und selbst wenn es dann je nach Region noch eine getrennte Mod/Leitergruppe gäbe würde ich denken das Du dank der Befugnistemplates dann auch noch mit so einem System zurecht kämst. Mitglieder & Moderator pro Region und Admin/Leitung darf immer überall rein, also brauchts da nur eine. Oder eben Super-Mod für den Globalen Zugriff im Forum und Admin der zusätzlich ins ACP darf.



Also lange Rede kurzer Sinn:
Bei <= 8 regionen würde ich 8 Mitgliedergruppen und 8 Modgruppen/Leitergruppen anlegen und ein S-Mod (global ohne ACP Zugriff) und eine Admingruppe (Alles sehen und machen dürfen inklusive ACP).

Das klingt zwar anfangs etwas erschlagend weil Du in diesem Beispiel mit 18 Gruppen arbeitest, aber mit Befugnistemplates kommst Du da in den Foren sehr schnell klar, das legst Du Dir ja einmal an und danach verwaltest Du nur noch die Mitglieder der einzelnen Gruppen. An den Foren ändert sich ja i.d.R. dann nichts mehr. Halte ich also für die effektivste und einfachste Art.

Befugnistemplate würde ich mir dann (Falls Du irgendwann Foren hinzufügst) einfach eins pro Regionalberechtigung anlegen, eins für "alle Member", eins für "Team only" und eins für Gäste. Also hättest Du diese komplexen Befugnisse mit 2+Regionzahl Templates abgedeckt und kannst neuen Foren eigentlich in wenigen Sekunden die passenden Rechte setzen ohne Dir nochmal Gedanken machen zu müssen.

Hätte auch den Vorteil, dass Du dann auch schon auf Pluginebene (manche Plugins haben ja auch die Gruppen als Berechtigungsbasis) auch nach Region switchen könntest wenn nötig. Du hast also mit dieser Methode durchgehend alle Features weiter möglich und musst nicht ins System selber eingreifen was gerade bei den Befugnissen ja immer sehr heikel ist.

Und wie gesagt, das richtet man ja normal einmal ein und dann fügst Du nur noch Mitglieder in die entsprechenden Gruppen hinzu und greifst die eigentlichen Forenrechte gar nicht mehr an.

Und wenn Du die Legende nicht so vollpacken möchtest mit Gruppen machst Du einfach eine "Versteckte Gruppe" aus den Varianten mit der selben Farbe wie eine angezeigte Gruppe und die User sehen dann gar nichts davon auf dem Index.


Puh das war jetzt viel und zugegeben ist die ganze Sache schwerer zu Erklären als in der Praxis zu klicken. Aber ich hoffe ich konnte Dir trotzdem weiterhelfen. :)

Übrigens noch ein Tipp: Lege Dir zunächst alle nötigen Limits für eine Gruppe an (beim Anlegen einer neuen Gruppe kannst Du ja Limits wie Attachment Speicher, PM Inbox Größe etc. gesondert einstellen) und nimm das dann als Vorlage für alle Folgegruppen. Es gibt dort nämlcih beim Anlegen einer Gruppe eine "Gruppe Klonen" Funktion. So kannst Du dann diese Werte ganz einfach für alle Folgegruppen verwenden und bist dann eigentlich recht schnell fertig. :)


LG,
Chris
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: 501st.de
Beiträge: 5
Dabei seit: 02 / 2019
Betreff:

Re: Kombination von Gruppenrechten

 · 
Gepostet: 05.03.2019 - 15:32 Uhr  ·  #3
Hi Chris,

vielen, vielen Dank für die ausführliche Darstellung und Anleitung. Ja, das war etwas erschlagend, aber so langsam bekomm' ich das Ganze rund ;-) Die Ausgangslage ist zwar viel komplexer als das, was ich geschrieben habe. Das sollten wir aber hinbekommen. Auf jeden Fall muss aber ein Plan her, um die aktuelle, über die Jahre gewachsene Situation einzudampfen ...

Das mit den Templates ist eine Möglichkeit, mit der ich auch geliebäugelt hab'. Dazu noch eine Frage - ich geb' die Hoffnung ja nicht auf O-) : Sind die Templates additiv verwendbar, in dem Sinne, dass man sie kombinieren kann? So wie: Ich bau mir eine neue Berechtigung zusammen aus den Templates A, H und Z ... Das ist einfach ein Schuss ins Blaue, weil ich mich mit den Templates noch nicht so genau auseinandergesetzt habe :D

Oh, und ja: Plugins werd' ich auf jeden Fall bauen 8-) ... so oder so. Ich freu' mich auch schon drauf', mir die Hände dreckig zu machen ;-)

Viele Grüße,

Michael.
Admin
Avatar
Geschlecht:
Herkunft:
Alter: 33
Homepage: cback.de
Beiträge: 17158
Dabei seit: 12 / 2003
Betreff:

Re: Kombination von Gruppenrechten

 · 
Gepostet: 05.03.2019 - 15:37 Uhr  ·  #4
Hi Michael,

super freut mich, dass ich Dir helfen konnte!

Und ja ich denke mal am Anfang ist das vielleicht etwas erschlagend, aber hinterher kommt man doch ganz gut damit klar. Ich hab zum Beispiel ein Kundenforum das hatte auch recht komplizierte Befugnisvarianten und entsprechend jetzt auch viele versteckte Gruppen aber die mögen das inzwischen auch weil einmal eingerichtet kann man doch sehr easy damit arbeiten und wird auch nicht in den Möglichkeiten beschnitten. Es sieht halt nur anders aus und man muss vielleicht anfangs etwas umdenken.


Die Befugnistemplates überschreiben die vorher gesetzte Berechtigung komplett, da sie das auch sollen (wenn man mehrere Foren bearbeitet muss man sicher sein, dass nur noch das vom Befugnistemplate gilt). Durch das "Befugnisse global setzen" kann man ja trotzdem noch recht fein nachjustieren. Aber so viele Templatevarianten hast Du ja eigentlich nicht.

ABER: Es gibt etwas das macht Dir das Leben trotzdem einfacher, Du kannst nämlich Befugnistemplates klonen.

Ich würde dort also auch erstmal bei der "kleinsten" Berechtigung anfangen und die einrichten und für Deine Sonderfälle kannst Du dann einfach auf "klonen" klicken und die zusätzlichen Sachen noch hinzufügen. Dann hast Du flux ein neues Template basierend auf einem anderen angelegt, kannst das abstufen und hinterher beim zuweisen dann wirklich eindeutig verwenden ohne, dass da noch irgendwelche Reste verbleiben die er zusammenführen würde.


LG,
Chris
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: 501st.de
Beiträge: 5
Dabei seit: 02 / 2019
Betreff:

Re: Kombination von Gruppenrechten

 · 
Gepostet: 05.03.2019 - 17:33 Uhr  ·  #5
Danke Dir nochmal für die Tipps :-) Ein Plan muss auf jeden Fall her und ich muss mich da in Ruhe reinarbeiten. Die Idee ist, das aktuelle interne Forum zu entrümpeln, alles geradezuziehen und Öffentliches und Internes so bereinigt zu konsolidieren :D Das wird spaßig ...
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: 501st.de
Beiträge: 5
Dabei seit: 02 / 2019
Betreff:

Re: Kombination von Gruppenrechten

 · 
Gepostet: 14.04.2019 - 22:05 Uhr  ·  #6
Hi Chris,

ich bin immer noch in einer kleineren Zwangspause, was die Einarbeitung ins Forum angeht, und mit den Gruppen hab' ich mich nicht mehr so intensiv weiterbeschäftigen können. Demnächst werd' ich aber hoffentlich wieder rankönnen. Aus Neugierde hab' ich mir eher mal die Programmiergeschichten und Hooks angeschaut ;-) Dabei bin ich in der Forum.class.php auf die Methode check_forum_permissions() gestoßen, die den interessanten Hook "cl_forumpermissioncap_1" hat. Etwas weiter unten im Code wird das "Combined forum Permissions plugin" eingebunden, wenn vorhanden. Meine kurze Frage: Wo kann ich den Code dieses Plugins bzw. den Download finden?

Grüße,

Michael.
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.