app/models/cms_user.rb in lucy_cms-0.0.5 vs app/models/cms_user.rb in lucy_cms-0.0.6

- old
+ new

@@ -1,5 +1,6 @@ +require 'net/ldap' class CmsUser < ActiveRecord::Base validates :login, :presence => true, :uniqueness => true @@ -8,21 +9,13 @@ :presence => true validates :last_name, :presence => true - @cms_site = CmsSite.first - - unless @cms_site.nil? - if @cms_site.authentication != 'LDAP' attr_accessor :password_confirmation validates_confirmation_of :password - validates :password, - :presence => true, - :on => :create - # 'password' is a virtual attribute def password @password end @@ -30,28 +23,26 @@ @password = pwd return if pwd.blank? create_new_salt self.hashed_password = CmsUser.encrypted_password(self.password, self.salt) end - end - end def full_name [first_name, last_name].join(' ') end - def self.authenticate(login, password) + def self.authenticate(login, password, authentication, ldap_hostname, ldap_base_DN, ldap_uid) - if @cms_site.authentication == 'LDAP' + if authentication == 'LDAP' username = login if (password.empty?) then return nil end - ldap = Net::LDAP.new(:host => @cms_site.ldap_hostname, :base => @cms_site.ldap_base_DN) - filter = Net::LDAP::Filter.eq(@cms_site.ldap_uid, login) + ldap = Net::LDAP.new(:host => ldap_hostname, :base => ldap_base_DN) + filter = Net::LDAP::Filter.eq(ldap_uid, login) ldap.search(:filter => filter) {|entry| login = entry.dn} ldap.auth(login, password) if ldap.bind user = CmsUser.find_by_login_and_disabled(username, false) # need to check if user is in the database and not disabled @@ -74,10 +65,9 @@ end end user end -rescue Net::LDAP::LdapError end private def create_new_salt