Rechte des angemeldeten User (FE) einer Kategorie/Artikel ?

Gesperrt
ubo
Beiträge: 83
Registriert: Do 8. Jan 2004, 02:08
Wohnort: Ruhrgebiet
Kontaktdaten:

Rechte des angemeldeten User (FE) einer Kategorie/Artikel ?

Beitrag von ubo »

Hallo alle,

kann mir einer helfen und sagen wie ich die Rechte ermitteln kann, die ein angemeldeter User im Frontend hat an einer bestimmten Kategorie bzw. einem Artikel ?

Mir geht es hier besonders um das Recht "Frontend zugriff" :-)

Ich moechte z.B. auf Kategorien bzw. Artikel nur dann verlinken in einem Modul wenn der angemeldete User auch die Rechte dazu besitzt.

Danke und gruesse aus Bochum
UBO
Suche neuen Wirkungskreis
  • Kentnisse:
    Web-Development, Win32APP-Development, CGI, PALM,
    Delphi, PHP, Perl, ASP, VB, VBScript, JavaScript, JAVA,
    (D)HTML, XML, XSLT, MySQL, MSSQL
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

mit der $perm-Klasse:

$perm->have_perm_area_action_item("str","front_allow", $db->f("idcat"))
ubo
Beiträge: 83
Registriert: Do 8. Jan 2004, 02:08
Wohnort: Ruhrgebiet
Kontaktdaten:

Beitrag von ubo »

Danke Timo,

leider bekomme ich so auch nur die Kategorien, bei denen ich das Recht expliziet gesetzt habe.
Die ungeschuetzten Kategorien werden auch rausgefiltert :-(

Ich habe mir zum testen den Source der Service-Navigation genommen.

Code: Alles auswählen

 

       . . .

       $sql = "SELECT CAT.idcat AS idcat, name FROM ".
               $cfg["tab"]["cat"]." AS CAT, ".
               $cfg["tab"]["cat_lang"]." AS CATLANG 
               WHERE CAT.idcat = ".$val."
               AND CAT.idcat = CATLANG.idcat
               AND CATLANG.idlang = '$lang'
               AND CATLANG.visible = '1'";

        $db->query($sql);


        while ( $db->next_record() ) {
          if ($perm->have_perm_area_action_item("str","front_allow", $db->f("idcat"))) {
                echo $db->f("name")."<br>";
          }
        } // end while

       . . .
Hast du da evtl. einen Tip fuer mich ?
Suche neuen Wirkungskreis
  • Kentnisse:
    Web-Development, Win32APP-Development, CGI, PALM,
    Delphi, PHP, Perl, ASP, VB, VBScript, JavaScript, JAVA,
    (D)HTML, XML, XSLT, MySQL, MSSQL
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich würd die abfrage ob ich ne berechtigung habe, um das query herum geben...

wenn er die berechtigung hat werden alle angezeigt wenn nicht
wird ein anderes query ausgeführt wo rücksicht auf den tabellen wert public genommen wird... an sich sollte das funktionieren...
ubo
Beiträge: 83
Registriert: Do 8. Jan 2004, 02:08
Wohnort: Ruhrgebiet
Kontaktdaten:

Beitrag von ubo »

Jau, das Public flag !! Das hat mir gefehlt, Thanks.

Ich habe die Abfrage jetzt erweitert:

Code: Alles auswählen

       
 $sql = "SELECT CAT.idcat AS idcat, name, CATLANG.public as public FROM ".
               $cfg["tab"]["cat"]." AS CAT, ".
               $cfg["tab"]["cat_lang"]." AS CATLANG 
               WHERE CAT.idcat = ".$val."
               AND CAT.idcat = CATLANG.idcat
               AND CATLANG.idlang = '$lang'
               AND CATLANG.visible = '1'";

        $db->query($sql);


        while ( $db->next_record() ) {
         if ($db->f("public") == "1") {
                echo $db->f("name")."<br>";
          } elseif ($perm->have_perm_area_action_item("str","front_allow", $db->f("idcat"))) {
                echo $db->f("name")."<br>";
          }
        } // end while
und schon klappts auch mit der schoenen Nachbarin :-)

Besten Dank, bin mit der DB-Struktur in all Ihren feinheiten noch nicht so vertraut.
Aber meine Freizeit ist begrenzt, doch Contenido gefaellt mir MEGA !

Werde dies mal in die Servicenavigation einpflegen und posten.

Danke und Gruss
Uwe
Suche neuen Wirkungskreis
  • Kentnisse:
    Web-Development, Win32APP-Development, CGI, PALM,
    Delphi, PHP, Perl, ASP, VB, VBScript, JavaScript, JAVA,
    (D)HTML, XML, XSLT, MySQL, MSSQL
sepp
Beiträge: 19
Registriert: Mo 22. Dez 2003, 14:58
Kontaktdaten:

Beitrag von sepp »

Genau so etwas brauche ich auch grad. Leider klappt es bei mir nicht so wie gewünscht.

Ich beabsichtige, in der Standard Hauptnavigation bestimmte Kategorien nur einblenden zu lassen, wenn es sich um einen angemeldeten User mit entsprechendem Frontendzugriff handelt.

Code: Alles auswählen

 
/* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                    $tpl->next();


            if (($idcat=='21') || ($idcat=='23') || ($idcat=='24') || ($idcat=='25') || ($idcat=='26'))
 {
if ($auth->auth["uid"] != "nobody")
{
if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }
}

}
else
{ 

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }
 } 

Das klappt zwar schon einigermassen, nur werden dann alle Kategorien angezeigt. Auch die, auf die der User eigentlich keinen Zugriff hat...

Er kann auch nicht drauf zugreifen, aber er kann sie sehen.

Nachtrag: er kann doch drauf zugreifen. alle User können das, auch ohne Haken beim frontend-Zugriff. :-( Gar nicht schön... Habe die 4.4.5 in der der Bug doch eigentlich behoben sein sollte. Kann ich das nachträglich noch ändern?

Die Abfrage von ubo hats bei mir leider nicht gebracht.

Wüsste da jemand ne elegante Lösung?
Gesperrt