Advertisement
Guest User

Permissão de usuários PHP/HTML

a guest
Oct 7th, 2014
2,133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. Criando um sistema de permissão
  2. ===============================
  3.  
  4.  
  5.  
  6. Primeiro precisamos da tabela de usuários:
  7.  
  8. usuarios
  9. id - INT AUTO_INCREMENT PRIMARY KEY
  10. nome - VARCHAR
  11. email - VARCHAR
  12. senha - VARCHAR
  13. ativo - INT (0 - Inativo / 1 - Ativo)
  14. nivel - (0 - usuário comum / 1 - Administrador / 2 - Desenvolvedor / 3 - Administrador e Desenvolvedor)
  15.  
  16.  
  17. Agora temos que mapear as páginas do sistema
  18.  
  19. paginas
  20. id - PIRMARY KEY -- Código único que identifique a página (pode até ser o nome do arquivo ou um INT AUTO_INCREMENT)
  21. arquivo - VARCHAR -- Nome do arquivo
  22. nome - VARCHAR
  23. sistema - INT -- (0 - Não / 1 - Sim) é uma página do sistema como por exemplo uma página Erro 404 / Acesso Restrito / Etc...
  24.  
  25.  
  26. Agora a tabela de acesso:
  27.  
  28. acesso_paginas
  29. usuario_id
  30. pagina_id
  31. consultar (0 - Não / 1 - Sim)
  32. incluir (0 - Não / 1 - Sim)
  33. editar (0 - Não / 1 - Sim)
  34. excluir (0 - Não / 1 - Sim)
  35.  
  36. Utilize o campo `consultar`, para ver se o usuário tem acesso a essa página, e os demais campos você pode colocar nos botões de inclusão/exclusão e nos campos caso o usuário não possa editar. Se você quer que cada campo tenha um acesso diferênte, você terá que mapear todos os campos do seu sistema, algo que dá muito trabalho, mas poderia fazer assim:
  37.  
  38. fields
  39. id - INT PRIMARY KEY
  40. nome - VARCHAR
  41. pagina_id
  42.  
  43. E o acesso:
  44.  
  45. acesso_fields
  46. field_id
  47. pagina_id
  48. usuario_id
  49. visivel (0 - Não / 1 - Sim)
  50. editavel (0 - Não / 1 - Sim)
  51.  
  52. Utilize o campo `visivel` para exibir o campo no sistema e o campo editavel para habilitar ou desabilitar.
  53.  
  54. Regra
  55. -----
  56.  
  57. Sempre que um usuário acessar alguma página, você busca a página na tabela `acesso_paginas` e verifica se ele tem acesso a aquela página. Se o usuário tiver acesso, você verifica qual o tipo de acesso, e aplica as devidas regras de acordo com o tipo de acesso. Exemplo, se ele só pode consultar a página apenas exiba o necessário com todos os campos desabilitados.
  58.  
  59. Se você for validar os campos, busque na tabela `acesso_fields` o `ID` do campo e verifique os tipos de acesso.
  60.  
  61.  
  62. Exemplo
  63. -------
  64.  
  65. Acesso à página:
  66.  
  67. $pageid = 36;
  68. $sql = "SELECT * FROM acesso_paginas WHERE usuario_id = {$_SESSION['user']['id']} AND pagina_id = {$pageid};"
  69. // Receba o resultado e verifique o tipo de acesso.
  70.  
  71. if ($res['consultar'] == '0') {
  72. header("HTTP/1.1 401 Unauthorized");
  73. exit;
  74. }
  75.  
  76. .
  77. .
  78. .
  79.  
  80. if ($res['excluir'] == '1') echo '<button type="button" id="excluir" class="button">Excluir</button>';
  81.  
  82.  
  83. Acesso ao campo:
  84.  
  85. $pageid = 36;
  86. $sql = "SELECT * FROM acesso_fields WHERE usuario_id = {$_SESSION['user']['id']} AND pagina_id = {$pageid};"
  87. // Receba os dados
  88.  
  89. function FieldAccess($dados){
  90. // Faça uma função quer percorra o array recebido do baco e retorne os devidos acessos ao campo
  91. // Pode usar códigos do tipo
  92. // 0 - Sem acesso total (não exibe campo)
  93. // 1 - Acesso visual (apenas exibe o campo, mas não permite editar o valor)
  94. // 2 - Acesso total
  95. }
  96.  
  97. .
  98. .
  99. .
  100.  
  101. <?php
  102. $acesso = FieldAccess(348);
  103. if ($acesso > 0){
  104. ?>
  105. <input type="text" name="cpf" id="cpf" placeholder="Informe o CPF"<?=($acesso == '1' ? ' readonly' : '')?>>
  106. <?php
  107. }
  108. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement