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 -~----------~----~----~----~------~----~------~--~---