Rechte für automatisierte Forenpostings setzen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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
ike
Mitglied
Beiträge: 11
Registriert: 08.06.2009 12:10

Rechte für automatisierte Forenpostings setzen

Beitrag von ike »

Hi!

Ich habe einen Sync zwischen Newsserver und Forum geschrieben. Dieser läuft grundsätzlich rund, es gibt aber ein Rechteproblem. Es gibt ein paar Gruppen, in denen ein normaler User kein Schreibrecht hat, synchronisiere ich hier Beiträge, so muss ich sie einzeln freigeben. Bei Gruppen mit grundsätzlichem Schreibrecht passiert dies nicht.

User, die der Sync nicht zuordnen kann, werden vom System als Gast-User ins Forum importiert. Ich setze dies mit diesem Codestück:

Code: Alles auswählen

$user->data['is_registered'] = false;
$user->data['user_id'] = ANONYMOUS;
Ich habe nun das Problem, dass ich genau diesem User das Recht geben muss, ins Forum zu schreiben - aber gleichzeitig muss ich natürlich verhindern, dass dies missbraucht werden kann. Ich habe schon dem Gast-User Schreibrechte verpasst (aber keine Leserechte zugeordnet), dies war aber nicht hilfreich.

Zur Info: normale Gäste haben kein Schreibrecht, nicht einmal ein Leserecht. Sie sehen nicht einmal die Gruppen.

Wie könnte ich die Rechte setzen, dass die automatisiert erstellten Beiträge automatisch freigegeben werden?

Danke!

Michael
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Rechte für automatisierte Forenpostings setzen

Beitrag von Pyramide »

Ich nehme an, du benutzt die Funktion submit_post? Hier ist das Problem, dass es keine saubere Trennung zwischen Oberfläche und Geschäftslogik gibt - die Funktion prüft nämlich unter anderen, ob der Benutzer das f_noapprove Recht hat.

Als Workaround könntest du die gobale Variable $auth vor dem Aufruf der Funktion mit den Daten eines Benutzers initialisieren, der volle Rechte in dem betroffenen Forum hat.
KB:knigge
Benutzeravatar
Unimatrix_0
Mitglied
Beiträge: 392
Registriert: 03.11.2007 10:50
Kontaktdaten:

Re: Rechte für automatisierte Forenpostings setzen

Beitrag von Unimatrix_0 »

Hi,

ich schreibe gerade selbst an einer Foren-Erweiterung die auf die Funktion submit_post() setzt, dabei habe ich die Erfahrung gemacht, dass ich die Berechtigung benötige um in dem Forum zu posten (bewusst das recht dazu entfernt) und der Post dennoch erstellt wird und gleich freigegeben ist, dies kann per

Code: Alles auswählen

$data['force_approved_state'] = true;
erzwungen werden

€dit: Laut viewtopic.php?f=93&t=200424 muss du dazu mindestens 3.0.6 verwenden *just4info*
ike
Mitglied
Beiträge: 11
Registriert: 08.06.2009 12:10

Re: Rechte für automatisierte Forenpostings setzen

Beitrag von ike »

Hi!

Das Problem lag ganz woanders. Kein Wunder, dass ich es nicht auf die Schnelle gefunden hatte. Ich habe an einer gänzlich anderen Stelle eine Prüfung auf die Berechtigungen anzugebender Usernamen. Dies habe ich darüber gelöst, dass ich die Funktion "ghost_permissions" aufgerufen habe (da ich an dieser Stelle zwar die User-ID, nicht aber das Passwort habe) - nichts ahnend, dass "ghost_permissions" die Rechte hart in eine SQL-Tabelle schreibt, so dass sie auch aus anderen Sitzungen heraus gelten.

Nachdem ich das festgestellt habe, geht es grundsätzlich. (ich resette jetzt die Daten am Ende des Prozesses) Problematisch ist es dennoch - ich benötige eine andere Möglichkeit, um die Rechte einer anzugebenden User-ID zu prüfen.

Michael
Antworten

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