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