Seite 1 von 1
Nach Update von 4.8.7 auf 4.8.9 Gechützter Bereich sichtbar
Verfasst: Do 18. Dez 2008, 09:00
von theodorH
Nach dem Update von 4.8.7 auf 4.8.9 sind in der Hauptnavigation alle geschützte Kategorien sichtbar. Dies ist ebenfalls bei einer neuen Standardinstallation der Fall. Wo kann ich diese wieder verbergen?
Verfasst: Mo 22. Dez 2008, 14:31
von emergence
dies ist auch beim demo mandanten der fall ?
gibts einträge im errorlog.txt ?
Verfasst: Mo 22. Dez 2008, 14:36
von Oldperl
Hallo theodorH,
konnte den Fehler nachvollziehen. In der contenido/classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php ab Zeile 133 steht folgendes
Code: Alles auswählen
// check against fe-auth and against be-access
if ($bUseAuth === true && intval($this->oDb->f('public')) == 0) {
$sPerms = strval($this->oAuth->auth['perm']);
if (strpos($sPerms, 'sysadmin') !== false || strpos($sPerms, 'admin' !== false) ||
(strpos($sPerms, 'client['.strval($this->iClient)).']' !== false && strpos($sPerms, 'lang['.strval($this->iLang)).']' !== false)) {
$this->aCategories[] = (int) $this->oDb->f('idcat');
$this->aLevel[(int) $this->oDb->f('idcat')] = (int) $this->oDb->f('level');
} else {
Dabei ist mir folgender Teil der if-Abfrage etwas schleierhaft und erzeugt den Fehler wie beschrieben
Code: Alles auswählen
||
(strpos($sPerms, 'client['.strval($this->iClient)).']' !== false && strpos($sPerms, 'lang['.strval($this->iLang)).']' !== false)
Dort soll wohl auf die Arrays client bzw. lang geprüft werden, was so aber nicht funktioniert und hier die if-Schleife nicht in den else-Zweig, wie eigentlich gewünscht, verzweigt.
Bis jemand von 4fb da mal geschaut hat, wie das gedacht ist, hilft ein auskommentieren dieses Teils wie folgt.
Code: Alles auswählen
// check against fe-auth and against be-access
if ($bUseAuth === true && intval($this->oDb->f('public')) == 0) {
$sPerms = strval($this->oAuth->auth['perm']);
if (strpos($sPerms, 'sysadmin') !== false || strpos($sPerms, 'admin' !== false) /*|| (strpos($sPerms, 'client['.strval($this->iClient)).']' !== false && strpos($sPerms, 'lang['.strval($this->iLang)).']' !== false)*/) {
$this->aCategories[] = (int) $this->oDb->f('idcat');
$this->aLevel[(int) $this->oDb->f('idcat')] = (int) $this->oDb->f('level');
} else {
Gruß aus Franken
Ortwin
PS: Verschoben nach Bugs
Verfasst: Do 1. Jan 2009, 13:05
von JeromeW
Der Bug wäre für mich ein Grund die Version zu sperren. Wenn da einer persönliche Daten in geschützten Bereichen hat, kann es übel werden...
Viele Grüße
JeromeW
Verfasst: Do 1. Jan 2009, 16:11
von mfweb
Deshalb sollte man ein Update ja auch (zumindest das erste Mal) nie am Produktivsystem machen, sondern immer vorher einmal an einer Kopie ausprobieren. Es könnten ja auch andere Sachen (die im eigenen System angepasst wurden) nicht mehr einwandfrei funktionieren ...
Grüße
mfweb
Verfasst: Mo 5. Jan 2009, 10:37
von timo.trautmann_4fb
Änderung eingecheckt. Zwar wurden die geschützten Kategorien in der Navi angezeigt, jedoch sollte man dennoch keinen Zugriff darauf erhalten haben, sofern man darauf geklickt hat.
Verfasst: Mo 5. Jan 2009, 11:12
von Oldperl
@timo,
was hast du da eingecheckt? Meine Auskommentierung?
Mich hätte schon mal interessiert warum dieser Codeschnipsel da steht. Wurde ja bestimmt nicht grundlos reingeschrieben.
Gruß aus Franken
Ortwin
Verfasst: Mo 5. Jan 2009, 11:38
von timo.trautmann_4fb
Nein, es war nur ein Tippfehler:
Code: Alles auswählen
if ($bUseAuth === true && intval($this->oDb->f('public')) == 0) {
$sPerms = strval($this->oAuth->auth['perm']);
if (strpos($sPerms, 'sysadmin') !== false || strpos($sPerms, 'admin' !== false) ||
(strpos($sPerms, 'client['.strval($this->iClient).']') !== false && strpos($sPerms, 'lang['.strval($this->iLang).']') !== false)) {
$this->aCategories[] = (int) $this->oDb->f('idcat');
$this->aLevel[(int) $this->oDb->f('idcat')] = (int) $this->oDb->f('level');
} else {