gibt es eine einfache Möglichkeit (von extern) zu prüfen, ob ein Benutzer im Backend eingeloggt ist?
Folgendes funktioniert anisch, der Haken ist dass die Session beim Abmelden aus dem Backend nicht zerstört wird und offen bleibt, bis Sie ausläuft - ist das ggf. ein Bug? (Community Edition 4.4.0_28699)
ich verstehe nicht ganz, Du kannst ja nicht auf eine fremde Session zugreifen. Was Du tun könntest, ein Modul schreiben das in der Tabelle ‘oxusers’ ein Feld ‘geloggt’ füllt, und dieses Abfragen. Allerdings wird hier das auslogen Probleme bereiten
natürlich kann man nicht auf fremde Sessions zugreifen - das will ich auch nicht. Ich möchte auf die Sessiondaten des aktuellen Benutzers zurückgreifen
foo.php setzt $_SESSION[‘benutzer_ist_eingeloggt’], bar.php liest dieses wieder aus - das ist wirklich nichts ungewöhnliches. Nur ist der Shop scheinbar an den PHP-Sessions vorbeiprogrammiert - anstatt die PHP-Sessions bzw. deren Keys zu verwenden, werden eigene IDs in den Cookies admin_sid und sid geführt.
Und wie das genau funktioniert, wäre interessant zu wissen.
Also wenn der eingeloggte Benutzer eine Session hat, in der Daten stehen, wie willst Du dann (logischerweise als anderer Benutzer) auf dessen Sessiondaten zugreifen? Um das zu können musst Du auf dessen Session zugreifen können.
DU willst auf die Session-Daten des Shops zugreifen, die Session-Daten wurden aber von jemand anderen und zwar dem Besucher erzeugt, weshalb DU da nicht zugreifen kannst.
<?php
class Moxiecode_OxidAuthenticator extends Moxiecode_ManagerPlugin {
/**
* Gets called on a authenication request. This method should check sessions or simmilar to
* verify that the user has access to the backend.
*
* This method should return true if the current request is authenicated or false if it's not.
*
* @param ManagerEngine $man ManagerEngine reference that the plugin is assigned to.
* @return bool true/false if the user is authenticated.
*/
function onAuthenticate(&$man) {
session_name("admin_sid");
session_start();
if($_SESSION['auth'] && $_SESSION['blIsAdmin']) {
return true;
} else {
echo false;
}
}
}
// Add plugin to ManagerEngine
$man->registerPlugin("OxidAuthenticator", new Moxiecode_OxidAuthenticator());
?>