public static function refresh($login = '') { if ($login == 'GUEST') { $_SESSION["logon"]["avatar_generic"] = true; } else { $_SESSION["logon"]["avatar_generic"] = false; } $_usuario = new Auth_Model_Conta_Mapper(); $_usuario->setNome($login)->retrieve(); $rowSession = $_usuario->getModel()->getRowSession($_usuario->getId()); /** * Verifico se existe id do usuário na sessão * se não escreva nela os dados do usuário */ if ($rowSession->getId() != '') { $storage = Zend_Auth::getInstance()->getStorage(); $storage->write($rowSession); Zend_Auth::getInstance()->setStorage($storage); /** * Usado para sistema legado */ $_SESSION["logon"]["active"] = 1; $_SESSION["logon"]["usuario"]['id'] = $rowSession->getId(); $_SESSION["logon"]["usuario"]['login'] = $rowSession->getLogin(); $_SESSION["logon"]["usuario"]['nome'] = $rowSession->getName(); $_SESSION["logon"]['papel'] = $rowSession->getRole(); $_SESSION["logon"]["avatar"] = $rowSession->getAvatar(); $_SESSION["logon"]["empresa"] = $rowSession->getEmpresa(); } else { throw Exception('Não existe o usuário "GUEST"(Convidado) no sistema!'); } }
/** * * @param int $id * @return \ZendT_Acl_User_Row */ public function getRowSession($id) { $sql = "SELECT usr.id, \n usr.nome as login, \n usr.descricao as nome, \n usr.email, \n ppl.hierarquia as papel, \n usr.id as chapa,\n usr.avatar,\n usr.id_empresa,\n empresa.nome as nome_empresa,\n empresa.apelido as apelido_empresa,\n empresa.hierarquia as hierarquia_empresa\n FROM " . Auth_Model_Conta_Mapper::$table . " usr\n LEFT JOIN " . Auth_Model_Conta_Mapper::$table . " ppl ON (usr.id_papel_pai = ppl.id)\n LEFT JOIN " . Ca_Model_Pessoa_Mapper::$table . " empresa ON (ppl.id_empresa = empresa.id)\n WHERE usr.id = :id_usuario"; $stmt = $this->getAdapter()->query($sql, array('id_usuario' => $id)); $row = $stmt->fetch(); $_fileSystem = new Ged_Model_Arquivo_FileSystem(); if (!$row['avatar']) { $_auth = new Auth_Model_Conta_Mapper(); $_auth->setNome('GUEST')->retrieve(); $row['avatar'] = $_auth->getAvatar(); } $row['avatar'] = $_fileSystem->getDirectoryAdress($row['avatar']); $apps = $this->getApps($row['id']); $empresa = array(); $empresa['id'] = $row['id_empresa']; $empresa['nome'] = $row['nome_empresa']; $empresa['apelido'] = $row['apelido_empresa']; $empresa['hierarquia'] = $row['hierarquia_empresa']; $user = new ZendT_Acl_User_Row(); $user->setId($row['id'])->setLogin($row['login'])->setRole($row['papel'])->setEmail($row['email'])->setName($row['nome'])->setAvatar($row['avatar'])->setChapa($row['chapa'])->setApps($apps)->setEmpresa($empresa); return $user; }