Skip to content

Instantly share code, notes, and snippets.

@Jul10l1r4
Created June 26, 2019 23:10
Show Gist options
  • Save Jul10l1r4/8337733b1a1be0fb3539bbf98c2c42f7 to your computer and use it in GitHub Desktop.
Save Jul10l1r4/8337733b1a1be0fb3539bbf98c2c42f7 to your computer and use it in GitHub Desktop.
Snippet de análise de segurança do relatório
<?
//MCA
define("mca_gruposusuarios", 1);
define("mca_usuarios", 2);
define("mca_membrosgrupos", 3);
define("mca_permissoes", 4);
//MCG
define("mcg_empresa", 16);
define("mcg_acaoeducativa", 17);
define("mcg_tipomedicao", 18);
define("mcg_setor", 19);
define("mcg_setorempresa", 20);
define("mcg_cargos", 21);
define("mcg_responsaveis", 22);
define("mcg_tiporisco", 23);
define("mcg_riscos", 24);
define("mcg_reservado7", 25);
define("mcg_reservado8", 26);
//PCMAT
define("pcmat_dadosdaobra", 5);
define("pcmat_agentesderisco", 6);
define("pcmat_medidasdecontrole", 7);
define("pcmat_medicoes", 8);
define("pcmat_cronograma", 9);
define("pcmat_memorial", 10);
define("pcmat_geracaoinspecao", 57);
define("pcmat_retornoinspecao", 58);
define("pcmat_grupos", 12);
define("pcmat_subgrupos", 13);
define("pcmat_template", 14);
define("pcmat_itens", 15);
define("pcmat_operacoesservicos", 59);
define("pcmat_riscosdoencas", 60);
define("pcmat_medidacontrole", 61);
define("pcmat_relpcmat", 11);
define("pcmat_relgrupos", 62);
define("pcmat_relitens", 63);
//PCMSO
define("pcmso_dadospcmso", 27);
define("pcmso_organograma", 28);
define("pcmso_riscofuncao", 29);
define("pcmso_controlemedico", 30);
define("pcmso_cronograma", 31);
define("pcmso_memorial", 32);
define("pcmso_grupos", 33);
define("pcmso_subgrupos", 34);
define("pcmso_template", 35);
define("pcmso_exame", 36);
define("pcmso_vacina", 37);
define("pcmso_relpcmso", 38);
//PPRA
define("ppra_dadosppra", 39);
define("ppra_agentesrisco", 40);
define("ppra_medidascontrole", 41);
define("ppra_medicao", 42);
define("ppra_cronograma", 43);
define("ppra_memorial", 44);
define("ppra_geracaoinspecao", 45);
define("ppra_retornoinspecao", 46);
define("ppra_grupos", 47);
define("ppra_subgrupos", 48);
define("ppra_template", 49);
define("ppra_tipoagente", 50);
define("ppra_riscosdoencas", 51);
define("ppra_medidacontrole", 52);
define("ppra_relsetores", 53);
define("ppra_relppra", 54);
define("ppra_relgrupos", 55);
define("ppra_relatividadessetor", 56);
function VerificarPermissao($lngIdRotina) {
if (!UsuarioTemPermissao($lngIdRotina)) {
header("Location:../acesso.php?msg=Acesso n�o autorizado.");
die("Permiss�o negada!");
}
}
function UsuarioTemPermissao($lngIdRotina) {
global $id;
// Se for usu�rio master, j� permite
if ($_SESSION["sys_MasterUsuario"]) {
return true;
}
// Aborta usu�rio inv�lido
if (!(integer)$_SESSION["sys_IdUsuario"]) {
return false;
}
// Verifica se o usu�rio tem permiss�o
$sql = "SELECT COUNT(IdRotina) AS Qtd FROM mca_usuariospermissoes WHERE IdUsuario=".$_SESSION["sys_IdUsuario"]." AND IdRotina=$lngIdRotina LIMIT 1";
$res = db_ExecutaSQL($id, $sql);
if ($rs = mysql_fetch_array($res)) {
if ($rs["Qtd"] > 0) {
return true;
}
}
// Verifica se o usu�rio participa de algum grupo master
$sql = "SELECT COUNT(gu.Master) AS Qtd FROM ((mca_usuariosgrupos ug INNER JOIN mca_usuarios u ON u.IdUsuario = ug.IdUsuario) INNER JOIN mca_gruposusuarios gu ON gu.IdGrupoUsuario = ug.IdGrupoUsuario) WHERE gu.Master=1 AND u.IdUsuario=".$_SESSION["sys_IdUsuario"];
$res = db_ExecutaSQL($id, $sql);
if ($rs = mysql_fetch_array($res)) {
if ($rs["Qtd"] > 0) {
return true;
}
}
// Verifica se o usu�rio participa de um grupo com direitos � rotina
$sql = "SELECT COUNT(gup.IdRotina) AS Qtd FROM (((mca_usuariosgrupos ug INNER JOIN mca_usuarios u ON u.IdUsuario = ug.IdUsuario) INNER JOIN mca_gruposusuarios gu ON gu.IdGrupoUsuario = ug.IdGrupoUsuario) INNER JOIN mca_gruposusuariospermissoes gup ON gup.IdGrupoUsuario=ug.IdGrupoUsuario) WHERE u.IdUsuario=".$_SESSION["sys_IdUsuario"]." AND gup.IdRotina=$lngIdRotina LIMIT 1";
$res = db_ExecutaSQL($id, $sql);
if ($rs = mysql_fetch_array($res)) {
if ($rs["Qtd"] > 0) {
return true;
}
}
return false;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment