Meldelisten - Termin - Mod

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ich glaube du verstehst das System vielleicht nicht ganz.

Bei diesem System gilt immer die genaueste passende Regel. Am einfachsten kann man das denke ich an einem Beispiel erklären:
Es gibt die Themen T1 T2 T3 (T1 in F1, T2 in F2, T3 in F3)
Es gibt die Foren F1 F2 F3.
Es gibt die Gruppen G1 G2 G3.
Es gibt die User U1 U2 U3 U4.
U1 und U2 sind in den Gruppen 1 und 2 vertreten, U3 ist in G2 und U4 in gar keiner Gruppe.

Du hast für alle drei Gruppen die globalen Berechtigungen auf "alles erlaubt" gesetzt.
Jetzt können alle User, die in einer Gruppe sind auch in allen Foren die Listen sehen.

Als nächstes setzt du für G1 in F1 alle Rechte auf verboten. Da U1 und U2 in G1 sind können sie nun in diesem Forum keine Listen mehr sehen. U3 ist in G2 und daher von der Änderung nicht betroffen, genauso U4 der ja in keiner Gruppe ist und daher sowieso nichts sieht.

Jetzt setzt du in F1 für T1 für G2 die Rechte auf alles erlaubt. Für U1 und U2 bedeutet das, dass sie wieder auf dieses spezielle Thema zugreifen können obwohl zwar G1 eigentlich den Zugriff verbietet die G2 Regel aber spezieller ist und daher hier greift. Für U3 und U4 ändert sich nichts.

=> Es gilt immer die "genaueste" Regel
=> Wenn es die nicht gibt (= nicht angelegt ist, wenn du Rechte vergibst werden die angewendet) dann gilt die nächsthöhere Stufe
=> Gibt es auch keine höhere Stufe dann ist der User nicht berechtigt

Im Prinzip klappt das also fast genau so wie bei phpbb3, es gibt Ja, nein, und "nicht gesetzt", allerdings musst du für eine Ebene (global, Forum, Thema) immer für alle Rechte Ja oder Nein vergeben.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
InTimo
Mitglied
Beiträge: 284
Registriert: 16.09.2005 15:40
Wohnort: Wallenhorst
Kontaktdaten:

Beitrag von InTimo »

Servus .. ist zwar schon spät, aber irgendwie versteh ich das grad überhaupt nicht. Hab nämlich grad den user test in den Meldelistengruppen zu Maenner hinzugefügt .. und siehe da, ich kann die Liste als "test" sehen

