Vorschau im geschützten Bereich funktioniert nicht

Gesperrt
rudibaer
Beiträge: 13
Registriert: Di 15. Mär 2005, 23:41
Kontaktdaten:

Vorschau im geschützten Bereich funktioniert nicht

Beitrag von rudibaer » Mi 10. Sep 2008, 11:12

Hallo,

ich habe folgende Contenido Version:
Contenido 4.8.6 mit mbr

Wenn ich eine Kategorie schütze, denn kann ich die Vorschau nicht mehr aufrufen. Wo die Vorschau sein sollte, kommen folgende Fehlermeldungen:

Code: Alles auswählen

Warning: include_once(config.php) [function.include-once]: failed to open stream: No such file or directory in /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php on line 80

Warning: include_once() [function.include]: Failed opening 'config.php' for inclusion (include_path='.:/usr/share/pear/php5') in /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php on line 80

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 479

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 484

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 485

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 486

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 487

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 488

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 489

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/session.inc on line 128

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php on line 235

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php on line 421

Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php:80) in /is/htdocs/wp1081043_NFOAIAJQHV/www/contenido/external/backendedit/front_content.php on line 454

Warning: Contenido_Frontend_Challenge_Crypt_Auth::include(front_crcloginform.inc.php) [contenido-frontend-challenge-crypt-auth.include]: failed to open stream: No such file or directory in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/local.php on line 677

Warning: Contenido_Frontend_Challenge_Crypt_Auth::include(front_crcloginform.inc.php) [contenido-frontend-challenge-crypt-auth.include]: failed to open stream: No such file or directory in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/local.php on line 677

Warning: Contenido_Frontend_Challenge_Crypt_Auth::include() [function.include]: Failed opening 'front_crcloginform.inc.php' for inclusion (include_path='.:/is/htdocs/wp1081043_NFOAIAJQHV/www/pear/:/usr/share/pear/php5') in /is/htdocs/wp1081043_NFOAIAJQHV/www/conlib/local.php on line 677
Habe dazu hier leider nichts gefunden, hat jemand eine Idee?

timo.trautmann_4fb
Beiträge: 472
Registriert: Di 15. Apr 2008, 15:57
Wohnort: Michelstadt
Kontaktdaten:

Beitrag von timo.trautmann_4fb » Fr 12. Sep 2008, 11:08

Im Beispielmandaten kann ich geschützte Kategorien problemlos aufrufen. Auch die Artikel darin kann ich problemlos editieren. Kann den Fehler daher leider nicht nachvollziehen. Bitte um weitere Informationen. Sehe spontan leider keinen Bug.

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » Fr 12. Sep 2008, 12:35

Hallo,

konnte das Problem mit einer frischen Contenidoinstallation nicht reproduzieren.

- Contenido 4.8.6
- MR Plugin 0.3.3

Bei der Vorschau des Artikels im Backend innerhalb einer geschützten Kategorie erhalte ich jeweils die definierte Fehlerseite, mit oder ohne aktiviertem MR Plugin.

Es gab keine Fehlermeldungen und keine Einträge in der errorlog.txt.

Gruß
xmurrix

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Beitrag von langwebdesign » Fr 12. Sep 2008, 20:39

Hallo Zusammen,

ich habe ein ähnliches Problem.
System: 4.8.7 mit MR 0.4.3

Die Gesamte Hauptnavigation ist geschützt

Beim Aufruf der Vorschau meldet der Firefox eine Umleitungsschleife.

Im Errorlog steht dazu nichts!

eventuell hängt das irgendwie zusammen?

Wenn die Hauptnavigation nicht geschützt ist funktioniert die Vorschau!

mfg Stephan

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » Sa 13. Sep 2008, 21:11

Hallo zusammen,

kann euch folgende Lösung anbieten:

Sollten die Probleme mit der Artikelvorschau mit dem MR-Plugin zu tun haben, lässt sich das Umschreiben der URLs im Backend deaktivieren.

Öffnet die Datei "/contenido/plugins/mod_rewrite/includes/config.plugin.php" und ändert den Codeblock

Code: Alles auswählen

    // Add url rewriting function to Contenido Extension Chainer
    $_cecRegistry->addChainFunction('Contenido.Frontend.CreateURL', 'mr_build_new_url');

    if ($cfg['mod_rewrite']['rewrite_urls_at_congeneratecode'] == 1) {

    	// Add url rewriting at code generation to Contenido Extension Chainer
    	$_cecRegistry->addChainFunction('Contenido.Content.conGenerateCode', 'mr_build_generated_code');
    	$GLOBALS['mpDebug']->addDebug('conGenerateCode()', 'added chain to', __FILE__);
    	
    } elseif ($cfg['mod_rewrite']['rewrite_urls_at_front_content_output'] == 1) {

    	// Add url rewriting at html output to Contenido Extension Chainer
    	$_cecRegistry->addChainFunction('Contenido.Frontend.HTMLCodeOutput', 'mr_build_generated_code');
   		$GLOBALS['mpDebug']->addDebug('front_content.php', 'added chain to output at', __FILE__);
    	
    } else {

    	// Fallback solution: Add url rewriting at code generation to Contenido Extension Chainer
    	$_cecRegistry->addChainFunction('Contenido.Content.conGenerateCode', 'mr_build_generated_code');
   		$GLOBALS['mpDebug']->addDebug('conGenerateCode()', 'added fallback chain to', __FILE__);
    	
    }
