Ein Tool, welches die meisten benötigten Funktionen abdeckt und relativ leicht zu installieren ist, ist authlogic. (Schnellanleitung: https://github.com/binarylogic/authlogic_example/blob/master/README.rdoc)
Mögliche Fehler nach der Installation:
undefined method `valid_password?' for #...
Nachdem ich die Spalte crypted_password der Tabelle hinzugefügt hatte, war das Problem gelöst.
Authlogic benötigt mindestens drei Felder, die meist automatisch erkannt werden. Benutzername/Email, Passwort und Passwortbestätigung. In meinem Fall musste ich in meinem _form.html.erb das Feld für die Passwortbestätigung :passwort_confirmation nennen, damit es funktioniert hat.
Wenn man nun authlogic soweit installiert hat, lässt sich ein nicht authentifizierter Besucher ganz einfach mit dem Aufruf eines before_filters in dem Ziel-Controller aussperren:
class UsersController < ApplicationController
before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => [:show, :edit, :update]
[...]
before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => [:show, :edit, :update]
[...]
No comments:
Post a Comment