Modul geschützten Textbereich auf einer Ungeschützen Seite

Gesperrt
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Modul geschützten Textbereich auf einer Ungeschützen Seite

Beitrag von Beleuchtfix » Fr 29. Apr 2005, 13:36

Bei diesem Mini-Modul wird abgefragt, ob der User Berechtigungen für eine bestimmte Kategorie bekommen hat.
Für jeden User können im Backend andere Seiten erlaubt werden! (unter (Administration / Benutzer / Kategorie / Frontend Zugriff ))
Nach dem Einloggen wird dann ein zweites Textfeld angezeigt.

Code: Alles auswählen

<?php
/******************************************
* File      :   Text2 (Mit Berechtigungsabfrage)
* Project   :   Contenido
* Descr     :
*
* Author    :   Florian Behrendt
* Created   :   30.04.2005
* Modified  :
*
* © Open Source
*****************************************/
/* z.Z. wird abgefragt, user zugewiesene Rechte auf die Kategorie hat (Administration / Benutzer / Kategorie / Frontend Zugriff )
Abfrage nach übergeordneten Rechten bei (Administration / Benutzer / Bereiche / Frontend Zugriff ) fehlt bzw. noch klappt nicht.
$perm->have_perm_area_action_item("str","front_allow", "0") ||
bei Adminrecht auch Login erlaubt.
 */

    if ($perm->have_perm_area_action_item("str","front_allow", "$idcat") || $perm->have_perm())
        {echo "Ausgabe genehmigt <BR>";
             echo "CMS_HTML[2]";
 }
    else
        {echo "Keine Ausgabe <BR>";}

?>
Der Teil "Ausgabe genehmigt <BR>" kann natürlich wegfallen, ebenso der else Teil, je nachdem, ob man entsprechend informieren möchte, ob es mir Infos gibt oder nicht.

Anstatt echo "CMS_HTML[2]"; kann man natürlich auch ein anderes Element anzeigen lassen.

Ich benutze inzwischen das Loginmodul für das Frontend
http://contenido.org/forum/viewtopic.ph ... asc&start=
Hier kann man immer erkennen, ob man angemeldet ist und sich jederzeit einloggen.

Die Datei zu Punkt1) front_crcloginform.inc.php habe ich ersetzt durch:

Code: Alles auswählen

<head>
<meta http-equiv="refresh" content="0; URL=front_content.php">
<!-- ... andere Angaben im Dateikopf ... -->
</head>
Dadurch kommt man bei einer Fehleingabe nicht auf das alte Front-Login Formular.

Viel Spaß damit
Florian

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

Beitrag von emergence » Mi 4. Mai 2005, 10:30

/* z.Z. wird abgefragt, user zugewiesene Rechte auf die Kategorie hat (Administration / Benutzer / Kategorie / Frontend Zugriff )
Abfrage nach übergeordneten Rechten bei (Administration / Benutzer / Bereiche / Frontend Zugriff ) fehlt bzw. noch klappt nicht.
$perm->have_perm_area_action_item("str","front_allow", "0") ||
bei Adminrecht auch Login erlaubt.
*/

ähm schon mal mit dem probiert

Code: Alles auswählen

have_perm_area_action("str","front_allow")
?
*** make your own tools (wishlist :: thx)

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 4. Mai 2005, 14:52

emergence hat geschrieben: ähm schon mal mit dem probiert

Code: Alles auswählen

have_perm_area_action("str","front_allow")
?
So etwas hatte ich auch schon einmal versucht. Leider sind die Contenido-Entwickler weitaus bessere Programmierer als Schrftsteller (die meisten Kommentare im Rechtemodul sind die Funktionsnamen), und da habe ich die passende Funktion nicht gefunden.

Allerdings taucht auch folgender Fehler auf, wenn ich nicht angemeldet bin
Fatal error: Call to undefined function: have_perm_area_action() in D:\comm\sambar52\docs\contenido\himi\front_content.php(563) : eval()'d code on line 501
Daraufhin habe ich die Abfrage wieder entfernt.
Gruß
Florian

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

Beitrag von emergence » Mi 4. Mai 2005, 15:23

ähm schon klar
die funktion steckt ja in der klasse

also

Code: Alles auswählen

$perm->have_perm_area_action("str","front_allow")
sollte keine fehlermeldung bringen
*** make your own tools (wishlist :: thx)

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 4. Mai 2005, 15:45

Da war noch ein typo drin, den Contenido nicht gefunden hat.
Florian

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 4. Mai 2005, 21:12

Irgendwie klappt die pauschale Freigabe immer noch nicht :cry:

Code: Alles auswählen

if ($perm->have_perm_area_action_item("str","front_allow", "$idcat") || $perm->have_perm() || $perm->have_perm_area_action("str","front_allow"))
        
genehmigt eine Kategorie, wenn sie explizit freigegeben wurde, aber nicht bei Freigabe unter Bereiche.
Immerhin gibt es keine Fehlermeldungen.

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe » Do 20. Okt 2005, 15:13

Hallo,

ich habe noch Verständnisschwierigkeiten mit der Berechtigungsrpüfung.
Es geht darum: Ich habe 2 Mandanten, und dafür getrennte User. Jeder Mandant hat ein Frontend-Login. Mandant 2 kann sich nun aber mit seinem Login auch bei Mandant 1 einloggen, und umgekehrt.
Ich habe schon gelesen, dass es erst ab 4.6 ein "richtiges" Rechtesystem für das Frontend-Login gibt, aber diese Site läuft unter 4.4.4.
Ich benutze das Simple Login-Modul:

Code: Alles auswählen

<?php

if ($auth->auth["uid"] == "nobody")
{
?>
<form method="post" action="front_content.php?idcatart=<?php echo $idcatart; ?>">
<table border="0">
<tr><td>Benutzername</td></tr>
<tr><td><input type="text" name="username" value="" /></td></tr>
<tr><td>Passwort</td></tr>
<tr><td><input type="password" name="password" value="" /></td></tr>
</table><br /><br />
<input type="submit" name="login" value="Anmelden" />
</form><br />
<?php
} else {
?>
<br /><br />
Angemeldet als: <br /> <?php echo $auth->auth["uname"]; ?>
<br /><br /><br />
<form method="post" action="front_content.php?idcatart=<?php echo $idcatart; ?>">
<input type="submit" name="logout" value="Abmelden" />
</form>
<?php
}
?>
Nun dachte ich, mit dem Berechtigungsmodul könnte ich überprüfen, wer sich eingeloggt hat und den Zugriff auf die Katergorien entsprechend regulieren. Aber ich glaube, ich habe das total falsch verstanden.
Ich habe den Code als Output in ein neues Modul geschrieben. Dieses Modul in das Layout der Login-Seite integriert. Tja, aber was folgt nun? Wo kann ich was einstellen?

Und im error.log steht folgendes:

Code: Alles auswählen

20-Okt-2005 16:03:21] PHP Parse error:  parse error, unexpected '}' in /home/www/netsh194/html/contenido/contenido/includes/functions.mod.php(155) : eval()'d code on line 29
Viele Grüße,
Ayshe

Gesperrt