integration benutzerdefiniertes login
am 29.08.2007 - 08:27 Uhr in
Hi,
ich beschäftige mich erst seid kurzem mit Drupal.
Aktuell stehe ich vor dem Problem dass ein User bestimmte Inhalte nur unter gewissen Vorraussetzungen sehen soll. Das ganze muß ohne User-Verwaltung ablaufen.
Beispiel: anonymer user möchte sich Kinos ansehen, bekommt die Liste aber erst wenn er in einem speziellen Formular seine Stadt angegeben hat.
Bisher habe ich es so realisiert:
Modul content_access wurde installiert und bestimmte Pages nur für eine Benutzergruppe freigeschaltet. Sollte der user auf eine 'beschränkte' Seite kommen, redirekte ich ihn in drupal_access_denied() auf die Login-Seite, welche als page angelegt ist. In der index.php fange ich entsprechende Requests hart auf, setze in der Session ein Login-Flag und füge dem User hart eine Gruppe hinzu ($GLOBALS['user']->roles[5] = 'gotLocation').
Das ganze läuft soweit, ist aber nicht wirklich eine saubere Lösung :) Gibt es da bessere Ansätze? Mein Problem ist, dass an den relevanten Stellen keine entsprechenden Hooks implementiert sind, dass ich es als eigenes Modul auslagern könnte.
Auch das Handling über drupal_access_denied() gefällt mir nicht, da ich eigentlich eine neue Aktion alá 'auth_required()' bräuchte, welche dann auf die entsprechende 'Login'-Page redirected.
Any ideas wie man das besser lösen könnte?
Thnx, markus
- Anmelden oder Registrieren um Kommentare zu schreiben
LoginToboggan
am 29.08.2007 - 08:36 Uhr
Das LoginToboggan Modul (http://drupal.org/project/logintoboggan) implementiert einiges von dem, was Du beschrieben hast. Vielleicht reicht es sogar schon für Deine Zwecke aus. Ansonsten dürfte ein Blick in den Code zumindest einige Ideen vermitteln ...