Ergebnis 1 bis 7 von 7

Thema: Link-Element nur für Mitglieder nutzbar

  1. #1
    Contao-Fan
    Registriert seit
    10.03.2011.
    Beiträge
    340

    Standard Link-Element nur für Mitglieder nutzbar

    Hallo zusammen,

    ich hatte für einen Kunden die Anforderung, dass ein Link (Externer Link) nur für Mitglieder nutzbar sein soll. Gäste sollen auf die Login-Seite geleitet werden.

    Zuerst hatte ich dies umgesetzt, indem zwei Link-Elemente hatte, eines für Mitglieder und eines für Gäste. Klickten Gäste auf den Link, wurde die Loginseite aufgerufen. Anschließend wurden sie wieder auf die letzte Seite geleitet und konnten nun den "richtigen Link" (für Mitglieder) anklicken. Das war dem Kunden so leider nicht recht, weil man ja zwei Mal den Link anklicken musste.

    Ich hatte mir dann damit geholfen, einer Seite vom Typ externe Weiterleitung anzulegen. Diese hatte ich geschützt und auf diese Seite nun verlinkt. Contao hatte leider bei Link-Inhaltselementen auf Seiten mit externer Weiterleitung den Seitenschutz nicht geprüft. Ich hatte dies hier als Issue gemeldet. Leo sah das aber als gewolltes Verhalten an.

    Hat also jemand eine andere Idee, wie ich die Anforderung lösen kann?

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Ganz verstehe ich deine Anforderung nicht. Aber ich würde das wie folgt machen:
    • Erstelle eine Seite vom Typ 403 Forbidden.
    • Auf dieser Seite gibst du das Login Modul.
    • Im Login Modul aktivierst du die Option, dass zur zuletzt besuchten Seite weitergeleitet werden soll und dass Auto-Login erlaubt ist.
    • Du schützt die Seiten, die geschützt werden sollen, ganz normal.
    Wenn nun jemand den Link auf eine geschützte Seite öffnet und der Benutzer bereits eingelogged ist, dann sieht er die Seite natürlich. Andernfalls wird er auf das Login Formular weitergeleitet - dort kann sich der Benutzer einloggen und wird danach ebenfalls auf die ursprünglich aufgerufene Seite weitergeleitet.
    Geändert von Spooky (04.02.2016 um 10:30 Uhr)

  3. #3
    Contao-Fan
    Registriert seit
    10.03.2011.
    Beiträge
    340

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ganz verstehe ich deine Anforderung nicht. Aber ich würde das wie folgt machen:
    • Erstelle eine Seite vom Typ 403 Forbidden.
    • Auf dieser Seite gibst du das Login Modul.
    • Im Login Modul aktivierst du die Option, dass zur zuletzt besuchten Seite weitergeleitet werden soll und dass Auto-Login erlaubt ist.
    • Du schützt die Seiten, die geschützt werden sollen, ganz normal.
    Wenn nun jemand den Link auf eine geschützte Seite öffnet und der Benutzer bereits eingelogged ist, dann sieht er die Seite natürlich. Andernfalls wird er auf das Login Formular weitergeleitet - dort kann sich der Benutzer einloggen und wird danach ebenfalls auf die ursprünglich aufgerufene Seite weitergeleitet.
    Das Kernproblem ist, dass es sich bei meinem Linkziel nicht um eine Seite meiner Contao-Website handelt, sondern um eine URL, die auf einen externen Katalog mit Nettopreisen verweist. Dieser Katalog respektive dir URL dorthin soll nur für eingeloggte geschäftliche Kunden sichtbar sein.

    Deinen Vorschlag hatte ich ja versucht umzusetzen, nur dass ich keine reguläre Seite angelegt hatte, sondern eine externe Weiterleitungsseite. Problem ist dabei leider nur, dass bei der Auflösung von Inserttags zuvor der Seitentyp geprüft wird. Is der Seitentyp "externe Weiterleitung", prüft das Inserttag nicht mehr den Seitenschutz, sondern liefert direkt die URL, die in der Weiterleitungs-URL steht. Der Seitenschutz wird also ignoriert.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Lasse es bei einer regulären Seite und setze den Redirect mit einem eigenem Script um, das du per Insert Tag einfügst. zB:

    /templates/redirect.php
    PHP-Code:
    <?php

    $redirect 
    = \Input::get('redirect');
    if( 
    $redirect )
        
    header('Location: '.$redirect);
    Code:
    {{file::redirect.php?redirect=http://www.google.com}}
    Ist deinem Kunden eigentlich bewusst, dass diese externe URL aber sowieso jeder aufrufen kann...?

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Mit der Extension loginRedirects geht das auch bequem per Content Element.

  6. #6
    Contao-Fan
    Registriert seit
    10.03.2011.
    Beiträge
    340

    Standard

    Ist deinem Kunden eigentlich bewusst, dass diese externe URL aber sowieso jeder aufrufen kann...?
    Ja, das ist meinem Kunden bewusst.

    Ich habe aber mehrere Seiten, auf denen je ein oder mehrere Links hinterlegt sind. Daher geht es mit dem Redirect nicht, denn auf der Seite zu Katalog A befindet sich der entsprechende Link, bei Katalog B gleiches usw.

    Vielleicht hilft das Beispiel: http://klaexx-werbung.de/werbemittel.html

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.116
    Partner-ID
    10107

    Standard

    Zitat Zitat von gerritlo Beitrag anzeigen
    Ich habe aber mehrere Seiten, auf denen je ein oder mehrere Links hinterlegt sind. Daher geht es mit dem Redirect nicht, denn auf der Seite zu Katalog A befindet sich der entsprechende Link, bei Katalog B gleiches usw.
    Das ist ja prinzipiell egal - du brauchst einfach für jeden Link den es gibt auch zusätzlich eine geschütze Seite in Contao mit dem entsprechenden loginRedirect Inhaltselement.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •