lib/cmpa_auth/authentication.rb in cmpa_auth-1.0.5 vs lib/cmpa_auth/authentication.rb in cmpa_auth-1.0.6
- old
+ new
@@ -1,16 +1,26 @@
module CmpaAuth
module Authentication
CLASS_NAMES = %w( Pessoa Estagiario Funcionario GrupoAcesso LotacaoTemporaria Setor Sistema )
- #
- # Realiza a autenticação e retorna uma pessoa (usuário) caso o login e senha
- # estejam corretos.
- #
- def self.authenticate(login, password)
- user = ::Pessoa.first(:conditions => { :usuario => login })
- user if user && login.present? && password.present? && Digest::SHA256.hexdigest(password + user.senha_salt) == user.senha_hash
+ # Realiza a autenticação via LDAP. Se a autenticação for bem sucedida é realizada uma
+ # consulta pelo +username+ na tabela +pessoas+ e uma instância de +Pessoa+ é retornada.
+ # Caso contrário, retorna +nil+.
+ def self.authenticate(username, password)
+ ldap_options = {
+ :host => '200.169.19.93',
+ :port => 389,
+ :base => 'DC=cmpa,DC=local',
+ :auth => {
+ :method => :simple,
+ :username => "#{username}@cmpa.local",
+ :password => password
+ }
+ }
+ Net::LDAP.open ldap_options do |ldap|
+ Pessoa.first(:conditions => { :username => username }) if ldap.bind
+ end
end
#
# Retorna uma lista de sistemas disponíveis para a lotação temporária em questão.
#
\ No newline at end of file