Forum auch für Moderatoren sperren

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

Forum auch für Moderatoren sperren

Beitrag von moneycoach »

Hiho Community :)

Folgende Frage: Wenn ich das Forum über die ACP-Funktion sperre, werden Administratoren ja praktisch von dieser Sperre ausgenommen. Dass Moderatoren anscheinend auch von der Sperre ausgenommen werden und in mehr oder weniger vollem Umfang auch auf das Forum zugreiefn können, finde ich nicht so gut. Gibt es eine Möglichkeit, auch Moderatoren von dem Forum auszuschließen?

Danke im Vorraus,
moneycoach
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Du verwendest phpBB3.

KB:rechtesystem

Du kannst jeder Gruppe sagen "nein hier kommst du nicht rein" oder sogar "nein, hier kommst du nie rein"
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

In der Standardversion des phpBB 3.0.0 dürfen auf ein gesperrtes Board spezielle User dennoch zugreifen. Anders als mancher Admin das jedoch vielleicht erwarten würde, dürfen neben den Admins auch alle Moderatoren noch weiterhin auf das Board zugreifen. In einigen Fällen mag das nicht gewünscht sein, aus diesem Grund hier eine kurze Anleitung wie sich das ändern lässt:

In der includes/session.php findet sich folgende Passage:

Code: Alles auswählen

// Is board disabled and user not an admin or moderator?
		if ($config['board_disable'] && !defined('IN_LOGIN') && !$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))
		
Ersetze diese Stelle durch das hier:

Code: Alles auswählen

// Is board disabled and user not an admin or moderator?
		if ($config['board_disable'] && !defined('IN_LOGIN') && !$auth->acl_get('a_'))
Wenn du das komfortabel haben möchtest kannst du auch ein eigenes Recht speziell für diesen Fall anlegen und dann selbst auswählen, wer zugreifen darf und wer nicht.

In dem Fall müsstest du die Stelle dann allerdings durch folgendes ersetzen:

Code: Alles auswählen

// Is board disabled and user not an admin or moderator?
		if ($config['board_disable'] && !defined('IN_LOGIN') && !$auth->acl_gets('a_', 'u_disabled_ignore'))
Zusätzlich dann noch das hier in der Datenbank ausführen (z.B. via KB:phpmyadmin):

Code: Alles auswählen

INSERT INTO phpbb_acl_options (auth_option, is_global, is_local, founder_only) VALUES ('u_disabled_ignore', 1, 0, 0);
Und in einer Sprachdatei mit dem Namen permissions_disabled_ignore.php (kann auch jeder andere Name sein der mit permissions_ beginnt oder die betr. Optionen werden in eine vorhandene eingefügt) im Verzeichnis language/xx/mods/ folgende Zeilen einfügen:

Code: Alles auswählen

<?php
/**
* DO NOT CHANGE
*/
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}

// Adding the permissions
$lang = array_merge($lang, array(
    'acl_u_disabled_ignore'    => array('lang' => 'Kann das Forum im deaktivierten Zustand verwenden', 'cat' => 'misc'),
));
?>
xx steht dabei für das Sprachkürzel, wenn du es in allen Sprachen brauchst (z.b. weil andere Admins andere Sprachen nutzen), dann solltest du es in alle Sprachen legen, ansonsten reicht deine eigene Sprache, vermutlich also "de".

Das neu angelegte Recht findet sich unter "Diverses" bei den Benutzerrechten (du kannst dieses Recht also auch an normale User vergeben ohne diese zu Moderatoren zu machen).

Ich habe das jetzt nicht getestet, würde aber trotzdem davon ausgehen dass es funktioniert. Bitte trotzdem ausführlich testen.
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.
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

Beitrag von moneycoach »

Super!

Danke gn#36, funktioniert 1A :)

