Ich möchte Benutzern und Gruppen gezielt Frontend-Zugriff auf bestimmte Artikel/Kategorien erlauben. Das funktionierte bisher mit einem Modul von Black Widow, das man in den Head eines jeden zu sperrenden Artikels brachte.
Plötzlich klappt das nicht mehr. Wenn sich ein Benutzer gültig einloggt, hat er jetzt Zugriff auf *alle* geschützten Artikel, egal ob ich ihm das per "Frontend Zugriff" erlaubt habe oder nicht.
Fragen:
- Hat das damit zu tun, dass ich von 4.4.3 nach 4.4.4 gewechselt habe?
- Hat jemand möglicherweise das Modul angepasst?
- Hat jemand vielleicht eine andere Möglichkeit gefunden?
- oder gibt es in der 4.4.4 sogar eine "offizielle" Möglichkeit, mein Dingen umzusetzen?
Für Hilfe sehr dankbar
Gruss Karl
Frontend Login - gezieltes Sperren
hast du auch einen link zum modul ? vielleicht kann dir dann eher einer helfen...
*** make your own tools (wishlist :: thx)
Das Modul ist dieses hier:
Code: Alles auswählen
<?php
/****************************************************
** Contenido 4.4.x Modul
** OUTPUT
**
** Name: Privacy Check
** Autor: Timo Goedel
** Version: 0.1
** Erstellt: 07.01.2004
** Modifiziert: 07.01.2004
*****************************************************/
$areaID = 6; //ID of the area called "str"
$actionID = 359; //ID of the action called "front_allow" and the idarea = $areaID
$redirectTime = 5000; //time to wait before redirecting
$redirectURL = $sess->url('front_content.php'); //URL to redirect (no user logged in)
$redirectURLDenied = $sess->url('front_content.php'); //URL to redirect (user is not authorized)
$redirectText = 'Startseite'; //statusbar-text of the redirect-link (onmouseover)
$accessGranted = false;
if ($auth->auth["uid"] != "nobody")
{
$permissions = $auth->auth["perm"];
$permissions = explode(',', $permissions);
foreach ($permissions as $perm)
if ($perm == "sysadmin" || $perm == "admin[".$client."]")
$accessGranted = true;
if (!$accessGranted)
{
$db_Connect = new DB_Contenido;
$sql_checkFrontendAccess = "SELECT rights.idright
FROM ".$cfg["tab"]["rights"]." rights,
".$cfg["tab"]["groupmembers"]." groupmembrs
WHERE rights.idarea = ".$areaID." AND
rights.idaction = ".$actionID." AND
rights.idclient = ".$client." AND
rights.idlang = ".$lang." AND
(rights.idcat = 0 OR rights.idcat = ".$idcat.") AND
(rights.user_id = '".$auth->auth["uid"]."' OR
(groupmembrs.user_id = '".$auth->auth["uid"]."' AND
rights.user_id = groupmembrs.group_id));";
$db_Connect->query($sql_checkFrontendAccess);
if ($db_Connect->next_record())
$accessGranted = true;
}
if(!$accessGranted)
{
echo("<script type=\"text/javascript\">\r\n<!--\r\nwindow.setTimeout(\"window.location.href = \\\"".$redirectURLDenied."\\\"\", ".$redirectTime.");\r\n//-->\r\n</script>");
echo("</head"."><body>");
echo("<p align=\"center\"><br/>Sie haben leider nicht genügend Rechte um diese Seite zu betreten!<br/>Sie werden in ca. ".round($redirectTime/1000,0)." Sekunden weitergeleitet ...<br/>... sollte Ihr Browser keine Weiterleitung unterstützen, klicken Sie bitte <a href=\"".$redirectURLDenied."\" onMouseover=\"status='".$redirectText."';return true;\" onMouseout=\"status='';return true;\">hier</a>!</p>");
echo('</body></html>');
die();
}
}
else
{
echo("<script type=\"text/javascript\">\r\n<!--\r\nwindow.setTimeout(\"window.location.href = \\\"".$redirectURL."\\\"\", ".$redirectTime.");\r\n//-->\r\n</script>");
echo("</head"."><body>");
echo("<p align=\"center\"><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>Diese Seite ist ein geschützer Bereich!<br/>Sie müssen sich zunächst mit Ihrem Benutzernamen und Passwort anmelden!<br/><br/>Sie werden in ca. ".round($redirectTime/1000,0)." Sekunden weitergeleitet ...<br/>... sollte Ihr Browser keine Weiterleitung unterstützen, klicken Sie bitte <a href=\"".$redirectURL."\" onMouseover=\"status='".$redirectText."';return true;\" onMouseout=\"status='';return true;\">hier</a>!</p>");
echo('</body></html>');
die();
}
?>
Gruss Karl
Nach ewiger Sucherei hab ich den Fehler: Es lag *nicht* an Black Widows Privacy Check Modul.
Offensichtlich *kann* folgendes passieren:
Wenn man einer Gruppe für eine Kategorie das Frontend Zugriffsrecht erteilt, später aber wieder wegnimmt, so wird dies zwar in der Contenido Benutzerverwaltung richtig angezeigt (kein Häkchen), aber in der Tabelle "rights" bleibt das Recht stehen, weshalb das Privacy Check Modul den Zugriff weiterhin gewährt (da es ja direkt in dieser Tabelle nachschaut).
Komisch ist nur:
Weiß jemand von euch etwas zu diesem Problem?
Offensichtlich *kann* folgendes passieren:
Wenn man einer Gruppe für eine Kategorie das Frontend Zugriffsrecht erteilt, später aber wieder wegnimmt, so wird dies zwar in der Contenido Benutzerverwaltung richtig angezeigt (kein Häkchen), aber in der Tabelle "rights" bleibt das Recht stehen, weshalb das Privacy Check Modul den Zugriff weiterhin gewährt (da es ja direkt in dieser Tabelle nachschaut).
Komisch ist nur:
- - Warum zeigt die Contenido Benutzerverwaltung kein Häkchen? Schaut sie nicht in der gleichen Tabelle nach?
- Seitdem ich das Recht in der Tabelle manuell gelöscht habe, kann ich es innerhalb Contenidos wieder ein- und ausschalten und alles funzt normal.
Weiß jemand von euch etwas zu diesem Problem?
Gruss Karl
-
- Beiträge: 44
- Registriert: Mo 25. Aug 2003, 22:41
- Kontaktdaten: