I am getting "undefined method ''authenticate'' for
User:Class" even tho I
do have it defined in my User class. I put some puts to see how far the
code in user.rb was being executed when declaring the class and it seems
that it breaks when reaching the acts_as_authorized_user line, however
rails does not spit any error it just doesn''t finish loading the User
class. Here is the code:
puts "*Going to define User"
class User < ActiveRecord::Base
puts "*Going to include"
acts_as_authorized_user
acts_as_authorizable
puts "*Done include"
# Virtual attribute for the unencrypted password
attr_accessor :password
validates_presence_of :login, :email
validates_presence_of :password, :if => :password_required?
validates_presence_of :password_confirmation, :if => :password_required?
validates_length_of :password, :within => 4..40, :if =>
:password_required?
validates_confirmation_of :password, :if => :password_required?
validates_length_of :login, :within => 3..40
validates_length_of :email, :within => 3..100
validates_uniqueness_of :login, :email, :case_sensitive => false
before_save :encrypt_password
# Authenticates a user by their login name and unencrypted password.
Returns the user or nil.
def self.authenticate(login, password)
u = find_by_login(login) # need to get the salt
u && u.authenticated?(password) ? u : nil
end
# Encrypts some data with the salt.
def self.encrypt(password, salt)
Digest::SHA1.hexdigest("--#{salt}--#{password}--")
end
# Encrypts the password with the user salt
def encrypt(password)
self.class.encrypt(password, salt)
end
def authenticated?(password)
crypted_password == encrypt(password)
end
def remember_token?
remember_token_expires_at && Time.now.utc < remember_token_expires_at
end
# These create and unset the fields required for remembering users
between browser closes
def remember_me
self.remember_token_expires_at = 2.weeks.from_now.utc
self.remember_token =
encrypt("#{email}--#{remember_token_expires_at}")
save(false)
end
def forget_me
self.remember_token_expires_at = nil
self.remember_token = nil
save(false)
end
# Defining has_role? is optional when you use
''acts_as_authorized_user''.
# You can check roles against hardwired names before passing it off to
default role checking.
def has_role?( role, authorized_object = nil )
return true if self.username.downcase == ''admin'' and (role
=''site_admin'')
#return true if self.username.downcase == ''nobody'' and role ==
''nobody''
# Note that no ''conquerer'' role is hardwired in, so it must be
in role
table & checked through mixin has_role? method.
super
end
protected
# before filter
def encrypt_password
return if password.blank?
self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--")
if
new_record?
self.crypted_password = encrypt(password)
end
def password_required?
crypted_password.blank? || !password.blank?
end
end
puts "*Done defining User"
Any suggestions on what I can do? I am using rails 1.2.3 and rails
1.8.6.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Are you including the module that mixes in the functionality for acts_as_authorized_use? On 4/19/07, Juan Tarquino <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > > I am getting "undefined method ''authenticate'' for User:Class" even tho I > do have it defined in my User class. I put some puts to see how far the > code in user.rb was being executed when declaring the class and it seems > that it breaks when reaching the acts_as_authorized_user line, however > rails does not spit any error it just doesn''t finish loading the User > class. Here is the code: > > puts "*Going to define User" > class User < ActiveRecord::Base > > puts "*Going to include" > acts_as_authorized_user > acts_as_authorizable > puts "*Done include" > # Virtual attribute for the unencrypted password > attr_accessor :password > > validates_presence_of :login, :email > validates_presence_of :password, :if => :password_required? > validates_presence_of :password_confirmation, :if => :password_required? > validates_length_of :password, :within => 4..40, :if => > :password_required? > validates_confirmation_of :password, :if => :password_required? > validates_length_of :login, :within => 3..40 > validates_length_of :email, :within => 3..100 > validates_uniqueness_of :login, :email, :case_sensitive => false > before_save :encrypt_password > > # Authenticates a user by their login name and unencrypted password. > Returns the user or nil. > def self.authenticate(login, password) > u = find_by_login(login) # need to get the salt > u && u.authenticated?(password) ? u : nil > end > > # Encrypts some data with the salt. > def self.encrypt(password, salt) > Digest::SHA1.hexdigest("--#{salt}--#{password}--") > end > > # Encrypts the password with the user salt > def encrypt(password) > self.class.encrypt(password, salt) > end > > def authenticated?(password) > crypted_password == encrypt(password) > end > > def remember_token? > remember_token_expires_at && Time.now.utc < remember_token_expires_at > end > > # These create and unset the fields required for remembering users > between browser closes > def remember_me > self.remember_token_expires_at = 2.weeks.from_now.utc > self.remember_token = encrypt("#{email}--#{remember_token_expires_at}") > save(false) > end > > def forget_me > self.remember_token_expires_at = nil > self.remember_token = nil > save(false) > end > > # Defining has_role? is optional when you use ''acts_as_authorized_user''. > # You can check roles against hardwired names before passing it off to > default role checking. > def has_role?( role, authorized_object = nil ) > return true if self.username.downcase == ''admin'' and (role => ''site_admin'') > #return true if self.username.downcase == ''nobody'' and role == ''nobody'' > # Note that no ''conquerer'' role is hardwired in, so it must be in role > table & checked through mixin has_role? method. > super > end > > protected > # before filter > def encrypt_password > return if password.blank? > self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--") if > new_record? > self.crypted_password = encrypt(password) > end > > def password_required? > crypted_password.blank? || !password.blank? > end > end > > puts "*Done defining User" > > Any suggestions on what I can do? I am using rails 1.2.3 and rails > 1.8.6. > > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
yes, I tried doing include Authorization::ObjectRolesTable::UserExtensions::ClassMethods include Authorization::ObjectRolesTable::ModelExtensions::ClassMethods on the User class but that didn''t work either, it gives me the same error. Using the puts I can see that rails stops loading the class at those lines, so I am starting to suspect that the Plugin classes are not being loaded by rails or it can''t find them. However, I put some puts on the load_plugins method of rails and it does have the correct paths for my plugins. I am absolutely confused at this point. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Does this plugin have docs? What plugin is it? You''re absolutely right... it''s not loading the plugins On 4/19/07, Juan Tarquino <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > > yes, I tried doing > include Authorization::ObjectRolesTable::UserExtensions::ClassMethods > include Authorization::ObjectRolesTable::ModelExtensions::ClassMethods > > on the User class but that didn''t work either, it gives me the same > error. Using the puts I can see that rails stops loading the class at > those lines, so I am starting to suspect that the Plugin classes are not > being loaded by rails or it can''t find them. However, I put some puts on > the load_plugins method of rails and it does have the correct paths for > my plugins. I am absolutely confused at this point. > > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
The authorization plugin, I am also using the acts_as_authenticated plugin and the Dr. Nick Magic models. I tried deactivating the Magic Models plugin but it made no difference. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I am not using the authorization plugin anymore, but the models are
still not being loaded properly. For example I have a DemeritSlip class
in the models folder with a custom attribute named std_name that looks
like this:
def std_name=(std_formal_and_id)
set_std_name(std_formal_and_id)
end
def set_std_name(std_formal_and_id)
self.student_id = std_formal_and_id.to_s.split("ID:")[1].to_i
end
def std_name
if (self.student == nil)
return ""
else
return self.student.formal_name_id
end
end
Rails doesn''t find this method somehow.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---