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.