in

Code: Alles auswählen

    if (!isset($contenido)) {
        // add url rewriting related functions only at frontend

        // Add url rewriting function to Contenido Extension Chainer
        $_cecRegistry->addChainFunction('Contenido.Frontend.CreateURL', 'mr_build_new_url');
    
        if ($cfg['mod_rewrite']['rewrite_urls_at_congeneratecode'] == 1) {

        	// Add url rewriting at code generation to Contenido Extension Chainer
        	$_cecRegistry->addChainFunction('Contenido.Content.conGenerateCode', 'mr_build_generated_code');
        	$GLOBALS['mpDebug']->addDebug('conGenerateCode()', 'added chain to', __FILE__);
        	
        } elseif ($cfg['mod_rewrite']['rewrite_urls_at_front_content_output'] == 1) {

        	// Add url rewriting at html output to Contenido Extension Chainer
        	$_cecRegistry->addChainFunction('Contenido.Frontend.HTMLCodeOutput', 'mr_build_generated_code');
       		$GLOBALS['mpDebug']->addDebug('front_content.php', 'added chain to output at', __FILE__);
        	
        } else {

        	// Fallback solution: Add url rewriting at code generation to Contenido Extension Chainer
        	$_cecRegistry->addChainFunction('Contenido.Content.conGenerateCode', 'mr_build_generated_code');
       		$GLOBALS['mpDebug']->addDebug('conGenerateCode()', 'added fallback chain to', __FILE__);
        	
        }
    }
Das kann im Grunde für alle Versionen des Plugins so übernommen werden. Der Code sorgt dafür, dass im Backend keine Pluginfunktionen den folgenden Chains hinzugefügt werden:
- Contenido.Frontend.CreateURL
- Contenido.Content.conGenerateCode
- Contenido.Frontend.HTMLCodeOutput

Grüße
xmurrix

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Beitrag von langwebdesign » So 14. Sep 2008, 10:03

Hallo,

also wenn ich den hacken für Mod_Rewrite raus nehme bekommen ich den gleichen Fehler. Mir ist jetzt auch aufgefallen das im Editor die geschützte Navigation nicht angezeigt wird.

Das passiert immer wenn ich einen Artikel editiere dessen Kategorie geschützt ist. Das verhalten ist mit eingeschaltetem und ausgeschaltetem Mod_Rewrite das gleiche. Ich arbeite als Systemadministrator!

stephan

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » So 14. Sep 2008, 11:11

Wenn bei der Vorschau im geschützten Bereich eine Umleitungsschleife stattfindet, vermute ich, dass hier auf die Fehlerseite umgeleitet wird, die es nicht gibt. Das wiederum leitet dann auch zur Fehlerseite.

Öffne die /contenido/external/backendedit/front_content.php und ändere die Zeile 815 von

Code: Alles auswählen

    header($errsite);
in

Code: Alles auswählen

    $header = str_replace('Location: ', '', $errsite);
    echo '<a href="'.$header.'">'.$header.'</a>';
    exit();
Dann solltest du sehen, wohin die fehlerhafte Weiterleitung geht.

Gruß
xmurrix

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Beitrag von langwebdesign » So 14. Sep 2008, 18:38

Hi xmurrix,

dann bekomme ich folgende ausgabe:

front_content.php?client=1&idcat=31&idart=36&lang=1&error=1

stephan

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » So 14. Sep 2008, 20:41

langwebdesign hat geschrieben:...
dann bekomme ich folgende ausgabe:
front_content.php?client=1&idcat=31&idart=36&lang=1&error=1
...
Und was passiert, wenn du auf den Link klickst, landest du dann auf der Fehlerseite? Falls die Fehlerseite auch geschützt ist, wird daraus eine Endlosweiterleitung.

Nun, dass die Vorschau im Backend zur Fehlerseite führt, obwohl du als Systemadministrator angemeldet bist, hat eine andere Ursache. Es ist ein kleiner Bug in der /contenido/plugins/chains/includes/include.chain.frontend.cat_backendaccess.php.

Darin wird überprüft, ob der aktuelle Backenduser das Recht auf die geschützte Seite hat. Diese Überprüfung liefert immer false.

Ändere die Funktion von

Code: Alles auswählen

