✏️ 正在编辑: Pessoa.php
路径:
/srv/systems_dir/yuppiecred/application/models/Pessoa.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Modules\Pessoa\Enum\StatusCadastroCorretorEnum; class Model_Pessoa extends Core_Model { public const DBTABLE = [ 0 => 'Model_DbTable_Usuario', 1 => 'Model_DbTable_Corretor', 2 => 'Model_DbTable_Gerente', 3 => 'Model_DbTable_GerenteRota' ]; private $_id; private $_nome; private $_endereco; private $_bairro; private $_cidade; private $_uf; private $_cep; private $_numero; private $_complemento; private $_fone; private $_celular; private $_email; private $_email2; private $_email3; private $_dataCadastro; private $_fax; private $_ip; private $_codigoExtra; public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; } public function getNome() { return $this->_nome; } public function setNome($nome) { $this->_nome = trim($nome); } public function getEndereco() { return $this->_endereco; } public function setEndereco($endereco) { $this->_endereco = $endereco; } public function getBairro() { return $this->_bairro; } public function setBairro($bairro) { $this->_bairro = $bairro; } public function getCidade() { return $this->_cidade; } public function setCidade($cidade) { $this->_cidade = $cidade; } public function getUf() { return $this->_uf; } public function setUf($uf) { $this->_uf = $uf; } public function getCep() { return $this->_cep; } public function setCep($cep) { $this->_cep = $cep; } public function getNumero() { return $this->_numero; } public function setNumero($numero) { $this->_numero = $numero; } public function getComplemento() { return $this->_complemento; } public function setComplemento($complemento) { $this->_complemento = $complemento; } public function getFone() { return $this->_fone; } public function setFone($fone) { $this->_fone = $fone; } public function getCelular() { return $this->_celular; } public function setCelular($celular) { $this->_celular = $celular; } public function getEmail() { return $this->_email; } public function setEmail($email) { $this->_email = trim($email); } public function getEmail2() { return $this->_email2; } public function setEmail2($email) { $this->_email2 = trim($email); } public function getEmail3() { return $this->_email3; } public function setEmail3($email) { $this->_email3 = trim($email); } public function getFax() { return $this->_fax; } public function setFax($fax) { $this->_fax = $fax; } public function getIp() { return $this->_ip; } public function setIp($ip) { $this->_ip = $ip; } public function getCodigoExtra() { return $this->_codigoExtra; } public function setCodigoExtra($codigoExtra) { $this->_codigoExtra = $codigoExtra; } public function autenticar($username, $password, $table, $grupo = false, $horario = false) { if( !empty($username) && !empty($password) ){ $db = Zend_Db_Table_Abstract::getDefaultAdapter(); $adapter = new Zend_Auth_Adapter_DbTable($db, $table, 'login', 'senha', 'MD5(?)'); $adapter->getDbSelect() ->where("excluido <> 1"); if( Yuppie_Auth::authenticate($adapter, addslashes($username), $password) ){ $data = $adapter->getResultRowObject(null, 'senha'); if( $this->usuarioBloqueado($data) ){ throw new Core_Exception( "Acesso bloqueado. Por favor, contate o administrador do sistema para obter mais informações." ); } $this->validarAcessoCorretor($data); if (empty($data->empresa_id)) { throw new Core_Exception("Empresa não localizada! Favor fazer contato com o administrador do sistema."); } $dadosEmpresa = (new Model_Empresa())->exibir($data->empresa_id); $data->a2f = $dadosEmpresa->a2f; if ($horario) { $data->hora_inicio = '00:00'; $data->hora_fim = '23:59'; $data->dias = '0,1,2,3,4,5,6'; } if ($grupo) { $data->grupo = $grupo; $grupo = new Model_GrupoUsuario(); $data->grupo_id = $grupo->getIdGrupo($data->grupo); } Yuppie_Auth::writeStorage($data); $acl = new Core_LibraryAcl($data->grupo); $ns = new Zend_Session_Namespace(); $ns->acl = $acl; $ns->identity = $data; return $data; } } return false; } private function usuarioBloqueado($data) { $dados = get_object_vars($data); if(!empty($dados['corretor_desativado']) || !empty($dados['usuario_bloqueado'])){ return true; } return false; } /** * @param int $tipoAcesso * @param string $username * @return mixed */ public function getUsuarioReset(int $tipoAcesso, string $username) { $dbTable = self::DBTABLE[$tipoAcesso]; if (class_exists($dbTable)) { $table = new $dbTable(); return $table->fetchRow(["login = ?" => $username, "excluido <> 1 AND email <> ''"]); } return null; } /** * @param int $tipoAcesso * @param int $usuarioId * @return array */ public function setarReset(int $tipoAcesso, int $usuarioId): array { $dbTable = self::DBTABLE[$tipoAcesso]; $result = null; if (!class_exists($dbTable)) { return ['error' => "Ocorreu um erro durante o processamento."]; } $table = new $dbTable(); $usuario = $table->fetchRow(['id = ?' => $usuarioId, 'excluido <> 1'])->toArray(); $dataAtual = Zend_Date::now()->get('yyyy-MM-dd'); $tokenReset = md5($usuario['id'].$dataAtual); try { $result = $table->update([ 'token_reset_senha' => $tokenReset, 'data_request_reset' => $dataAtual ], 'id = ' . $usuarioId); } catch (Exception $exception) { return ['error' => $exception->getMessage()]; } if (!$result) { return ['error' => 'Não foi possível enviar e-mail.']; } return $table->fetchRow(['id = ?' => $usuarioId])->toArray(); } /** * @param $tipoAcesso * @param $token * @return mixed|string[] */ public function autenticarTokenReset($tipoAcesso, $token) { $usuario = null; $dbTable = self::DBTABLE[$tipoAcesso]; if (!class_exists($dbTable)) { return ['alert' => 'Ocorreu um erro durante o processamento.']; } $table = new $dbTable(); $usuario = $table->fetchRow(["token_reset_senha = ?" => $token, "excluido <> 1"]); $dataValidar = Zend_Date::now()->get('yyyy-MM-dd'); if (!empty($usuario->data_request_reset) && $usuario->data_request_reset !== $dataValidar) { return ['alert' => 'Token expirado. Solicite alteração da senha novamente.']; } if (empty($usuario)) { return ['alert' => 'Token inválido.']; } return $usuario; } /** * @param int $tipoAcesso * @param $usuario * @param string $novaSenha * @return string[] */ public function alterarSenha(int $tipoAcesso, $usuario, $novaSenha) { $dbTable = self::DBTABLE[$tipoAcesso]; if (!class_exists($dbTable)) { return ['error' => 'Ocorreu um erro durante o processamento.']; } $dados = [ "senha" => $novaSenha, "token_reset_senha" => null, "data_request_reset" => null ]; if ($dbTable == 'Model_DbTable_Corretor') { $dados['data_alteracao_senha'] = Zend_Date::now()->get('yyyy-MM-dd'); } $dbTable = new $dbTable(); $result = $dbTable->update($dados, "id = " . $usuario->id); if (!$result) { return ['error' => 'Não foi possível alterar a senha, entre em contato os administradores.']; } return $result; } /** * @param stdClass $data * @throws Core_Exception */ public function validarAcessoCorretor(stdClass $data): void { if (isset($data->status_cadastro) && !StatusCadastroCorretorEnum::isLiberado($data->status_cadastro)) { throw new Core_Exception("Seu cadastro encontra-se em análise, Por favor aguarde."); } } }
💾 保存文件
← 返回文件管理器