pinoc 2 Denunciar post Postado Junho 13, 2013 Boa pessoal. Vim aqui pedir uma luz de vocês, to querendo criar um sistema de permissões para usuários, porem já me passo umas 30 formas de fazer isso so não sei qual seria a mais coreta. Uma coisa que eu quero é que o sistema seja com checkbox da seguinte forma: Pagina | Ver | Adicionar | Editar | Excluir Pag1 [ ] [ ] [ ] [ ] Pag2 [ ] [ ] [ ] [ ] Porem não sei uma forma de receber os checkbox que não forão selecionados foi o php não pega eles (ja me derão a ideia de usar hidden so que vai ser muito checkbox e acho que o codigo vai ficar feio com tanto hidden junto) Se alguem poder me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Jonathan Badaró 2 Denunciar post Postado Junho 13, 2013 É complicado, tem diversas formas de se fazer essas verificações de permissão. Tudo vai depender de como o seu sistema foi estrurado. Mas o básico é: - Uma tabela para quais permissões existem, por exemplo: Visualizar, editar, excluir, etc - Uma tabela para relacionar as permissões com os usuários. Por exemplo, usuario 5 (João) tem a permissão 2(Editar). Espero ter ajudado um pouco.. rs Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Junho 13, 2013 Pois é essa parte de tabela eu ja até sei como fazer no meu caso. Porem não consigu achar uma boa solução para os checkbox que preciso basicamente enviar pro banco o valor 1 se for selecionado e 0 se não for selecionar. Compartilhar este post Link para o post Compartilhar em outros sites
pinoc 2 Denunciar post Postado Junho 13, 2013 Penso em fazer alguma da seguinte forma so não sei como continuar. Meu HTML <form method="post"> <ul> <?php $select = mysql_query("SELECT * FROM menu"); while ($array = mysql_fetch_array($select)){ $nomePagina = $array["pagina"]; $pagina = str_replace(" ", "_", $nomePagina); ?> <li> <?php echo $nomePagina; ?> <label>ver</label> <input type="checkbox" name="ver[<?php echo $pagina ?>]" value="1"> <label>adicionar</label> <input type="checkbox" name="adicionar[<?php echo $pagina ?>]" value="1"> <label>editar</label> <input type="checkbox" name="editar[<?php echo $pagina ?>]" value="1"> <label>excluir</label> <input type="checkbox" name="excluir[<?php echo $pagina ?>]" value="1"> <input type="hidden" name="pagina" value="<?php echo $nomePagina ?>"> </li> <?php } ?> <li><input type="submit" name="submit"></li> </ul> </form> Sei que sempre terei 4 checkbox, obviamente terei que receber sempre 4 valores sendo que se os 4 checkbox forem selecionados se não for preciso fazer o php deduzir que sera zero. Porem como fazer isso como receber os valores e fazer setar o valor de 0 se ele não receber nada. Obrigado desde já. Compartilhar este post Link para o post Compartilhar em outros sites
Jonathan Badaró 2 Denunciar post Postado Junho 17, 2013 Acho que você está errando um pouco na lógica nos nomes dos campos, tente da seguinte maneira. <label>ver</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][ver]" value="1"> <label>adicionar</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][adicionar]" value="1"> <label>editar</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][editar]" value="1"> <label>excluir</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][excluir]" value="1"> <input type="hidden" name="pagina" value="<?php echo $nomePagina ?>"> Quando você der um submit, automaticamente, virá na variável $_POST, os checkboxes que foram escolhidos, segue um exemplo de como deve ficar a parte para pegar os valores correto: <?php // $_POST['pagina'][2]['ver'] = 1; // $_POST['pagina'][2]['editar'] = 1; // $_POST['pagina'][4]['ver'] = 1; foreach ($_POST['pagina'] as $pagina_id => $pagina) { // Valores padrões para da o submit $default = array( 'ver' => 0; 'adicionar' => 0, 'editar' => 0, 'excluir' => 0, ); foreach ($pagina as $permissao_nome => $permissao_valor) $default[$permissao_nome] = $permissao_valor; } // INSERT OS VALORES DA VARIÁVEL DEFAULT } ?> Não testei a função, mas deve funciona muito, é um caminho para você começar. Espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Junho 17, 2013 Primeiro separe os elementos: Grupos, Usuários e Permissões. São três tabelas diferentes. Na tabela de Grupos você tem apenas o ID Primário e o nome do Grupo. Na tabela de Usuários, você tem dentre tudo aquilo que vai precisar, uma coluna para relacionar com a tabela Grupos. Na tabela Permissões você tem além do ID Primário, uma coluna para se relacionar com o ID do Grupo e uma para cada ação que os membros daquele Grupo poderá realizar. Esses valores serão simples, como zeros e uns. Segundo, na tela de criação/edição de um Grupo você mostra um checkbox para cada coluna de ação (a do ID primário e estrangeiro não contam). Por padrão mostre tudo marcado, mas se estiver atualizando um grupo existente condicione o atributo checked com o valor armazenado. Terceiro, no acesso antes de executar cada ação você busca o valor da coluna referente a ação condicionando a coluna que referencia o Grupo das Permissões com o ID do Grupo ao qual o usuário pertence. Essa informação normalmente vêm junto com os dados de sessão, durante a autenticação. Para facilitar, crie formas rápidas de executar essas verificações. Se estiver trabalhando com Orientação a Objetos fica ainda melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Ygor Rodrigues 0 Denunciar post Postado Junho 2, 2018 Tem maneira mais simples Mais a página de permissões do amigo está correta mais em vez de números usa letras tipo. <label></label> <label>ver</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][ver]" value="v"> <label>adicionar</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][adicionar]" value="a"> <label>editar</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][editar]" value="e"> <label>excluir</label> <input type="checkbox" name="pagina[<?php echo $pagina ?>][excluir]" value="d"> <input type="hidden" name="pagina" value="<?php echo $nomePagina ?>"> Compartilhar este post Link para o post Compartilhar em outros sites
Ygor Rodrigues 0 Denunciar post Postado Junho 2, 2018 Na tabela que irá gravar ficará assim. Pagina:a,v,d,0 = adicionar, ver, deletar Pagina2:v,0,0,0 = ver Pagina03:a,v,e,d = adicionar, ver, editar, deletar Mando já o modo de paginas e tabelas Compartilhar este post Link para o post Compartilhar em outros sites
Ygor Rodrigues 0 Denunciar post Postado Junho 2, 2018 Tabelas: Permissões Categoria de permissões. Usuários. Em permissões irá ter campo id Categoria > usuarios campo id_categoria. Em tabela usuários > id_categoria de permissões. Compartilhar este post Link para o post Compartilhar em outros sites