Eine Frage aber noch: Wenn dem Benutzer erlaubt ist, das Forum zu benutzen, auch wenn es deaktiviert ist, wird oben nicht diese Leiste mit "Information: Dieses Board ist derzeit deaktiviert." angezeigt. Kann ich es irgendwie so einstellen, dass diese Leiste auch dann angezeigt wird, wenn es dem Benutzer grundsätzlich erlaubt ist, das deaktivierte Forum zu benutzen?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Welche von beiden Versionen hast du denn umgesetzt? Die mit der Zugangskontrolle?

Für die Anzeige ist dieser Part im proSilver Template zuständig:

Code: Alles auswählen

 <!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN and (U_MCP or U_ACP) --> 
		<div id="message" class="rules">
			<div class="inner"><span class="corners-top"><span></span></span>
				<strong>{L_INFORMATION}:</strong> {L_BOARD_DISABLED}
			<span class="corners-bottom"><span></span></span></div>
		</div>
		<!-- ENDIF -->
Im Subsilver2 wird es etwas ähnliches geben. Ich bin mir gerade nicht sicher ob die Kombination "Eingeloggt, aber kein Zugriff" existiert, wenn nicht dann könntest du einfach "and (U_MCP or U_ACP) aus dem IF herausnehmen und alle eingeloggten User würden diese Meldung ebenfalls erhalten. Wenn nicht, dann muss in die /includes/functions.php in der Funktion page_header noch folgendes gemacht werden:

suche

Code: Alles auswählen

'S_BOARD_DISABLED'		=> ($config['board_disable']) ? true : false,
danach einfügen

Code: Alles auswählen

'S_CAN_ACCESS'		=> $auth->acl_gets('a_', 'u_disabled_ignore') ? true : false,
Dann noch in oben genannter Stelle in der overall_header.html

Code: Alles auswählen

and (U_MCP or U_ACP)
ersetzen durch

Code: Alles auswählen

and S_CAN_ACCESS
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.
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

Beitrag von moneycoach »

Ich hab die Version mit dem Berechtigungssystem benutzt.
Deinen Vorschlag probiere ich dann heute nachmittag aus und gebe mal Feedback, obs funktioniert ;)
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

Beitrag von moneycoach »

So :)

hatte dann heute endlich mal Zeit um deine Lösung auszuprobieren.
Ich bin mir gerade nicht sicher ob die Kombination "Eingeloggt, aber kein Zugriff" existiert
Genau die Kombination hatte ich (zu Testzwecken natürlich ;) ) mal ausprobiert.
Da funktioniert deine Lösung (der Code im Template) leider nicht. Aber ich habe dann selber mal ein wenig rumprobiert und bin auf folgendes gekommen:

Code: Alles auswählen

<!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN and S_CAN_ACCESS or (S_BOARD_DISABLED and not (S_USER_LOGGED_IN) and S_CAN_ACCESS) -->
Danke für deine Hilfe :wink:
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Genau für diese Kombination hatte ich das ja extra so geschrieben dass es dann nicht angezeigt wird, schließlich sollte so ein User ja sowieso eine Meldung bekommen dass er gerade keinen Zugriff hat? So wie du es jetzt umgebaut hast kannst du jedenfalls S_USER_LOGGED_IN aus der Abfrage komplett rauslassen (und damit den kompletten or Teil), denn "nicht A oder A" passt bei jeder möglichen Kombination grundsätzlich immer.
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.
Benutzeravatar
moneycoach
Mitglied
Beiträge: 217
Registriert: 02.02.2007 21:57

Beitrag von moneycoach »

Stimmt, das war jetzt leicht unsinnig :D

Aber ich will ja den Hinweis auf jeden Fall anzeigen, wenn das Board deaktiviert ist, egal ob der / ein User nun eingeloggt ist oder nicht.

Daher dann so:

Code: Alles auswählen

<!-- IF S_BOARD_DISABLED and S_CAN_ACCESS -->
Das funktioniert dann reibungslos ;)
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“