Versteh aber jetzt überhaupt nicht die Sync mit den Gruppen vom Forum, wenn ich sowieso alles doppelt machen muss :(

Denn sonst hätte die Gruppe Maenner, in der User "test" Zugriff hat, auch automatisch Zugriff auf die Liste in dem speziellen Forum für Gruppe Maenner.

Kann man das nicht automatisieren .. das wären ja immer die gleichen Rechte, wie im Forum über die Gruppen selbst. Und die haben dort auch vorang vor den einzelnen Usereinstellungen .. meines Wissens.

phpbb3 hab ich mich überhaupt noch nicht mit beschäftigt .. hab jetzt grad mal unser phpbb2 einigermaßen am Laufen


Mit anderen Worten, ich möchte "nur", dass alle User der vorhanden phpbb Gruppe "maenner" sämtliche Listen im "internen Bereich" sehen und sich eintragen können, ohne alle User erneut der Meldelistengruppe Maenner hinzufügen zu müssen.

Gute Nacht

Timo
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Dann richte einfach keinerlei Forenspezifische Rechte ein und stell alle Rechte einfach global ein. Das wäre dann eine Einstellung pro Gruppe. Die Personen kannst du ja der Forumsgruppe hinzufügen, wenn du den Mod richtig eingebaut hast werden dann die Gruppen automatisch synchronisiert.

Wenn du unbedingt möchtest könntest du auch einfach die Rechte an irgend ein standard-Forenrecht koppeln. Da alle Rechte über eine zentrale Stelle laufen wären das nur ein zwei Zeilen Codeänderungen. Dann hätten alle User, die das Recht xy auf einem Forum haben (xy ist beliebig wählbar) auch die üblichen Rechte auf Meldelisten. Das würde dann das komplette System im ACP ersetzen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
InTimo
Mitglied
Beiträge: 284
Registriert: 16.09.2005 15:40
Wohnort: Wallenhorst
Kontaktdaten:

Beitrag von InTimo »

Moin moin .. dann hab ich einen Schritt zuviel gemacht ?? Also hätt ich gar keine Gruppen synchronisieren müssen ?? Die hab ich ja jetzt schon in den Meldelisten drin.

Aber das einfachste wäre ja wohl das (da die Forenzugriffe ja über die Gruppen schon geregelt sind):
Wenn du unbedingt möchtest könntest du auch einfach die Rechte an irgend ein standard-Forenrecht koppeln. Da alle Rechte über eine zentrale Stelle laufen wären das nur ein zwei Zeilen Codeänderungen. Dann hätten alle User, die das Recht xy auf einem Forum haben (xy ist beliebig wählbar) auch die üblichen Rechte auf Meldelisten. Das würde dann das komplette System im ACP ersetzen.
Die Frage ist dann nur, ob die Termine dafür dann im Kalender "offen" für alle sind, oder trotzdem nur für die internen sichtbar sind ??

Timo
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das hängt dann davon ab was die "normalen Gruppen" für Rechte haben, die Einträge im Kalender sind nur für Leute sichtbar, die auch Zugriff auf die Foren haben in denen sich die dazu gehörigen Beiträge befinden (das ist standardmäßig beim Calendar Mod so).

Wenn du die Gruppen im ACP miteinander verknüpft hast dann ist synchronisieren jedenfalls überflüssig. Jetzt musst du dir nur noch ein Recht aussuchen mit dem du die Berechtigungen koppeln möchtest (und ich will hoffen dass das wirklich so einfach machbar ist und ich da nicht in Gedanken irgendwas übersehen habe, schließlich habe ich das ja nicht völlig ohne Grund getrennt). Was dann definitiv nicht mehr möglich wäre ist die Sperrung einer einzelnen Meldeliste über das ACP.

Naja, die Version für das phpbb3 wird wohl ein wenig intuitiver bedienbar ausfallen denke ich und auch das Rechtesystem des phpbb3 so nutzen wie es besteht (da die aber noch nicht einmal im Alpha Stadium ist gibt's da jetzt definitiv noch keinen Termin zu).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
InTimo
Mitglied
Beiträge: 284
Registriert: 16.09.2005 15:40
Wohnort: Wallenhorst
Kontaktdaten:

Beitrag von InTimo »

Mahlzeit .. also bei den Terminen über den Kalender ansich funzt das Prima .. User der Gruppe Männer sehen die Termine im Kalender auch nur, wenn sie eingeloggt sind.

Die Frage ist jetzt nur, was muss ich ändern, damit das mit Deinem Mod auch funzt
Da alle Rechte über eine zentrale Stelle laufen wären das nur ein zwei Zeilen Codeänderungen. Dann hätten alle User, die das Recht xy auf einem Forum haben (xy ist beliebig wählbar) auch die üblichen Rechte auf Meldelisten. Das würde dann das komplette System im ACP ersetzen.
Timo
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ohne Garantie dass es keine Nebenwirkungen gibt:
Nach dem hier in der functions_inout.php

Code: Alles auswählen

//If the Parser get's to here, user can't be Moderator
	if($state == INOUT_AUTH_MOD)
	{
		return FALSE;
	}
folgendes einfügen:

Code: Alles auswählen

if($is_auth['auth_reply'])
	{
		return true;
	}
else
{
return false;
}
Das würde alle Berechtigungen an INOUT Listen (außer denen, die Moderator oder Adminrechte erfordern) auf das Recht zu antworten abbilden, d.h. jeder User, der in einem Forum Antworten darf, kann auch die Meldeliste sehen und benutzen.

Falls du den Rest ab else weglässt kannst du über die ACP Einstellungen des Mods theoretisch noch weitere Rechte hinzufügen (also z.b. einzelne Listen erlauben wenn der Zugriff eigentlich verboten wäre), das ist aber vermutlich fehleranfällig, da man das leicht vergisst und macht in dem Fall auch keinen Sinn, da ein User, der in einem Forum nicht lesen kann, sowieso keinen Zugriff auf die Meldeliste bekommt da er das zugehörige Thema ja nicht sieht.

Das bedeutet dann ganz automatisch, dass du die Liste nicht mehr per ACP sperren kannst.

Wenn du deine Rechte detaillierter vergeben hast und das lieber genauer abbilden möchtest (z.b. Leute die lesen, aber nicht antworten dürfen sollen auch nur lesend auf Meldelisten zugreifen oder eine Verknüpfung mit dem Recht, Umfragen benutzen/erstellen zu dürfen kannst du selbst leicht anhand der folgenden Tabelle und dem folgenden Schema realisieren:

Code: Alles auswählen

Possible values for state:
	- INOUT_AUTH_ADMIN			Admin
	- INOUT_AUTH_MOD			Moderator
	- INOUT_AUTH_NEW			User permitted to post a new List
	- INOUT_AUTH_REPLY			User permitted to reply to a List
	- INOUT_AUTH_VIEW			User permitted to view a List
	- INOUT_AUTH_MODIFY			User permitted to modify the settings of a List
	- INOUT_AUTH_AUTOVALUE		User permitted to generate autovalue entries
	- INOUT_AUTH_AUTORESET		User permitted to generate autoreset entries
	- INOUT_AUTH_REMOTE			User permitted to generate entries from remote (via eMail-Link)
	- INOUT_AUTH_FULL_INFO		User permitted to recieve complete Mail updates on an inout list
	- INOUT_AUTH_UPDATE_INFO	User permitted to recieve basic Mail updates on an inout list
Schema:

Code: Alles auswählen

if($is_auth['auth_reply'] && $state == INOUT_AUTH_REPLY)
	{
		return true;
	}
elseif($is_auth['auth_post'] && $state == INOUT_AUTH_NEW)
	{
		return true;
	}
else
{
return false;
}
Dieses Schema kannst du in beliebiger Kombination einsetzen und alle einzelnen Rechte (außer Moderator und Admin, die sind schon vorimplementiert) damit einzeln behandeln. Wenn du das machst, solltest du sämtliche Rechte irgendwie abdecken, ansonsten deaktivierst du die entsprechenden Funktionen für alle User außer Moderatoren und Admins (also jeden State außer MOD und ADMIN in der Liste oben).
Falls du eine Liste der Rechte brauchst, mit denen du in $is_auth arbeiten kannst, bitte sehr:

Code: Alles auswählen

'auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate'
Wenn du Mods eingebaut hast die die Rechte erweitern dann ist diese Liste noch ein wenig länger, der Topic_calendar Mod fügt beispielsweise 'auth_cal' hinzu.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
InTimo
Mitglied
Beiträge: 284
Registriert: 16.09.2005 15:40
Wohnort: Wallenhorst
Kontaktdaten:

Beitrag von InTimo »

Alles klar .. .werd ich mal testen ..

Hab aber grad ganz andere Sorgen .. unsere Geburtstage sind wech :(
Siehe hier - http://www.phpbb.de/viewtopic.php?p=930940#930940 Vielleicht hast Du als php Experte dafür auch nen Rat ..
InTimo
Mitglied
Beiträge: 284
Registriert: 16.09.2005 15:40
Wohnort: Wallenhorst
Kontaktdaten:

Beitrag von InTimo »

Läuft soweit wohl .. aber kann ich die Gruppen in den Meldelisteneinstellungen irgendwie löschen ??? Oder geht das nur über die SQL ??

Das Feld "Gruppen auswählen" beim Posten kann dann doch ganz weg, oder ??
[ externes Bild ]

Was muss ich dafür machen ??

Timo
InTimo
Mitglied
Beiträge: 284
Registriert: 16.09.2005 15:40
Wohnort: Wallenhorst
Kontaktdaten:

Beitrag von InTimo »

Hallöle .. keiner mehr hier ??

Timo
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“