session_id(),"nome"=>$teste["usuario"]["nome_usuario"]); cpjson($retorno); } else{ logoutUsuario(); } break; /* Valor: VALIDAOPERACAOUSUARIO Verifica se um usuario pode executar uma operacao Para que o usuario possa executar a operacao, o papel ao qual ele pertence deve estar registrado em operacoespaeis no banco de administracao Paremeter: $operacao - operacao que sera verificada */ case "VALIDAOPERACAOSESSAO": $retorno = "nao"; if(verificaOperacaoSessao($operacao) == true){ $retorno = "sim"; } else{ logoutUsuario(); } cpjson($retorno); break; } function verificaOperacaoSessao($operacao){ $resultado = false; //verifica se e administrador foreach($_SESSION["papeis"] as $p){ if($p["id_papel"] == 1){ return true; } } if(!empty($_SESSION["operacoes"][$operacao])){ $resultado = true; } return $resultado; } function validaSessao(){ $fingerprint = 'I3GEOLOGIN' . $_SERVER['HTTP_USER_AGENT']; if($_SESSION['fingerprint'] != md5($fingerprint . session_id())){ return false; } if($_SESSION["usuario"] != $_COOKIE["usuario"]){ return false; } return true; } function autenticaUsuario($usuario,$senha){ include(__DIR__."/conexao.php"); /** * TODO aplicar md5 na senha */ $dados = pegaDados("select * from ".$esquemaadmin."i3GEOadmin_usuarios where login = '$usuario' and senha = '$senha' and ativo = 1",$locaplic); if(count($dados) > 0){ $papeis = pegaDados("select * from ".$esquemaadmin."i3geoadmin_papelusuario where id_usuario = ".$dados[0]["id_usuario"],$locaplic); $op = pegadados("SELECT O.codigo, PU.id_usuario FROM ".$esquemaadmin."i3geoadmin_operacoes AS O JOIN ".$esquemaadmin."i3geoadmin_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geoadmin_papelusuario AS PU ON OP.id_papel = PU.id_papel WHERE id_usuario = ".$dados[0]["id_usuario"],$locaplic); $operacoes = array(); foreach($op as $o){ $operacoes[$o["codigo"]] = true; } $r = array("usuario"=>$dados[0],"papeis"=>$papeis,"operacoes"=>$operacoes); return $r; } else{ return false; } } function logoutUsuario(){ $_COOKIE = array(); $_SESSION = array(); session_destroy(); } ?>