[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Community schütz die Seiten nicht - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
skywise
Beiträge: 13
Registriert: 5. Jan 2006, 10:20

Community schütz die Seiten nicht

15. Mär 2010, 15:50

Hallo, ich habe unter 4.2. das Community Addon installiert. Die Formulare funktionieren (Eintrag erstellen etc.) - ich habe auch im jeweiligen Template alles eingebunden und auch in den Metaangaben der Artikel die Einstellung für den Zugriff gesetzt - dennoch wir die Seite nicht geschützt. Was mach ich falsch?!

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

23. Mär 2010, 18:06

ich erlaube mir hier was zu schreiben, damit dieser Beitrag weiter rauf rutscht. Ich habe nämlich das gleiche Problem.

Benutzer ist eingerichtet, die Seite sollte über die Zugriffsrechte bei Metadaten geschützt sein, ist es aber nicht.

Habe aber noch nicht ganz begriffen wie und wo das Authentifizierungstemplate eingebaut wird.

Benutzeravatar
raybeam
Beiträge: 442
Registriert: 5. Feb 2006, 21:30
Kontaktdaten: Website

23. Mär 2010, 19:51

Hallo zusammen,
Ich versuch es mal zu erklären, "so wie ich es verstehe" :wink:
Euer Seitentemplate benötigt im Prinzip zwei Mechanismen. Zunächst überprüft das Authentifizierungstemplate, ob eine Benutzeranmeldung vorliegt. Also sollte das Authentifizierungstemplate ziemlich weit "oben" in euer Seitentemplate eingebunden werden.

Danach ist es die Aufgabe des Seitentemplates, festzustellen, ob für den gerade anzuzeigenden Artikel eine Beschränkung für Benutzerzugriffe vorliegt. Dies macht es durch den Aufruf der Funktion rex_com_checkUserPerm($this->getValue("art_com_perm")), die sich auch im Authentifizierungstemplate findet. Dieser Funktion wird der Wert aus den Metadaten des Artikels übergeben, der den "Benutzer-Status" des Artikels beschreibt. Dieser Wert ergibt sich in der Regel aus dem Metadatum "art_com_perm".

Die Funktion gibt zurück, ob der User die Seite sehen darf oder nicht.

Anhand dieser Rückgabe wird dann entweder der Artikel angezeigt oder per "header("Location: http://"...." auf einen "Fehlerartikel" weitergeleitet.

Das ist ungefähr mit der Prüfung vergleichbar, ob ein Artikel "online" ist oder nicht.

Vielleicht hilft Euch ein wenig Quelltext weiter. Das Seitentemplate ist in diesem Beispiel in mehrere Templates aufgeteilt. So wird zunächst in das Seitentemplate ein Template eingebunden, in dem sich alle technischen Erfordernisse wiederfinden. In dieses Template wird zu Beginn direkt das Authentifizierungstemplate eingebunden. Das enthält die o.g. Funktion. Es handelt sich um eine modifizierte Version des Originals aus der Basisversion des Community-Addons. Diese unterstützt z. B. auch eigene Bereiche für jeden angemeldeten User. Das Grundprinzip ist jedoch gleich.

Beide Template-Quelltexte sind relativ ausführlich erläutert, so dass sie Euch vielleicht schon weiter helfen. Ansonsten müsst Ihr "weiter bohren" :)

Gruß

Peter

skywise
Beiträge: 13
Registriert: 5. Jan 2006, 10:20

Gefunden

24. Mär 2010, 09:45

Hallo und danke - mir fehlte die Abfrage im Haupttemplate ob der User eingeloggt ist oder nicht - nun funktioniert alles.

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

24. Mär 2010, 09:48

Hallo Peter

Vielen Dank für die ausführliche Antwort. Ich hatte, damals noch Redaxo 3.2, das Simple User AddOn im Einsatz. Dieses Community-AddOn scheint ja ähnlich zu funktionieren... Ein paar Fragen habe ich aber noch:

Das Authentifizierungs-Template muss ich ja in mein Default-Template einbauen, richtig? Und das erfolgt z.B. mit REX_TEMPLATE[10]. Wenn man sagt, es soll möglichst weit oben eingebaut werden.. was bedeutet das? Zuoberst, also bevor irgend ein anderer Code überhaupt beginnt? Oder irgendwo im <head></head>-Bereich? Oder am Anfang der "sichtbaren" Homepage, also im <body></body>-Bereich?

Diesselbe Frage betreffend dem Code-Schnipsel zur Abfrage ob der User diese Seite sehen darf...

Vielen Dank!!!

Benutzeravatar
raybeam
Beiträge: 442
Registriert: 5. Feb 2006, 21:30
Kontaktdaten: Website

24. Mär 2010, 21:12

