示例#1
0
function autenticaUsuario($usuario, $senha)
{
    include dirname(__FILE__) . "/conexao.php";
    $senhamd5 = md5($senha);
    $senhaHash = password_hash($senha, PASSWORD_DEFAULT);
    //faz um teste de tentativas de acesso
    $nomeArquivo = $dir_tmp . "/a" . md5($usuario . "testeTentativas") . intval(time() / 1000);
    if (!file_exists($dir_tmp)) {
        return false;
    }
    if (file_exists($nomeArquivo)) {
        $tentativas = (int) file_get_contents($nomeArquivo);
        if ($tentativas > 3) {
            return "muitas tentativas";
        }
        $tentativas = $tentativas + 1;
        file_put_contents($nomeArquivo, $tentativas);
    } else {
        file_put_contents($nomeArquivo, 1);
    }
    //verifica se o usuario esta cadastrado no ms_configura.php em $i3geomaster
    //echo "select * from ".$esquemaadmin."i3geousr_usuarios where login = '******' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1";exit;
    //exit;
    if (verificaMaster($usuario, $senha) == true) {
        $pa = pegaDados("select * from " . $esquemaadmin . "i3geousr_papelusuario ", $dbh, false);
        $op = pegadados("SELECT O.codigo FROM " . $esquemaadmin . "i3geousr_operacoes AS O", $dbh, false);
        $gr = pegadados("SELECT * from " . $esquemaadmin . "i3geousr_grupos ", $dbh, false);
        //var_dump($gr);exit;
        $operacoes = array();
        foreach ($op as $o) {
            $operacoes[$o["codigo"]] = true;
        }
        $papeis = array();
        foreach ($pa as $p) {
            $papeis[] = $p["id_papel"];
        }
        $gruposusr = array();
        foreach ($gr as $p) {
            $gruposusr[] = $p["id_grupo"];
        }
        $master = array();
        $master["id_usuario"] = "master";
        $master["nome_usuario"] = "master";
        $r = array("usuario" => $master, "papeis" => $papeis, "operacoes" => $operacoes, "gruposusr" => $gruposusr);
        $dbh = null;
        $dbhw = null;
        file_put_contents($nomeArquivo, 1);
        return $r;
    } else {
        //verifica se a senha e uma string ou pode ser um md5
        $ok = false;
        $dados = array();
        if (strlen($senha) == 32) {
            $dados = pegaDados("select id_usuario,nome_usuario from " . $esquemaadmin . "i3geousr_usuarios where login = '******' and senha = '{$senhamd5}' and ativo = 1", $dbh, false);
        } else {
            $dados = pegaDados("select id_usuario,nome_usuario from " . $esquemaadmin . "i3geousr_usuarios where login = '******' and (senha = '{$senhamd5}' or senha = '{$senha}') and ativo = 1", $dbh, false);
        }
        if (count($dados) > 0) {
            $ok = true;
        }
        //testa tambem com a nova forma de armazenamento de senha usando password_hash
        if ($ok == false) {
            $usuarios = pegaDados("select senha,id_usuario,nome_usuario from " . $esquemaadmin . "i3geousr_usuarios where login = '******' and ativo = 1", $dbh, false);
            foreach ($usuarios as $d) {
                if (password_verify($d["senha"], $senhaHash)) {
                    $ok = true;
                    $dados = array("id_usuario" => $d["id_usuario"], "nome_usuario" => $d["nome_usuario"]);
                }
            }
            $usuarios = null;
        }
        if ($ok == true) {
            $pa = pegaDados("select * from " . $esquemaadmin . "i3geousr_papelusuario where id_usuario = " . $dados[0]["id_usuario"], $dbh, false);
            $op = pegadados("SELECT O.codigo, PU.id_usuario FROM " . $esquemaadmin . "i3geousr_operacoes AS O JOIN " . $esquemaadmin . "i3geousr_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN " . $esquemaadmin . "i3geousr_papelusuario AS PU ON OP.id_papel = PU.id_papel\tWHERE id_usuario = " . $dados[0]["id_usuario"], $dbh, false);
            $gr = pegadados("SELECT * from " . $esquemaadmin . "i3geousr_grupousuario where id_usuario = " . $dados[0]["id_usuario"], $dbh, false);
            $operacoes = array();
            foreach ($op as $o) {
                $operacoes[$o["codigo"]] = true;
            }
            $papeis = array();
            foreach ($pa as $p) {
                $papeis[] = $p["id_papel"];
            }
            $gruposusr = array();
            foreach ($gr as $p) {
                $gruposusr[] = $p["id_grupo"];
            }
            $r = array("usuario" => $dados[0], "papeis" => $papeis, "operacoes" => $operacoes, "gruposusr" => $gruposusr);
            $dbh = null;
            $dbhw = null;
            file_put_contents($nomeArquivo, 1);
            return $r;
        } else {
            $dbh = null;
            $dbhw = null;
            return false;
        }
    }
}
示例#2
0
        //var_dump($subgrupos);
        if ($idioma == "pt") {
            $coluna = "nome_tema";
        } else {
            $coluna = $idioma;
        }
        foreach ($subgrupos as $subgrupo) {
            $id_n2 = $subgrupo["id_n2"];
            $sql = "select t.codigo_tema,t.{$coluna} as nome_tema,t.link_tema, t.desc_tema, t.kmz_tema from " . $esquemaadmin . "i3geoadmin_n3 as n3," . $esquemaadmin . "i3geoadmin_temas as t where ";
            $sql .= "n3.id_n2='{$id_n2}' ";
            $sql .= "and n3.id_tema = t.id_tema ";
            $sql .= "and (n3_perfil = '' or n3_perfil is null) ";
            $sql .= "and (lower(t.kml_tema) != 'nao' or t.kml_tema is null)";
            $sql .= "and (lower(t.tipoa_tema) != 'wms' or t.tipoa_tema is null)";
            $sql .= "and (lower(n3.publicado) != 'nao' or n3.publicado is null) ";
            $temas = pegadados($sql);
            $xml .= kml_folder($subgrupo["nome_subgrupo"]);
            if (count($temas) > 0) {
                foreach ($temas as $tema) {
                    $xml .= kml_tema_bd($tema);
                }
            }
            $xml .= "</Folder>\n";
        }
        $xml .= "</Folder>\n";
    }
    $xml .= "</Folder>\n";
}
$xml .= "</Document></kml>\n";
//exit;
if (isset($_GET["tipoxml"]) && $_GET["tipoxml"] == "kml") {