✏️ 正在编辑: Acesso.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/models/DbTable/Acesso.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_DbTable_Acesso extends Zend_Db_Table_Abstract { protected $_primary = 'id'; protected $_name = 'tb_acessos'; protected function prepareData($tipoAcesso) { $dados['tipo_acesso'] = $tipoAcesso; $dados['usuario_id'] = Yuppie_Auth::getIdentity()->id; if( !$dados['usuario_id'] ) return; if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $dados['ip'] = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $dados['ip'] = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $dados['ip'] = $_SERVER['REMOTE_ADDR']; } $dados['datahora'] = Zend_Date::now()->get('yyyy-MM-dd HH:mm:ss'); return $dados; } /** * Registra na tabela de acessos o id do usuário logado, o ip e a hora atual * @param $tipoAcesso */ public function registrar($tipoAcesso) { $result = null; $dados = $this->prepareData($tipoAcesso); $acesso = $this->fetchRow([ 'tipo_acesso = ?' => $tipoAcesso, 'usuario_id = ?' => $dados['usuario_id'] ]); if ($acesso) { $result = $this->update($dados, [ 'id = ?' => $acesso->id ]); } else { $result = $this->insert($dados); } if ($result) { (new Model_DbTable_AcessoHistorico())->insert($dados); } $dados['ultima_validacao'] = $dados['datahora']; Yuppie_Auth::getIdentity()->acesso = $dados; } /** * Verifica se já se passaram 2 minutos da última validação, caso positivo, * verifica se a hora do último login é maior que a hora registrada na * sessão. Se for, retorna false. * * @return boolean */ public function validar() { if (isset(Yuppie_Auth::getIdentity()->acesso)) { $authAcesso = Yuppie_Auth::getIdentity()->acesso; $datahora = new Zend_Date( $authAcesso['ultima_validacao'], 'yyyy-MM-dd HH:mm:ss' ); $datahora->addMinute(2); //-1 se compare > 2min if ($datahora->compare(Zend_Date::now()) <= 0) { Yuppie_Auth::getIdentity()->acesso['ultima_validacao'] = Zend_Date::now()->get('yyyy-MM-dd HH:mm:ss'); return !$this->usuarioJaRegistrado($authAcesso); } } return true; } protected function usuarioJaRegistrado($authAcesso) : bool { if (Yuppie_Auth::getIdentity()->login == "yuppie") { return false; } $result = $this->fetchRow([ "usuario_id = ?" =>$authAcesso['usuario_id'], "tipo_acesso = ?" =>$authAcesso['tipo_acesso'], "datahora > ?" =>$authAcesso['datahora'] ]); if ($result) { return true; } return false; } }
💾 保存文件
← 返回文件管理器