[BUG 4.8.14] Frontend-Login und Seiten-Cache machen Probleme

Gesperrt
funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

[BUG 4.8.14] Frontend-Login und Seiten-Cache machen Probleme

Beitrag von funomat »

Hallo zusammen,

ich habe gerade ein, meiner Meinung nach, sehr großen Fehler in der 4.8.14 festgestellt und es wundert mich ein wenig, dass ich dazu hier noch nichts finden konnte.

Folgendes Szenario:

Login-Bereich im Frontend. Zwei Benutzergruppen die unterschiedliche Bereiche der Seite sehen dürfen. An einem Rechner meldet sich Benutzer A an. An einem anderen Rechner meldet sich Benutzer B an. Erstmal sehen beide jeweils die für sie freigeschaltete Navigation und im Login/-out Block wir angezeigt "Angemeldet als Benutzer A" bzw. "...Benutzer B". Benutzer A navigiert durch die Seiten. Alles soweit in Ordnung. Wenn jetzt aber Benutzer B eine neue Seite aufruft, sieht er auf einmal die Navigation von Benutzer B und Login/-out Block wir angezeigt "Angemeldet als Benutzer A"!!!! :!:

Sobald man den Cache über das Backend löscht, ist alles wieder ok. Das Cachen der Seiten ist ja eigentlich eine feine Sache, macht hier aber wenig Sinn, da der Benutzer ja immer nur ganz aktuelle Daten sehen soll, die auf Ihn zugeschnitten sind. Besonders bei Login-Bereich wo mit persönlichen Daten gearbeitet wird, wäre dieser Fehler sehr schwerwiegend!!

Ich werde jetzt versuchen mich dadurch zu behelfen, dass ich vor dem laden der Seiten folgenden Code ausführe:

Code: Alles auswählen

cInclude('classes', 'class.purge.php');
$oPurge = new Purge($db, $cfg, $cfgClient);
$oPurge->clearClientCache($iClientId, 'cache/content/');
Leider habe ich aber auch schon festgestellt, dass das scheinbar nicht immer sauber funtioniert, wieso auch immer. Evtl. weiß da ja jemand was besseres.

Ansonsten würde ich sagen, gehört das auf jeden Fall nach Bugs verschoben!!!

Gruß
funomat
Zuletzt geändert von funomat am Di 22. Mär 2011, 10:01, insgesamt 1-mal geändert.
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)
funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Re: !!Schwerer Fehler!! Frontend-Login und Cache

Beitrag von funomat »

Folgende Änderung in der front_content.php hat bisher ganz gut geholfen:

alter Code ab Zeile 764 (ca.):

Code: Alles auswählen

...
        else
        {
            // CEC to check category access
            CEC_Hook::setBreakCondition(true, false); // break at "true", default value "false"
            $allow = CEC_Hook::executeWhileBreakCondition(
                'Contenido.Frontend.CategoryAccess', $lang, $idcat, $auth->auth['uid']
            );
...
ersetzt durch:

Code: Alles auswählen

...
        else
        {
            cInclude('classes', 'class.purge.php');
            $oPurge = new Purge($db, $cfg, $cfgClient);
            $oPurge->clearClientCache($iClientId, 'cache/content/');

            // CEC to check category access
            CEC_Hook::setBreakCondition(true, false); // break at "true", default value "false"
            $allow = CEC_Hook::executeWhileBreakCondition(
                'Contenido.Frontend.CategoryAccess', $lang, $idcat, $auth->auth['uid']
            );
...
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)
Gesperrt