Frontend Login - Artikel gezielt einblenden bzw. ausblenden

Gesperrt
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Frontend Login - Artikel gezielt einblenden bzw. ausblenden

Beitrag von ReneWho »

Halli hallo hallöchen,

das thema frontend login kann wohl keiner mehr hören. eines vorweg:
ich habe mich durchs forum gewühlt und gesucht wie doof aber wirklich
garnichts gefunden das mein problem irgendwie lösen könnte.

Folgendes ist stand der dinge:

Ich habe einen bereich angelegt, der durch das Modul von Black Widow
geschützt ist.
Hier schonmal das script:

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(); 
} 
?> 
Wenn ich diesen code als modul in irgendeinem artikel innerhalb des
heads platziere, kann niemand den entsprechenden artikel sehen
(zum login nehme ich das standard contenido 4.4.5er loginmodul)

wenn man nun eingelogt ist hat man zugriff auf alle möglichen
artikel, die mit diesem script versehen sind.

Mein Problem:

Jeder benutzer soll seine eigene kategorie bekommen, in der verschiedene artikel sind. beim login, soll der user direkt auf den
startartikel seiner kategorie weitergeleitet werden.

Ich habe schon ein workaround begonnen, mit einer kategorie liste.
haken an der sache ist, jeder benutzer sieht die namen der kategorien der
anderen user. zwar kann er diese nicht betreten, da er dafür keinen frontend
zugriff hat - aber ich möchte auch nicht, dass er diese sieht. hm.

ich weiß :-) ich sollte mich mal mit einem php programmierer zusammentun,
ich kann code lesen und halbwegs verstehen - aber vom coden hab ich
echt 0 plan.

ich danke schonmal für lösungsvorschläge oder hinweise
in diesem sinne.

lieben gruß René
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Ich bin gerade dabei, ein Modul zu erstellen, dass auf einer ungeschützen Seite "geschützen" Text ausgibt. Für jeden User sind andere Kategorien möglich.

Vielleicht schaffe ich es morgen, den Code zu publizieren.

Gruß
Florian
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Muha,

da bin ich gespannt und werde die ganze nacht
gebannt vor meinem display hängen und den pagereload
auf 5 ms einstellen :-))

René
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

und ? noch immer online ?
*** make your own tools (wishlist :: thx)
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Hi emergence....

*gääähn* klar, mir fallen gleich die augen zu ;-)
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Ich hatte doch gesagt morgen vielleicht, da konnte diese Nacht noch nichts kommen :lol:

Aber das Modul ist inzwischen online unter:
http://contenido.org/forum/viewtopic.ph ... highlight=

Gruß
Florian
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

*sabber* *hächel*
das muss ich mir gleich mal reinstreamen!!! ooooh jap jap jap!!!
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Hi Beleuchtfix,

das Modul ist wirklich ganz lecker aber leider hilft
es mir nicht direkt bei meiner problematik, spezielle kategorien
in der artikelliste für einzelne user auszublenden. nur so zu meinem
verständnis die passage in deinem code, die den HTML text ausgibt,
lässt sich diese z.B. durch die ausgabe der artikelliste ersetzen?

und wenn dies gehen würde, würden dann einzelne kategorien ausgeblendet werden, zu denen der user keinen frontend zugriff hat?

grüßle René
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Hallo Rene,

nach meinem Verständnis müsste das so klappen (aber noch nicht ausgetestet). Wichtig ist, dass es sich um den Ausgabeteil der entsprechenden Funktion handelt, und nicht nur um einen Link. Du kannst allerdings damit auch nur die Links abblocken.

Viel Erfolg
Florian
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Hallo Beleuchtfix,

ich denke das werde ich zeitlich nicht ganz hinbekommen.
zumal ich dieses modul jetzt auch noch für ein kommerzielles
projekt benötige. ich setze jetzt mal einen bezahlten modulrequest
im request forum und hoffe das jemand interesse hat, das
zu coden.

Danke dir aber schonmal für deine bemühungen,
aber wenn ich das kommerziell verwenden werde, soll
der, der es programmiert hat, auch was von haben.

grüßel René
azfar
Beiträge: 5
Registriert: Mo 20. Jun 2005, 08:22
Wohnort: Duesseldorf
Kontaktdaten:

Re: Frontend Login - Artikel gezielt einblenden bzw. ausblen

Beitrag von azfar »

Hallo habe einen Bereich mit dem untengenannten Modul aufgebaut, leider kommt sofort die Weiterleitung. Können Sie mir helfen ?

Link ist hier

http://www.azfar.de/cms/front_content.php?idcat=26

Benutzer: test
Pass : test

ReneWho hat geschrieben:Halli hallo hallöchen,

das thema frontend login kann wohl keiner mehr hören. eines vorweg:
ich habe mich durchs forum gewühlt und gesucht wie doof aber wirklich
garnichts gefunden das mein problem irgendwie lösen könnte.

Folgendes ist stand der dinge:

Ich habe einen bereich angelegt, der durch das Modul von Black Widow
geschützt ist.
Hier schonmal das script:

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(); 
} 
?> 
Wenn ich diesen code als modul in irgendeinem artikel innerhalb des
heads platziere, kann niemand den entsprechenden artikel sehen
(zum login nehme ich das standard contenido 4.4.5er loginmodul)

wenn man nun eingelogt ist hat man zugriff auf alle möglichen
artikel, die mit diesem script versehen sind.

Mein Problem:

Jeder benutzer soll seine eigene kategorie bekommen, in der verschiedene artikel sind. beim login, soll der user direkt auf den
startartikel seiner kategorie weitergeleitet werden.

Ich habe schon ein workaround begonnen, mit einer kategorie liste.
haken an der sache ist, jeder benutzer sieht die namen der kategorien der
anderen user. zwar kann er diese nicht betreten, da er dafür keinen frontend
zugriff hat - aber ich möchte auch nicht, dass er diese sieht. hm.

ich weiß :-) ich sollte mich mal mit einem php programmierer zusammentun,
ich kann code lesen und halbwegs verstehen - aber vom coden hab ich
echt 0 plan.

ich danke schonmal für lösungsvorschläge oder hinweise
in diesem sinne.

lieben gruß René
Shah Saad Azfar
Gesperrt