Jump to content
Fórum Script Brasil
  • 0

Permissões


hlegius

Question

Pessoal,

To com uma duvidazinha...

Estou com a intenção de montar um sistema tipo um fórum e tal, daí comecei a desenhar num papel a estrutura de algumas páginas do sistema, Principal, Tópicos, Painel de controle de user visualizando a mensagem etc.etc...

Com isso pronto dava para começar a montar a estrutura do banco de dados (Tabelas campos etc..) só que numa parte estou com uma dúvida meio cruel:

Os usuários poderão ser de grupos (User, Admin, Mod etc...) então criei uma tabela chamada GRP (Grupo)

----grp---

id

nome

----------

E para saber de qual grupo o user é, coloquei o campo id_grp na tabela de usuários, pórem:

Se o cara for Mod de sei lá... PHP, o admin do fórum coloca que ele poderá: adicionar/destacar/remover/editar todos os tópicos da sessão, mas no resto do sistema ele seria como se fosse user normal...

O problema é que como eu faria para o sistema só aparecer os comandos de acordo com a permissão? Pois um mod pode fazer 50 coisas (por exemplo) mas se o admin habilitar somente 30, e as outras 20 não, como fazer para não exibi-las a ele?

Com if? iria ficar meio... "inviavel", pois imagina quantos if's não seriam necessários...

Sem falar que na tabela do grp teria que haver:

----grp----

id

nome

editar (S ou N) // sim ou não

remover(S ou N)

destacar (S ou N)

...

-------------------

Ou estou errado?

Espero que tenham compreendido e possam me dar uma luz...

até... smile.gif

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Cara, acho que a forma mais simples de fazer isso seria assim: associar a cada permissão do seu fórum um caractere. Por exemplo, "editar posts": permissão "a".

Aí, você cria sua permissão como sendo uma string assim, por exemplo: "acep"... o cara vai ter as permissões "a" (de editar o post, no nosso exemplo), "c", "e", e "p".

Sacou? Aí você pode mesclar as permissões da forma que achar necessário... e na hora de exibir algum recurso na página, você verifica se o caractere correspondente a aquele recurso existe na string de permissão do usuário.

Dessa forma, você pode criar muitas opções com todas as letras do alfabeto, ainda mais porque você pode utilizar uma função que diferencia maiúsculas de minúsculas, mas os caracteres numéricos.

Não sei se existe alguma forma mais fácil, mas essa é a que eu conheço e utilizo...

Até mais!

Link to comment
Share on other sites

  • 0

Eu faço permissoes por numeros exemplo

0 ,1,2,3,4,5 quanto maior o numero maior o nivel de acesso do usuario e eu crio uma tabela com as descrições de cada numero

e para ter mais segurança o membro alem do numero da permissao dele no select ve se ele tem o atributo ao tipo de cargo exemplo membro,admin, mod etc...

mas não fico fixo nessa ideia eu faço dependendo do sistema cada sistema eu penso de um jeito ,mas vai postando ai suas ideias e duvidas

Link to comment
Share on other sites

  • 0

é então, no meu caso a por numeros não iria funcionar corretamente, pois um Moderador pode editar e não remover enquanto outro poderá editar e remover, então o numero sei lá, funcionaria sim, mas ficaria um pouco mais complicado de se montar para obter o desejado...com a letra de referencia ficaria mais facil...

mas também poderia usar a idéia do Illidan só que ao invés de letras, fazer como o seu fabyo, números...

mas de qualquer modo....muito obrigado...

é isso é verdade, varia de situação para situação...

até... smile.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...