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