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