Seite 1 von 1

Rechte für automatisierte Forenpostings setzen

Verfasst: 01.09.2010 17:19
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

Re: Rechte für automatisierte Forenpostings setzen

Verfasst: 01.09.2010 20:19
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.

Re: Rechte für automatisierte Forenpostings setzen

Verfasst: 01.09.2010 20:45
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*

Re: Rechte für automatisierte Forenpostings setzen

Verfasst: 03.09.2010 18:16
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