Wie füge ich ein Anmeldeformular zur Seite "Zugriff verweigert" hinzu?

7

Ich versuche, der Seite mit verweigertem Zugriff ein Anmeldeformular hinzuzufügen, und frage mich, ob dies über die Benutzeroberfläche möglich ist.

Anregungen / Ideen?

jelly46
quelle
1
Platz Anmelden Block auf Seite 404 Callback & Dieses Modul drupal.org/project/blocks404 oder verwenden Sie dieses Modul , wenn Drupal 7 mit drupal.org/project/navigation404
Rupesh
Dies gilt für den Fehler "Seite nicht gefunden", nicht für den Fehler "Zugriff verweigert".
Kiamlaluno

Antworten:

4

Eine weitere Lösung ist das LoginToboggan-Modul . Es bietet eine Reihe verschiedener Verbesserungen der Anmeldefunktionalität.

Das Logintoboggan-Modul bietet verschiedene Modifikationen des Drupal-Login-Systems in einem externen Modul, indem es die folgenden Funktionen und Verbesserungen der Benutzerfreundlichkeit bietet:

  1. Benutzer können sich entweder mit ihrem Benutzernamen oder ihrer E-Mail-Adresse anmelden.
  2. Benutzer können sich sofort anmelden.
  3. Stellen Sie ein Anmeldeformular auf Seiten mit Zugriffsverweigerung für nicht angemeldete (anonyme) Benutzer bereit.
  4. Das Modul bietet zwei Anmeldeblockoptionen: Eine verwendet Javascript, um das Formular innerhalb des Blocks sofort nach dem Klicken auf "Anmelden" anzuzeigen. Der andere bringt den Benutzer auf eine separate Seite, bringt ihn jedoch beim Anmelden auf seine ursprüngliche Seite zurück.
  5. Passen Sie das Registrierungsformular mit zwei E-Mail-Feldern an, um die Richtigkeit sicherzustellen.
  6. Leiten Sie den Benutzer optional auf eine bestimmte Seite weiter, wenn Sie die Funktion "Sofortige Anmeldung" verwenden.
  7. Leiten Sie den Benutzer optional nach Überprüfung seiner E-Mail-Adresse auf eine bestimmte Seite weiter.
  8. Optional wird eine Benutzermeldung angezeigt, die eine erfolgreiche Anmeldung anzeigt.
  9. Optional können Sie sowohl das Anmelde- als auch das Registrierungsformular auf einer Seite kombinieren.
  10. Optional können nicht validierte Benutzer in einem vordefinierten Intervall aus dem System entfernt werden (wichtige Informationen zum Konfigurieren dieser Funktion finden Sie im Abschnitt mit den Einschränkungen in install.txt!).
  11. Integriert sich in das Regelmodul, um verschiedene Aufgaben auszuführen, wenn ein Benutzer über einen E-Mail-Validierungsprozess validiert ( ein Beispiel finden Sie unter http://drupal.org/node/880904 ).

Das Einstellungskonfigurationsformular verfügt über eine Option namens " Anmeldeformular bei verweigertem Zugriff anzeigen" (403) , mit der genau diese Funktionalität ein- und ausgeschaltet werden kann.

Shawn Conn
quelle
Das LoginToboggan-Modul funktionierte wie ein Zauber, der die 403-Seite enthalten musste, aber es war super, danke.
Gelee46
10

Option 1: Verwenden Sie das CustomError-Modul

Das CustomError- Modul ermöglicht es dem Site-Administrator, benutzerdefinierte Fehlerseiten für die HTTP-Statuscodes 403 (Zugriff verweigert) und 404 (nicht gefunden) zu erstellen, ohne für jeden Knoten Knoten erstellen zu müssen. Einige weitere Details zu den Funktionen (auf der Projektseite):

  • Konfigurierbarer Seitentitel und Beschreibungen.
  • Es gibt keine Autoren- und Datums- / Zeitüberschriften wie bei normalen Knoten.
  • Jeder HTML-formatierte Text kann in den Seitenkörper eingefügt werden.
  • Die Fehlerseiten sind themenfähig.
  • Benutzer, die nicht angemeldet sind und versuchen, auf einen Bereich zuzugreifen, für den eine Anmeldung erforderlich ist, werden auf die Seite umgeleitet, auf die sie nach der Anmeldung zugreifen wollten.
  • Ermöglicht benutzerdefinierte Weiterleitungen für 404s.

Sie sollten sich für den Teil " Benutzer, die nicht angemeldet sind und versuchen, auf einen Bereich zuzugreifen, für den eine Anmeldung erforderlich ist, werden auf die Seite umgeleitet, auf die sie nach der Anmeldung zugreifen wollten " interessieren .

Option 2: Mit dem Modul Regeln zum Benutzer / Anmelden umleiten

"Das Hinzufügen von Einstellungen für die Seite" Zugriff verweigert "und das Anzeigen des Blocks" Benutzeranmeldung "auf dieser Seite" ist in der Tat eine Lösung, die funktionieren sollte. Sie können jedoch noch einen Schritt weiter gehen und die Benutzererfahrung von AbitMORE verbessern. Durch Verwendung einer Variation des Ansatzes, der in der Antwort auf die Frage " Wie anonyme Benutzer mithilfe des Regelmoduls zur Anmeldeseite umleiten? " Beschrieben wird .

Nehmen Sie dazu an, dass der Pfad der Seite "Standard 403" auf "no_access" gesetzt ist (via /admin/config/system/site-information, unten auf dieser Administrationsseite). Erstellen Sie dann mit dem Modul Regeln eine Regel mit dem Ereignis "Nach dem Besuch des Knotens 'no_access'". Damit die gesamte Regel ungefähr so ​​aussieht:

  • Ereignisse: Nach dem Besuch des Knotens 'no_access'
  • Bedingungen:

    1. Benutzer hat Rolle (n) -Parameter: User: [site:current-user], Roles: anonymous user
    2. NICHT Textvergleich -Parameter: Text: [site:current-page:url], Matching text: user/login
  • Aktionen: Seitenumleitung -Parameter: URL: user/login

Wenn Sie dies möchten, können Sie sogar eine weitere Aktion hinzufügen, um auch eine (informative) Nachricht im Drupal-Nachrichtenbereich anzuzeigen, z. B. "Sie haben versucht, eine Seite zu besuchen, für die eine Anmeldung erforderlich ist ...".

Möglicherweise müssen Sie ein zusätzliches Modul ( Regeln ) aktivieren . Wie auch die wachsende Beliebtheit zeigt, ist dieses Modul wahrscheinlich bereits auf fast jeder Site aktiviert (ähnlich dem Views- Modul), da es für dieses Modul Dutzende von Anwendungsfällen gibt. Nur eine Variante dieser Frage: Wie wäre es, die Benutzererfahrung für "Seite nicht gefunden" auf ähnliche Weise zu verbessern?

Option 3: Benutzeranmeldeblock auf dedizierter Seite anzeigen

Eine andere Variante als Alternative zu den Regeln "Aktion" (umzuleiten user/login) besteht darin, einen bestimmten Knoten zu erstellen, beispielsweise mit einem Pfad wie "my_login_page_with_login_block". Und kombinieren Sie dies dann mit der Konfiguration des Blocks "Benutzeranmeldung" (via admin/structure/block) wie folgt:

  • Zeigen Sie diesen Block in einem beliebigen Themenbereich Ihrer Wahl an.
  • Verwenden Sie den configureLink " " rechts neben diesem Benutzeranmeldeblock, um die " Sichtbarkeitseinstellungen " für " Seiten " festzulegen . Ändern Sie also die Option für " Block auf bestimmten Seiten anzeigen " in " Nur die aufgelisteten Seiten " und geben Sie den Pfad ( my_login_page_with_login_block) im Textfeld darunter an. Wenn Sie aus irgendeinem Grund keinen Pfad verwenden möchten, geben Sie stattdessen einfach node / nid (nid = id des Knotens) als Pfad an.
Pierre.Vriens
quelle
Hallo Pierre, das ist eine große Hilfe, ich werde es versuchen und dich wissen lassen, wie es mir geht. Danke
jelly46
1
Vielen Dank für das Feedback ... Hoffentlich vergessen Sie nicht, eines Tages mit Ihrem Feedback "zurück zu kommen" (nachdem Sie es ausprobiert haben). Schade, dass es nicht so etwas wie "Erinnere mich später" gibt (um darauf zurückzukommen), z. B. implementiert mit etwas wie "Rules Scheduler" und / oder "Flag" (wie wir es in Drupal tun würden, oder?). .. Hinweis für mich: Fügen Sie eine solche Funktion in die "ArrayShift" -Distribution ein ...
Pierre.Vriens
Nun, es hat mein Wissen erweitert, aber die Frage noch nicht beantwortet. Es ist eine große Hilfe, aber es hat das versprochene Land immer noch nicht erreicht.
Gelee46
LoginToboggan-Modul funktionierte wie ein Zauber
jelly46
1
Kein Problem, betrachten wir es als die Flexibilität und die Optionen von Drupal, individuell für jeden das Richtige auszuwählen!
Pierre.Vriens
5

Sie können in der Site-Konfiguration (admin / config / system / site-information) Einstellungen für die Seite 'Standard 403 (Zugriff verweigert)' hinzufügen. Zeigen Sie dann auf dieser Seite den Block 'Benutzeranmeldung' (admin / structure / block / manage / user / login / configure) an.

Andrew
quelle
3

Ohne das LoginToboggan- Modul kann der Benutzeranmeldeblock so konfiguriert werden, dass er auf bestimmten Seiten sichtbar und auf anonyme Benutzer beschränkt ist. Im Block Sichtbarkeitseinstellungen für den Benutzeranmeldeblock:

  1. Setzen Sie auf der Registerkarte "Seiten" "Block auf bestimmten Seiten anzeigen" auf "Nur die aufgelisteten Seiten" und geben Sie die Seiten ein.

  2. Aktivieren Sie auf der Registerkarte "Rollen" die Option "Anonymer Benutzer" für den Block Anzeigen für bestimmte Rollen.

MikeSNP
quelle
2

Theoretisch könnten Sie die Seite Standard 403 (Zugriff verweigert) unter Site-Informationen auf user / login unter / admin / config / system / site-information setzen.

Noch nie ausprobiert, aber es ist nur eine Idee?

Connor Gurney
quelle
1
Schlechte Idee. Angemeldete Benutzer, denen der Zugriff verweigert wird, landen in einer endlosen Umleitungsschleife, die zum Absturz des Browsers führt.
Giles B