function cecFrontendCategoryAccess_Backend($idlang, $idcat, $user)
{
	global $cfg;
	$sql = "SELECT idright 
					FROM ".$cfg["tab"]["rights"]." AS A,
						 ".$cfg["tab"]["actions"]." AS B,
						 ".$cfg["tab"]["area"]." AS C
					 WHERE B.name = 'front_allow' AND C.name = 'str' AND A.user_id = '". Contenido_Security::toInteger($user)."' AND A.idcat = '".Contenido_Security::toInteger($idcat)."'
							AND A.idarea = C.idarea AND B.idaction = A.idaction AND A.idlang = '".Contenido_Security::toInteger($idlang)."'";
	$db2 = new DB_Contenido;
	$db2->query($sql);

	if (!$db2->next_record())
	{
		return false;
	}
	else
	{
		return true;
	}
}
in

Code: Alles auswählen

function cecFrontendCategoryAccess_Backend($idlang, $idcat, $user)
{
	global $cfg, $perm;

	if ($perm->have_perm()) {
        // sysadmin or client admin has allways access to protected categories
        return true;
    }
    
    $db2 = new DB_Contenido;
	$sql = "SELECT idright 
					FROM ".$cfg["tab"]["rights"]." AS A,
						 ".$cfg["tab"]["actions"]." AS B,
						 ".$cfg["tab"]["area"]." AS C
					 WHERE B.name = 'front_allow' AND C.name = 'str' AND A.user_id = '". Contenido_Security::escapeDB($user, $db2) ."' AND A.idcat = '".Contenido_Security::toInteger($idcat)."'
							AND A.idarea = C.idarea AND B.idaction = A.idaction AND A.idlang = '".Contenido_Security::toInteger($idlang)."'";
	$db2->query($sql);
	if (!$db2->next_record())
	{
		return false;
	}
	else
	{
		return true;
	}
}
Dann werden Artikel in geschützten Kategorien angezeigt, wenn der Backenduser ein Systemadmin oder Clientadmin ist oder explizit das Recht dafür hat.

Gruß
xmurrix

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Beitrag von langwebdesign » Mo 15. Sep 2008, 06:00

Guten Morgen,

wenn ich auf den Link klicke kommt wieder die Umleitungsschleife!
ich habe auch noch keine Fehlerseite definiert.
Gehe mal davon aus dann sollte ich zur startseite kommen, welche natürlich auch gesperrt ist!

Das ändern dieser Funktion löst zwar das Problem mit der Schleife aber die Navigation wird immer noch nicht angezeigt!
Wird diese Änderung in die nächste Version übernommen?

Wie kann ich einem Sysadmin rechte auch einen geschützten bereich geben?
Oder geht das nicht beim Sysadmin? und wie ist das bei einem Standard User?

mfg Stephan

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » Mo 15. Sep 2008, 09:08

Morgen,
langwebdesign hat geschrieben:...Das ändern dieser Funktion löst zwar das Problem mit der Schleife aber die Navigation wird immer noch nicht angezeigt!
Wird diese Änderung in die nächste Version übernommen?...
Ja, der hier beschriebene Fix sollte in der nächsten Version enthalten sein.
Du schreibts, dass die Navigation nicht angezeigt wird. Meinst du damit die Anzeige der Navigation in der Vorschau? Falls ja, dann ist wird es sich um ein ähnliches Problem handeln, da müsste man sich die Funktionen genauer ansehen.
langwebdesign hat geschrieben:...Wie kann ich einem Sysadmin rechte auch einen geschützten bereich geben?
Oder geht das nicht beim Sysadmin? und wie ist das bei einem Standard User?
Sysadmin und Clientadmins haben automatisch alle Rechte auf alle Bereiche, bei denen kann man keine rechte explizit setzten. Für andere Usergruppen lässt sich das im Backend konfigurieren.

Gruß
xmurrix

timo.trautmann_4fb
Beiträge: 472
Registriert: Di 15. Apr 2008, 15:57
Wohnort: Michelstadt
Kontaktdaten:

Beitrag von timo.trautmann_4fb » Di 18. Nov 2008, 12:54

Konnte den Bug nachvollziehen und habe einen Fix eingecheckt:

cms/front_content.php
contenido/external/backendedit/front_content.php
contenido/external/frontend/front_content.php


Suche nach:

Code: Alles auswählen

if (!$allow)
um Zeile 812

DAVOR einfügen:

Code: Alles auswählen

			/*
				added 2008-11-18 Timo Trautmann
				in backendeditmode also check if logged in backenduser has permission to view preview of page
			*/
			if ($allow == false && $contenido && $perm->have_perm_area_action_item("con_editcontent", "con_editart", $idcat)) {
				$allow = true;
			}
Hoffe, dass es das Problem löst. Freue mich auf Feedback.

Gesperrt