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:
Benutzer können sich entweder mit ihrem Benutzernamen oder ihrer E-Mail-Adresse anmelden.
Benutzer können sich sofort anmelden.
Stellen Sie ein Anmeldeformular auf Seiten mit Zugriffsverweigerung für nicht angemeldete (anonyme) Benutzer bereit.
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.
Passen Sie das Registrierungsformular mit zwei E-Mail-Feldern an, um die Richtigkeit sicherzustellen.
Leiten Sie den Benutzer optional auf eine bestimmte Seite weiter, wenn Sie die Funktion "Sofortige Anmeldung" verwenden.
Leiten Sie den Benutzer optional nach Überprüfung seiner E-Mail-Adresse auf eine bestimmte Seite weiter.
Optional wird eine Benutzermeldung angezeigt, die eine erfolgreiche Anmeldung anzeigt.
Optional können Sie sowohl das Anmelde- als auch das Registrierungsformular auf einer Seite kombinieren.
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!).
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.
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:
Benutzer hat Rolle (n) -Parameter: User: [site:current-user], Roles: anonymous user
NICHT Textvergleich -Parameter: Text: [site:current-page:url], Matching text: 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.
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.
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:
Setzen Sie auf der Registerkarte "Seiten" "Block auf bestimmten Seiten anzeigen" auf "Nur die aufgelisteten Seiten" und geben Sie die Seiten ein.
Aktivieren Sie auf der Registerkarte "Rollen" die Option "Anonymer Benutzer" für den Block Anzeigen für bestimmte Rollen.
Theoretisch könnten Sie die Seite Standard 403 (Zugriff verweigert) unter Site-Informationen auf user / login unter / admin / config / system / site-information setzen.
Schlechte Idee. Angemeldete Benutzer, denen der Zugriff verweigert wird, landen in einer endlosen Umleitungsschleife, die zum Absturz des Browsers führt.
Antworten:
Eine weitere Lösung ist das LoginToboggan-Modul . Es bietet eine Reihe verschiedener Verbesserungen der Anmeldefunktionalität.
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.
quelle
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):
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:Bedingungen:
Parameter: User: [site:current-user], Roles: anonymous user
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" (viaadmin/structure/block
) wie folgt:configure
Link " " 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.quelle
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.
quelle
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:
Setzen Sie auf der Registerkarte "Seiten" "Block auf bestimmten Seiten anzeigen" auf "Nur die aufgelisteten Seiten" und geben Sie die Seiten ein.
Aktivieren Sie auf der Registerkarte "Rollen" die Option "Anonymer Benutzer" für den Block Anzeigen für bestimmte Rollen.
quelle
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?
quelle