Ponownie Authlogic ;)

Authlogic jest świetny bo wystarczy “acts_as_authentic” do modelu i wszystkie walidacje są już gotowe, lecz problem się zaczyna w momencie kiedy ja chce te walidacje zmienić bez babrania całego kodu ;). Dokładniej mówiąc chcę nie sprawdzać adresu email, oraz nie sprawdzać obecności loginu w momencie kiedy rekord pochodzi od OpenId (mam metode użytkownika “openid?”). Z mailem sobie poradziłem

acts_as_authentic { |c| c.validate_email_field = false }

ale z loginem nie za bardzo (chcę do walidacji dodać opcję :unless => self.openid?)
Oto kawałek pluginu który jak dla mnie jest odpowiedzialny za login:
http://pastie.org/512007

Z góry dzięki za pomoc!

Edycja: zrobiłem roszady w kodzie http://pastie.org/512027 , ale nie wiem czy tak sie powinno robić.

Authlogic jest świetny, bo jest konfigurowalny:
http://authlogic.rubyforge.org/classes/Authlogic/ActsAsAuthentic/Login/Config.html#M000177

acts_as_authentic do |c| c.validate_login_field :if => Proc.new { |u| !u.openid? } end

Niestety nie działa http://pastie.org/512383

Możesz spróbować zrobić tak z wszystkimi authlogicowymi walidacjami na loginie (chyba powinno to się dać zrobić jedną komendą, nie wiem jaką):

acts_as_authentic do |c| c.validate_login_field :if => Proc.new { |u| !u.openid? } c.validates_format_of_login_field_options if => Proc.new { |u| !u.openid? } c.validates_length_of_login_field_options if => Proc.new { |u| !u.openid? } end
Daj znać, czy działa.

ok, dzięki Tjeden :wink: teraz działa.
Ale, przeraziłem się
http://pastie.org/515794
prawie że czysto i takie czasy :o