[Erledigt] Custom Title: $auth->acl_get() immer FALSE

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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
SemiX
Mitglied
Beiträge: 154
Registriert: 05.09.2004 19:39
Wohnort: NRW
Kontaktdaten:

[Erledigt] Custom Title: $auth->acl_get() immer FALSE

Beitrag von SemiX »

Hallo zusammen,

so habe ich es als alter phpBB2er dann doch mal gewagt, meine Nase in den Nachfolger zu stecken - und festgestellt, dass ich eine ganze Menge neu lernen muss *seufz*. So komplex geworden :geek:. Momentan versuche ich mich daran, phpBB 3.0.8 ein wenig zu modden und kleine Anpassungen vorzunehmen. Erste Schwierigkeiten bereitet mir dabei aber der "Custom Title Mod 3.0.0" für benutzerdefinierte Rangtitel: Wenn ich ihn installiere, kann ich zwar im ACP besagten Rangtitel abändern, im UCP taucht er jedoch nicht auf. Auf phpbb.com findet man das Problem häufiger, aber keine Lösung.

Nach einigem Suchen habe ich festgestellt, dass $auth->acl_get() im nachfolgenden Code-Abschnitt immer den Wert FALSE erhält, obwohl in der Datenbank in der phpbb_acl_options die Einträge u_title_edit und u_title_ignore_reqs vorhanden sind:

Code: Alles auswählen

$custom_title_enabled = false;
if ($auth->acl_get('u_title_edit'))
{
	if ($auth->acl_get('u_title_ignore_reqs'))
	{
		$custom_title_enabled = true;
	}
	else
	{
		$registered_seconds = time() - $user->data['user_regdate'];
		if (($registered_seconds >= $config['custom_title_days'] * 86400) && ($user->data['user_posts'] >= $config['custom_title_posts']))
		{
			$custom_title_enabled = true;
		}
	}
}
Setze ich zu Beginn $custom_title_enabled = true funktioniert der Mod. Das gleiche Problem taucht übrigens auch auf, wenn ich selber einen eigenen DB-Eintrag erstelle, was nach dieser Anleitung eigentlich hätte funktionieren sollen:

Code: Alles auswählen

INSERT INTO `phpbb_acl_options` (`auth_option_id`, `auth_option`, `is_global`, `is_local`, `founder_only`)
VALUES(120, 'u_test_perm', 1, 0, 0);
Wenn ich das mit

Code: Alles auswählen

print_r("<p>Wert von u_test_perm: [" . $auth->acl_get('u_test_perm') . "]</p>");
abfrage, erhalte ich ebenfalls stets FALSE. Wo könnte also der Fehler liegen? :oops:
Zuletzt geändert von SemiX am 01.04.2011 22:59, insgesamt 2-mal geändert.
Kein Privatsupport. Das Forum leistet gute Hilfe- und bessere als ich allemal... (:
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Re: Custom Title: $auth->acl_get() liefert immer FALSE

Beitrag von Balint »

Hallo,

ich vermute aufgrund deiner Beschreibung, dass es sich doch um ein simples Rechteproblem handeln könnte. Lies dir mal bitte folgenden Artikel durch und teste mal die Berechtigungen. Vielleicht überschreibt ein Gruppenrecht ein anderes. phpBB3 ist in dieser Hinsicht etwas herausfordernd :-)

KB:rechte_verfolgen


Viele Grüße,
Bálint
Meine MODs für phpBB 2.x und phpBB 3.x!
Benutzeravatar
SemiX
Mitglied
Beiträge: 154
Registriert: 05.09.2004 19:39
Wohnort: NRW
Kontaktdaten:

Re: Custom Title: $auth->acl_get() liefert immer FALSE

Beitrag von SemiX »

Okay, mir hat's keine Ruhe gelassen. Aber dafür weiß ich nun ungefähr, woran es gelegen hat :-) Für andere Ratsuchende: Der Hund liegt in den Berechtigungs-Rollen begraben, genauer gesagt in der $user_permissions in der includes\auth.php. Die im Schlüssel user_permissions gespeicherten in Rechte bzw. Werte werden mit denen in der phpbb_acl_options abgeglichen. Da in den o. g. Fällen nur die Optionen für die Rollen ergänzt wurden, aber nicht die Benutzerrechte modifiziert, werden diese Optionen zunächst erstmal ignoriert - acl_get() liefert ein FALSE zurück. Damit daraus ein TRUE wird, müssen die Berechtigungsrollen im ACP aktualisiert werden. Für meinen oben gewälten Beispiel-Schlüssel taucht im ACP unter Berechtigungen/Benutzer-Rollen/<wähle irgendeinen Rollen-Namen>/Diverses der Eintrag "{ acl_u_test_perm }" auf. Ändert man dessen Wert auf Ja, geht's.

Edit: Ah, Balint Du warst schneller mit deiner Antwort. Mist, jetzt steh ich in der Verlegenheit, mich zu entschuldigen *hust* Ist ja wirklich ein simpler Fehler gewesen. Und ich hab eher damit gerechnet, dass was mit der Aufwärtskompatibilität des MODs nicht stimmt. Vielen Dank aber trotzdem, auch für den Link. Ich habe mich zwar vor einiger Zeit schon in das Rechtesystem (und in die Grundlagen objektorientierten Programmierens) eingelesen, aber mein erster Gedanke war danach "Oh Gott!" :grin: Jetzt kann ich das Gelesene besser zuordnen, thx!
Kein Privatsupport. Das Forum leistet gute Hilfe- und bessere als ich allemal... (:
Antworten

Zurück zu „[3.0.x] Mod Support“