Skip to content

Alle Aufrufe von gateway.php setzen den SystemUser als Session User

Problem

Betroffene Datei: packages/quiqqer/payments/bin/gateway.php

Betroffener Code

// @todo überdenken, vllt auf den order benutzer setzen
define('SYSTEM_INTERN', true);

[...]

QUI\Permissions\Permission::setUser(
    QUI::getUsers()->getSystemUser()
);

Durch die Konstante SYSTEM_INTERN gibt QUI::getUserBySession() immer den SystemUser zurück. Dies kann aber zu Problemen führen, z.B. wenn nach einer Bestätigung einer Zahlung bei PayPal über die gateway.php zurückgeleitet wird.

Innerhalb dieses PHP-Prozesses wird dann z.B. onQuiqqerOrderSuccessful gefeuert. Hier gehe ich in diversen Events jedoch davon aus, dass der Session-Benutzer der eingeloggte Benutzer ist (z.B. zum Hinzufügen zu einer Mitgliedschaft).

Lösungvorschlag

Der Gateway-URL kann ein bestimmter Parameter mitgegeben werden, der dafür sorgt, dass der Session-User auf den Order-Benutzer (Customer) gesetzt wird.

Für weitere Fragen bitte an @mor wenden.