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 end # # Retorna uma lista de sistemas disponíveis para a lotação temporária em questão. # def self.allowed_systems(lotacao_temporaria_id) lotacao_temporaria = ::LotacaoTemporaria.find(lotacao_temporaria_id) lotacao_temporaria.grupos_acesso.inject([]) do |sistemas, grupo| sistemas += grupo.sistemas.select { |s| !sistemas.include?(s) && s.status == 'ativo' } end end end end