[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Community-Addon - Seitenrechte
Seite 1 von 1

Community-Addon - Seitenrechte

Verfasst: 9. Mär 2013, 17:51
von karlnappmitdenasskap
Hi,

ich habe ein Problem mit der REX 4.4.1 Community (V1) Version bzgl. solcher Seiten, die nur für Community-User verfügbar sein sollen.

Wenn ich Kategorien/Artikel anlege, die nur Community-User verfügbar sein sollen, erscheinen diese in der Navigation zwar - wie gewünscht - nur wenn ein User entsprechend angemeldet ist. Wenn man aber den Link zum Artikel kennt, lässt dieser sich jedoch von jedem aufrufen.
Unter "Metadaten/Sonstiges" ist bei "Seitenrechte" "Zugriff für eingeloggte User" eingestellt.

Warum sind die Artikel dennoch für jederman aufrufbar? Was mach ich falsch, was muss ich (ggf. im Community-Addon) umstellen?!

Re: Community-Addon - Seitenrechte

Verfasst: 16. Mär 2013, 02:55
von karlnappmitdenasskap
Hallo,

ich habe jetzt rausgefunden, warum Seiten allgemein zugänglich sind, die normalerweise nur für Community-User verfügbar sein sollten:

Es liegt am AddOn RexSEO i.V.m. der Systemeinstellung $REX['MOD_REWRITE'] = TRUE.

Sobald die rewrite-Mod aktiviert ist, wird die Authentifizierung für die Seiten, die nur für die Community-User bestimmt sind, umgangen.

Ist die rewrite-Mod im Bereich System auf "=FALSE" gestellt, funktioniert auch die Sperrung für Seiten der Community.

Hat jemand ne Idee, wie man dieses Problem lösen könnte, dass man zwar RexSEO und Mod-Rewrite verwendet, die Authentifizierung für Community-Seiten aber trotzdem funktioniert?!

Re: Community-Addon - Seitenrechte

Verfasst: 25. Mär 2013, 14:54
von karlnappmitdenasskap
G E L Ö S T :

Wenn man REX 4.4.1 Community (AddOn 2.9.1) und RexSEO 1.5.1 verwendet, greift das Auth-PlugIn des Community-AddOns zu spät, sodass - eigentlich gesperrte - Community-Seiten durch das URL-rewriting von RexSEO frei zugänglich sind.

Vllt. hat ja noch jeman außer mir diese Kombi laufen und das selbe Problem...

Die Lösung sieht folgendermaßen aus:
Man muss die letzten vier Zeilen der "config.inc.php" des auth-PlugIns entkommentarisieren, dass es so aussieht:

Code: Alles auswählen

<?php


/**
 * Plugin Auth
 * @author jan.kristinus[at]redaxo[dot]de Jan Kristinus
 * @author <a href="http://www.yakamara.de">www.yakamara.de</a>
 */

$mypage = "auth";
$REX['ADDON']['version'][$mypage] = '2.9.1';
$REX['ADDON']['author'][$mypage] = 'Jan Kristinus';
$REX['ADDON']['supportpage'][$mypage] = 'www.yakamara.de/tag/redaxo/';

include $REX["INCLUDE_PATH"]."/addons/community/plugins/auth/classes/class.rex_com_navigation.inc.php";
include $REX["INCLUDE_PATH"]."/addons/community/plugins/auth/classes/class.rex_com_auth.inc.php";

## Register extension points
rex_register_extension('REX_NAVI_CLASSNAME', create_function('','return "rex_com_navigation";'));
rex_register_extension('REXSEO_SITEMAP_ARRAY_CREATED', 'rex_com_auth::rexseo_removeSitemapArticles');

if(isset($I18N) && is_object($I18N))
  $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/community/plugins/auth/lang');

// --- DYN
$REX['ADDON']['community']['plugin_auth']['auth_active'] = 1;
$REX['ADDON']['community']['plugin_auth']['stay_active'] = 1;
$REX['ADDON']['community']['plugin_auth']['article_login_ok'] = 3;
$REX['ADDON']['community']['plugin_auth']['article_login_failed'] = 12;
$REX['ADDON']['community']['plugin_auth']['article_logout'] = 12;
$REX['ADDON']['community']['plugin_auth']['article_withoutperm'] = 12;
$REX['ADDON']['community']['plugin_auth']['login_field'] = "login";
$REX['ADDON']['community']['plugin_auth']['passwd_hashed'] = "1";
// --- /DYN

$REX['ADDON']['community']['plugin_auth']['cookie_ttl'] = 14; // Cookie time to life - in days
$REX['ADDON']['community']['plugin_auth']['passwd_algorithmus'] = "sha1"; // see: hash_algos();

$REX['ADDON']['community']['plugin_auth']['request'] = array();
$REX['ADDON']['community']['plugin_auth']['request']['name'] = "rex_com_auth_name";
$REX['ADDON']['community']['plugin_auth']['request']['psw'] = "rex_com_auth_psw";
$REX['ADDON']['community']['plugin_auth']['request']['stay'] = "rex_com_auth_stay";
$REX['ADDON']['community']['plugin_auth']['request']['activationkey'] = "rex_com_auth_activationkey";
$REX['ADDON']['community']['plugin_auth']['request']['id'] = "rex_com_auth_id";
$REX['ADDON']['community']['plugin_auth']['request']['logout'] = "rex_com_auth_logout";
$REX['ADDON']['community']['plugin_auth']['request']['ref'] = "rex_com_auth_ref";

$REX['ADDON']['community']['xform_path']['value'][] = $REX["INCLUDE_PATH"]."/addons/community/plugins/auth/xform/value/";
$REX['ADDON']['community']['xform_path']['validate'][] = $REX["INCLUDE_PATH"]."/addons/community/plugins/auth/xform/validate/";
$REX['ADDON']['community']['xform_path']['action'][] = $REX["INCLUDE_PATH"]."/addons/community/plugins/auth/xform/action/";

if($REX["REDAXO"])
  if($REX['USER'] && ($REX['USER']->isAdmin() || $REX['USER']->hasPerm("community[auth]")))
    $REX['ADDON']['community']['SUBPAGES'][] = array('plugin.auth','Authentifizierung');

if($REX['ADDON']['community']['plugin_auth']['auth_active'] == 1)
{
  if(!$REX["REDAXO"])
  {
    function rex_com_auth_config()
    {
	  global $REX, $I18N;
	  include $REX["INCLUDE_PATH"]."/addons/community/plugins/auth/inc/auth.php";
	}
	
	//rex_register_extension('ADDONS_INCLUDED', 'rex_com_auth_config');
	
  if(isset($ADDONSsic['status']['rexseo']) && $ADDONSsic['status']['rexseo'])
    rex_register_extension('REXSEO_POST_INIT', 'rex_com_auth_config');
  else
    rex_register_extension('ADDONS_INCLUDED', 'rex_com_auth_config');
  }
}

?>
Bei diesem Problem war mir übrigends XONG behilflich...ihm gebürt die Ehre.

Danke nochmal auf diesem Wege für Deine Hilfe! :)

Vllt. profitiert ja noch jemand hiervon...

Re: Community-Addon - Seitenrechte

Verfasst: 1. Jul 2016, 15:55
von jfax
Ich hatte eben dasselbe Problem mit einer ganz neuen Community und Rexseo in 1.6.0, da funktioniert es auch mit den letzten Zeilen, jedoch hat sich der EP geändert und heißt nun nicht mehr:

Code: Alles auswählen

rex_register_extension('REXSEO_POST_INIT', 'rex_com_auth_config');
sondern

Code: Alles auswählen

rex_register_extension('REXSEO_INCLUDED', 'rex_com_auth_config');