/** * Verifica se um usuário tem permissão para cadastrar baseado em um * identificador de processo. * * @param int $int_processo_ap Identificador de processo * @param int $int_idpes_usuario Identificador do usuário * @param int $int_soma_nivel_acesso * @param string $str_pagina_redirecionar Caminho para o qual a requisição será * encaminhada caso o usuário não tenha privilégios suficientes para a * operação de cadastro * @param bool $super_usuario TRUE para verificar se o usuário é super usuário * @param bool $int_verifica_usuario_biblioteca TRUE para verificar se o * usuário possui cadastro em alguma biblioteca * @return bool|void */ function permissao_excluir($int_processo_ap, $int_idpes_usuario, $int_soma_nivel_acesso, $str_pagina_redirecionar = NULL, $super_usuario = NULL, $int_verifica_usuario_biblioteca = FALSE) { $obj_usuario = new clsFuncionario($int_idpes_usuario); $detalhe_usuario = $obj_usuario->detalhe(); // Verifica se é super usuário if ($super_usuario != NULL && $detalhe_usuario['ativo']) { $obj_menu_funcionario = new clsMenuFuncionario($int_idpes_usuario, FALSE, FALSE, 0); $detalhe_super_usuario = $obj_menu_funcionario->detalhe(); } if (!$detalhe_super_usuario) { $obj_menu_funcionario = new clsMenuFuncionario($int_idpes_usuario, FALSE, FALSE, $int_processo_ap); $detalhe = $obj_menu_funcionario->detalhe(); } $nivel = $this->nivel_acesso($int_idpes_usuario); $ok = FALSE; if ($super_usuario && $detalhe_super_usuario || $nivel & $int_soma_nivel_acesso) { $ok = TRUE; } if (!$detalhe['exclui'] && !$detalhe_super_usuario) { $ok = FALSE; } /* * Se for usuario tipo biblioteca ou escola * ($int_verifica_usuario_biblioteca = true), verifica se possui cadastro na * tabela usuario biblioteca */ if (($nivel == 8 || $nivel == 4 && $int_verifica_usuario_biblioteca == TRUE) && $int_soma_nivel_acesso > 3 && !$detalhe_super_usuario) { $ok = $this->getBiblioteca($int_idpes_usuario) == 0 ? FALSE : TRUE; if (!$ok && $nivel == 8) { header("Location: index.php?negado=1"); die; } } if (!$ok) { if ($str_pagina_redirecionar) { header("Location: {$str_pagina_redirecionar}"); die; } else { return FALSE; } } return TRUE; }
function Gerar() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; session_write_close(); $this->titulo = "Usuário - Listagem"; foreach ($_GET as $var => $val) { // passa todos os valores obtidos no GET para atributos do objeto $this->{$var} = $val === "" ? null : $val; } $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet"); $this->addCabecalhos(array("Usuário", "Tipo Usuário", "Nível de Acesso")); $objPermissao = new clsPermissoes(); // Filtros de Foreign Keys $opcoes = array("" => "Pesquise o funcionário clicando na lupa ao lado"); if ($this->cod_usuario) { $objTemp = new clsFuncionario($this->cod_usuario); $detalhe = $objTemp->detalhe(); $detalhe = $detalhe["idpes"]->detalhe(); $opcoes["{$detalhe["idpes"]}"] = $detalhe["nome"]; } $parametros = new clsParametrosPesquisas(); $parametros->setSubmit(0); $parametros->adicionaCampoSelect("cod_usuario", "ref_cod_pessoa_fj", "nome"); $this->campoListaPesq("cod_usuario", "Usuário", $opcoes, $this->cod_usuario, "pesquisa_funcionario_lst.php", "", false, "", "", null, null, "", false, $parametros->serializaCampos()); $opcoes = array("" => "Selecione"); if (class_exists("clsPmieducarTipoUsuario")) { $objTemp = new clsPmieducarTipoUsuario(); $objTemp->setOrderby('nm_tipo ASC'); $lista = $objTemp->lista(); if (is_array($lista) && count($lista)) { foreach ($lista as $registro) { $opcoes["{$registro['cod_tipo_usuario']}"] = "{$registro['nm_tipo']}"; } } } else { echo "<!--\nErro\nClasse clsPmieducarTipoUsuario não encontrada\n-->"; $opcoes = array("" => "Erro na geração"); } $this->campoLista("ref_cod_tipo_usuario", "Tipo Usuário", $opcoes, $this->ref_cod_tipo_usuario, null, null, null, null, null, false); // filtro de nivel de acesso $obj_tipo_usuario = new clsPmieducarTipoUsuario($this->pessoa_logada); $tipo_usuario = $obj_tipo_usuario->detalhe(); $obj_super_usuario = new clsMenuFuncionario($this->pessoa_logada, false, false, 0); $super_usuario_det = $obj_super_usuario->detalhe(); if ($super_usuario_det) { $opcoes = array("" => "Selecione", "1" => "Poli-Institucional", "2" => "Institucional", "4" => "Escolar", "8" => "Biblioteca"); } elseif ($tipo_usuario["nivel"] == 1) { $opcoes = array("" => "Selecione", "2" => "Institucional", "4" => "Escolar", "8" => "Biblioteca"); } elseif ($tipo_usuario["nivel"] == 2) { $opcoes = array("" => "Selecione", "4" => "Escolar", "8" => "Biblioteca"); } elseif ($tipo_usuario["nivel"] == 4) { $opcoes = array("" => "Selecione", "8" => "Biblioteca"); } $this->campoLista("ref_cod_nivel_usuario", "Nível de Acesso", $opcoes, $this->ref_cod_nivel_usuario, null, null, null, null, null, false); if ($super_usuario_det) { $get_escola = true; include "include/pmieducar/educar_campo_lista.php"; } // Paginador $this->limite = 20; $this->offset = $_GET["pagina_{$this->nome}"] ? $_GET["pagina_{$this->nome}"] * $this->limite - $this->limite : 0; $obj_usuario = new clsPmieducarUsuario(); $obj_usuario->setOrderby("nivel ASC"); $obj_usuario->setLimite($this->limite, $this->offset); $lista = $obj_usuario->lista($this->cod_usuario, $this->ref_cod_escola, $this->ref_cod_instituicao, null, null, $this->ref_cod_tipo_usuario, null, null, null, null, 1, $this->ref_cod_nivel_usuario); $total = $obj_usuario->_total; if (is_array($lista) && count($lista)) { foreach ($lista as $registro) { // pega detalhes de foreign_keys if (class_exists("clsPessoa_")) { $obj_cod_usuario = new clsPessoa_($registro["cod_usuario"]); $obj_usuario_det = $obj_cod_usuario->detalhe(); $nome_usuario = $obj_usuario_det['nome']; } else { $nome_usuario = "Erro na geração"; echo "<!--\nErro\nClasse não existente: clsPessoa_\n-->"; } if (class_exists("clsPmieducarTipoUsuario")) { $obj_tipo_usuario = new clsPmieducarTipoUsuario($registro["ref_cod_tipo_usuario"]); $obj_tipo_usuario_det = $obj_tipo_usuario->detalhe(); $nm_tipo_usuario = $obj_tipo_usuario_det["nm_tipo"]; $registro["ref_cod_nivel_usuario"] = $obj_tipo_usuario_det["nivel"]; if ($registro["ref_cod_nivel_usuario"] == 1) { $nivel = "Poli-Institucional"; } elseif ($registro["ref_cod_nivel_usuario"] == 2) { $nivel = "Institucional"; } elseif ($registro["ref_cod_nivel_usuario"] == 4) { $nivel = "Escolar"; } elseif ($registro["ref_cod_nivel_usuario"] == 8) { $nivel = "Biblioteca"; } } else { $registro["ref_cod_tipo_usuario"] = "Erro na geração"; echo "<!--\nErro\nClasse não existente: clsPmieducarTipoUsuario\n-->"; } $this->addLinhas(array("<a href=\"educar_usuario_det.php?cod_usuario={$registro["cod_usuario"]}\">{$nome_usuario}</a>", "<a href=\"educar_usuario_det.php?cod_usuario={$registro["cod_usuario"]}\">{$nm_tipo_usuario}</a>", "<a href=\"educar_usuario_det.php?cod_usuario={$registro["cod_usuario"]}\">{$nivel}</a>")); } } $this->addPaginador2("educar_usuario_lst.php", $total, $_GET, $this->nome, $this->limite); $objPermissao = new clsPermissoes(); if ($objPermissao->permissao_cadastra(555, $this->pessoa_logada, 7, null, true)) { $this->acao = "go(\"educar_usuario_cad.php\")"; $this->nome_acao = "Novo"; } $this->largura = "100%"; }
function Gerar() { $obj_permissao = new clsPermissoes(); $obj_permissao->permissao_cadastra(555, $this->pessoa_logada, 7, "educar_usuario_lst.php", true); // primary keys $this->campoOculto("cod_usuario", $this->cod_usuario); // foreign keys $opcoes = array("" => "Pesquise o funcionário clicando na lupa ao lado"); if ($this->cod_usuario) { $objTemp = new clsFuncionario($this->cod_usuario); $detalhe = $objTemp->detalhe(); $detalhe = $detalhe["idpes"]->detalhe(); $opcoes["{$detalhe["idpes"]}"] = $detalhe["nome"]; } $parametros = new clsParametrosPesquisas(); $parametros->setSubmit(0); $parametros->adicionaCampoSelect("cod_usuario_", "ref_cod_pessoa_fj", "nome"); $this->campoListaPesq("cod_usuario_", "Usuário", $opcoes, $this->cod_usuario, "pesquisa_funcionario_lst.php", "", false, "", "", null, null, "", false, $parametros->serializaCampos()); $opcoes = array("" => "Selecione"); if (class_exists("clsPmieducarTipoUsuario")) { $objTemp = new clsPmieducarTipoUsuario(); $objTemp->setOrderby('nm_tipo ASC'); $obj_libera_menu = new clsMenuFuncionario($this->pessoa_logada, false, false, 0); $obj_super_usuario = $obj_libera_menu->detalhe(); // verifica se pessoa logada é super-usuario if ($obj_super_usuario) { $lista = $objTemp->lista(null, null, null, null, null, null, null, null, 1); } else { $lista = $objTemp->lista(null, null, null, null, null, null, null, null, 1, $obj_permissao->nivel_acesso($this->pessoa_logada)); } if (is_array($lista) && count($lista)) { foreach ($lista as $registro) { $opcoes["{$registro['cod_tipo_usuario']}"] = "{$registro['nm_tipo']}"; $opcoes_["{$registro['cod_tipo_usuario']}"] = "{$registro['nivel']}"; } } } else { echo "<!--\nErro\nClasse clsPmieducarTipoUsuario não encontrada\n-->"; $opcoes = array("" => "Erro na geração"); } $tamanho = sizeof($opcoes_); echo "<script>\nvar cod_tipo_usuario = new Array({$tamanho});\n"; foreach ($opcoes_ as $key => $valor) { echo "cod_tipo_usuario[{$key}] = {$valor};\n"; } echo "</script>"; $this->campoLista("ref_cod_tipo_usuario", "Tipo Usuário", $opcoes, $this->ref_cod_tipo_usuario, "", null, null, null, null, true); $nivel = $obj_permissao->nivel_acesso($this->cod_usuario); $this->campoOculto("nivel_usuario_", $nivel); $get_biblioteca = false; $get_escola = true; $cad_usuario = true; include "include/pmieducar/educar_campo_lista.php"; $this->acao_enviar = "valida()"; }