Hallo,
ich habe mit früheren Versionen von Contenido schon Frontendgruppen eingerichtet.
In einer neu installierten 4.8.6 habe ich nun einen geschützten Baum mit 4 Kategorien, denen ich jeweils Frontendgruppenberechtigungen zugewiesen habe (pro Gruppe je 1 Kategorie). Wenn ich mich nun mit den Frontendbenutzern einwähle, die zur jeweiligen Kategorie gehören, sehen ALLE Benutzer (egal, welche Kategorie ich freigeschaltet habe) auch ALLE Kategorien !?
Hat jemand das gleiche Problem oder weiß Rat?
LG
Gelöst [kein Bug]: Frontend-Berechtigungen werden ignoriert
Gelöst [kein Bug]: Frontend-Berechtigungen werden ignoriert
Zuletzt geändert von homtata am Mo 28. Jul 2008, 16:23, insgesamt 1-mal geändert.
nun ja, der fehler tritt in zusammenarbeit mit der standard "navigation main" ebenso auf wie mit meiner gedoppelten version. in anderen versionen von 4.8.6 mit dem navigationsmodul aus 4.6.23 tritt der fehler nicht auf.
für meinen geschützten bereich habe ich das standardmodul von contenido 4.8.6 nochmals kopiert - mit geänderten variablen an einigen stellen, damit es überhaupt angezeigt wird. und zwar so:
Was könnte noch nicht stimmen? wie ist im code "getEffectiveSetting" zu verwenden, und was sagt insbesondere die hintere zahl "1" dort aus??
für meinen geschützten bereich habe ich das standardmodul von contenido 4.8.6 nochmals kopiert - mit geänderten variablen an einigen stellen, damit es überhaupt angezeigt wird. und zwar so:
Ich habe in der Mandanteneinstellung "navigation, idcat-restricted, 44" eingesetzt (denn 44 ist die idcat).<?php
/**
* $RCSfile$
*
* Description: Navigation, left side.
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2008-04-07
* }}
*
* $Id$
*/
// include Contenido_FrontendNavigation class
cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php');
// get start idcat
$iIdcatStart = getEffectiveSetting('navigation', 'idcat-restricted', 1);
// instantiate 2nd + 3rd template object, reset all
$tpl2 = new Template();
$tpl3 = new Template();
if (!isset($tpl) || !is_object($tpl)) {
$tpl = new Template();
}
$tpl->reset();
$tpl2->reset();
$tpl3->reset();
// build navigation
try {
$oFeNav3 = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
$oBreadcrumb = new Contenido_FrontendNavigation_Breadcrumb($db, $cfg, $client, $lang, $cfgClient);
$aBreadcrumb = $oBreadcrumb->getAsArray($idcat, 1); // this nav starts at level 1
$oFeNav3->setAuth($auth); // to make sure user sees what he's allowed to see
$oContenidoCategories = $oFeNav3->getSubCategories($iIdcatStart, true);
if ($oContenidoCategories->count() > 0) {
foreach ($oContenidoCategories as $oContenidoCategory) {
$sSubcats = '';
$tpl2->reset();
$bHasActiveSubCat = false;
// check if we need to load subcategories
$oSubCatsLevel2 = $oFeNav3->getSubCategories($oContenidoCategory->getIdCat(), true);
$aSubCatsLevel2 = $oFeNav3->getSubCategories($oContenidoCategory->getIdCat(), false);
$bShowSubcatLevel2 = (intval($idcat) == $oContenidoCategory->getIdCat() || in_array(intval($idcat), $aSubCatsLevel2)
|| (isset($aBreadcrumb[2]) && intval($idcat) == $aBreadcrumb[2] && in_array($aBreadcrumb[1], $aSubCatsLevel2)))
? true : false;
if ($bShowSubcatLevel2 === true && $oSubCatsLevel2->count() > 0) {
foreach ($oFeNav3->getSubCategories($oContenidoCategory->getIdCat(), true) as $oSubCategory) {
$bHasActiveSubSubCat = false;
// check if we need to load subsubcategories
$oSubCatsLevel3 = $oFeNav3->getSubCategories($oSubCategory->getIdCat(), true);
$aSubCatsLevel3 = $oFeNav3->getSubCategories($oSubCategory->getIdCat(), false);
$bShowSubcatLevel3 = (intval($idcat) == $oSubCategory->getIdCat() ||
in_array(intval($idcat), $aSubCatsLevel3))
? true : false;
$sSubcats2 = '';
if ($bShowSubcatLevel3 === true && $oSubCatsLevel3->count() > 0) {
foreach ($oSubCatsLevel3 as $oSubSubCategories) {
if ($bHasActiveSubCat === false && intval($idcat) == $oSubSubCategories->getIdCat()) {
$bHasActiveSubCat = true;
}
if ($bHasActiveSubSubCat === false && intval($idcat) == $oSubSubCategories->getIdCat()) {
$bHasActiveSubSubCat = true;
}
toTpl($tpl3, $oSubSubCategories, (intval($idcat) == $oSubSubCategories->getIdCat() ? ' class="active"' : ''), '');
}
$sSubcats2 = $tpl3->generate('templates/navigation_main_item.html', true, false);
$tpl3->reset();
$tpl3->set('s', 'items', $sSubcats2);
$tpl3->set('s', 'css-class', ' class="subSubNavigation"');
$sSubcats2 = $tpl3->generate('templates/navigation_main_container.html', true, false);
}
if ($bHasActiveSubCat === false && intval($idcat) == $oSubCategory->getIdCat()) {
$bHasActiveSubCat = true;
}
toTpl3($tpl2, $oSubCategory,
(intval($idcat) == $oSubCategory->getIdCat() || $bHasActiveSubSubCat === true ? ' class="active"' : ''),
$sSubcats2);
}
$sSubcats = $tpl2->generate('templates/navigation_main_item.html', true, false);
$tpl2->reset();
$tpl2->set('s', 'items', $sSubcats);
$tpl2->set('s', 'css-class', ' class="subNavigation"');
$sSubcats = $tpl2->generate('templates/navigation_main_container.html', true, false);
}
toTpl($tpl, $oContenidoCategory, ($bHasActiveSubCat === true || intval($idcat) == $oContenidoCategory->getIdCat() ? ' class="active"' : ''), $sSubcats);
}
$sCats = $tpl->generate('templates/navigation_main_item.html', true, false);
$tpl->reset();
$tpl->set('s', 'css-class', '');
$tpl->set('s', 'items', $sCats);
$tpl->generate('templates/navigation_restricted_container.html');
}
} catch (Exception $e) {
echo 'Some error occured: ' . $e->getMessage() . ': ' . $e->getFile() . ' at line '.$e->getLine() . ' ('.$e->getTraceAsString().')';
}
/**
* Helper to push values to Template object
* @param Template $oTpl
* @param Contenido_Category $oCat
* @param string $sActiveCssClass must bei either empty string or " class="classname"
* @param string $sSubcats String with subcategories of current category
*/
function toTpl3(&$oTpl, Contenido_Category $oCat, $sActiveCssClass, $sSubcats) {
$oTpl->set('d', 'css-class', $sActiveCssClass);
$oTpl->set('d', 'url', 'front_content.php?idcat='.$oCat->getIdCat());
$oTpl->set('d', 'title', $oCat->getCategoryLanguage()->getName());
$oTpl->set('d', 'label', $oCat->getCategoryLanguage()->getName());
$oTpl->set('d', 'subcategories', $sSubcats); // followup level
$oTpl->next();
}
?>
Was könnte noch nicht stimmen? wie ist im code "getEffectiveSetting" zu verwenden, und was sagt insbesondere die hintere zahl "1" dort aus??
Okay Leute,
das ist kein Bug, sondern ein Anwender- und Denkfehler:
- Contenido legt alle neu angelegten Frontend-User auch in die Standardgruppe "Contenidos", die alle Rechte besitzt. Dadurch wurden die einzelnen Gruppenrechte für meine User ausgehebelt.
- Nach Löschen der Gruppe "Contenidos" und des Standardusers läuft jetzt alles.
Danke an Timo Trautmann, dass ich ihm damit auf die Nerven fallen durfte
das ist kein Bug, sondern ein Anwender- und Denkfehler:
- Contenido legt alle neu angelegten Frontend-User auch in die Standardgruppe "Contenidos", die alle Rechte besitzt. Dadurch wurden die einzelnen Gruppenrechte für meine User ausgehebelt.
- Nach Löschen der Gruppe "Contenidos" und des Standardusers läuft jetzt alles.
Danke an Timo Trautmann, dass ich ihm damit auf die Nerven fallen durfte
