/** * @author FreelaPHP schuindt * @version 1.0 * @todo metodo que realiza o login do usuario no sistema * * * */ public function login() { try { $this->User->validate = $this->User->validate_login; $_POST = Utils::sanitazeArray($_POST); $this->User->data = $_POST[$this->User->name]; $_SESSION = NULL; if ($this->User->validates()) { $this->User->data['senha'] = Authentication::password($this->User->data['senha']); /** * toda a minha validação de status da conta, usuario ou empresa está na procedure. * referencia MODEL/USUARIOS.PHP * metodo LOGAR */ $usuario[$this->User->name] = $this->User->logar($this->User->data['email'], $this->User->data['senha']); /** * recuperar a empresa do funcionario */ Session::initAuth(); Session::createSession($usuario); /** * Usuario operador logar com a empresa já na session */ if (in_array($usuario[$this->User->name]['roles_id'], array(2, 6, 7))) { $modelFuncionario = new Funcionario(); $modelEmpresa = new Empresa(); $funcionario = $modelFuncionario->find('first', array('pessoas_id' => $usuario[$this->User->name]['pessoas_id'])); /** * */ if (count($funcionario) > 0) { $_SESSION[$modelFuncionario->name] = $funcionario[0][$modelFuncionario->name]; } $empresa = $modelEmpresa->findEmpresa($funcionario[0][$modelFuncionario->name]['empresas_id']); if (count($empresa) > 0) { /** * recuperando a conta empresa e guardando na sessao */ $contatos = $modelEmpresa->contatosEmpresa($funcionario[0][$modelFuncionario->name]['empresas_id']); $contaEmpresa = $modelEmpresa->contaEmpresa(md5($funcionario[0][$modelFuncionario->name]['empresas_id'])); $_SESSION[$modelEmpresa->name] = $empresa[0]; $_SESSION['ContaEmpresa'] = $contaEmpresa[0]; $_SESSION['Contato'] = $contatos; } } else { if (in_array($usuario[$this->User->name]['roles_id'], array(3, 4))) { /** * VERIFICO SE EXISTE APENAS UMA EMPRESA VINCULADA */ $modelEmpresa = new Empresa(); $empresas = $modelEmpresa->empresasRelacionadas(md5($usuario[$this->User->name]['pessoas_id']), $usuario[$this->User->name]['roles_id']); if (count($empresas) == 1) { $_SESSION[$modelEmpresa->name] = $empresas[0]; /** * recuperando a conta empresa e guardando na sessao */ $contaEmpresa = $modelEmpresa->contaEmpresa(md5($_SESSION[$modelEmpresa->name]['empresas_id'])); $_SESSION['ContaEmpresa'] = $contaEmpresa[0]; } } } $url = Router::url(array('Usuarios', 'painel')); echo json_encode(array('funcao' => "sucessoForm( 'login efetuado com sucesso!', '#UsuarioLoginForm' ); redirect('{$url}');")); } else { echo json_encode(array('erros' => $this->User->validateErros, 'form' => 'UsuarioLoginForm')); } } catch (Exception $ex) { $msg = $ex->getMessage(); echo json_encode(array('funcao' => "infoErro('{$msg}', '#UsuarioLoginForm');")); } }