Hallo Fanello,

ich kenne dein Default-Template nicht aber es dürfte auch da so sein, dass Du das Authentifizierungstemplate direkt zu Beginn deines Defaulttemplates einbinden musst.

Erst wenn das geschehen ist, folgt der Bereich, der überprüft, ob Beschränkungen für Benutzerzugriffe vorliegen. Alternativ könnte natürlich auch hier wieder ein gesondertes Template mit dieser Funktionalität eingebunden werden. Das muss nach der Einbindung des Authentifizierungstemplates erfolgen, da zur Überprüfung ja eine Funktion aus dem Authentifizierungstemplate aufgerufen wird.

Ganz zum Schluss kommt dann i. d. R. erst der "HTML-Teil" deines Default-Templates.

Gruß

Peter

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

25. Mär 2010, 18:04

hallo raybeam

Vielen Dank für deine Erklärung. Weisst du, ich habe das Gefühl die Sache begriffen zu haben... trotzdem funktioniert es nicht.
Das sind meine Templates:

1012 - COM-Template - Basis - Authentifizierung (id 10)
1014 - COM-Template - Basis - Userloginfenster (id 11)
1015 - COM-Template - Basis - Navigation mit 3 Ebenen (id 12)
default
default für geschützten Bereich
Navigation

Die meisten Inhaltsseiten haben das default-Template zugewiesen bekommen.
Dann habe ich aber noch eine Kategorie "Geschützter Bereich". Diese Seite hat das Template "default für geschützen Bereich" zugewiesen.
Dieses Template ist so aufgebaut:

Code: Alles auswählen

REX_TEMPLATE[10]
<?php
rex_com_checkUserPerm($this->getValue("art_com_perm"))
?>

Hier beginnt der "normale" Teil: html / head / body

Wenn man also auf diese Seite kommt, sollte man nur Inhalt sehen, wenn man eingeloggt ist (in den Metadaten definiert).
Ich kann jetzt aber jederzeit den Inhalt dieser Seite sehen. Ausserdem habe ich im Auth-Template die Funktion "rex_com_checkUserPerm" gesucht, mit diesem Namen aber nicht gefunden.

Dann noch eine Frage: brauch ich die Navigation "1015 - COM-Template - Basis - Navigation mit 3 Ebenen"?

Vielen Dank!

Benutzeravatar
raybeam
Beiträge: 442
Registriert: 5. Feb 2006, 21:30
Kontaktdaten: Website

25. Mär 2010, 20:02

Meine Erklärung bezieht sich auf die Basisversion des Community-Addons. Ich meine mich zu erinnern dass in Community Paket v1 RC3 die Funktion rex_com_checkUserPerm() noch nicht vorhanden ist.

Dein Quelltext müsste dann ungefähr so aussehen:

Code: Alles auswählen

$chkUsrPerm = rex_com_checkUserPerm($this->getValue("art_com_perm"));

if ( !$chkUsrPerm)
  {
      if ($this->getValue("startpage") == 0)
      {
        // Weiterleitung für Artikel
        header("Location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF].$notFoundArticleLink);
        exit;
      }
      else
      {
        // Weiterleitung für Kategorien
        header("Location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF].$notFoundArticleLink);
        exit;
      }
  }
Das ist im übrigen nur ein zusammenkopierter Ausschnitt aus meinem Template um die Vorgehensweise aufzuzeigen. Das Codesegement ist ungetestet. Mit einem

Code: Alles auswählen

REX_TEMPLATE[10]
<?php
rex_com_checkUserPerm($this->getValue("art_com_perm"))
?>

Hier beginnt der "normale" Teil: html / head / body 
ist es leider nicht getan. Wenn Du ein komplettes Beispiel für meine Vorgehensweise haben möchtest, kannst Du dir einen Redaxo-Import von meiner Seite herunterladen. Dort musst Du nach der Installation nur noch die Basisversion des Community-Addons installieren und solltest dann eine funktionierende Website mit geschlossenem Benutzerbereich haben. Der Download ist eigentlich für den Einsatz des YAML-Frameworks ausgelegt, funktioniert aber natürlich auch mit eigenen Stylesheets. Zumindest kannst Du aber nachvollziehen, wie ich die Templates aufgebaut habe. Erläuternden Text gibt es zu dem Thema auch auf meiner Seite.

Wenn gar nichts mehr geht, müsstest Du mir per PM einen Zugang zu deiner Site zukommen lassen, wenn sie online erreichbar ist. Dann würde ich mir die Geschichte mal ansehen.

Besser ist es für dich aber auf Dauer, wenn du dich ein bisschen durchbeißt und nach und nach verstehst wie es funktioniert :wink:

Gruß

Peter

Zurück zu „Allgemeines [R4]“