Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Alcântara

Um bom método de registrar permissões de usuário

Recommended Posts

Olá,

 

Já fiz muitos programas profissionais para empresas, e nestes é necessário sempre haver acesso reservado somente a operadores cadastrados, os quais devem ser separados por categoria, cada uma com determinadas permissões e negações à partes do sistema.

 

Em cada sistema utilizei um método diferente, dos mais simples até os mais complexos, com permissões nas tabelas de categoria e na própria tabela de operadores, para que os administradores possam dar acessos diferenciados a um operador, mesmo que sua categoria não permita.

 

Mas quando há um novo módulo, tem que mudar essas tabelas e o código. Então quero usar outro esquema.

 

Gostaria de ajuda de quem tiver experiência no caso, pois vou fazer um sistema modular que será usado por vários tipos de pessoas e empresas e por isso é necessário fazer permissões configuráveis independente do código, e sem vocação para um tipo de segmento de mercado.

 

Quais as melhores opções?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma das coisas que estava pensando em fazer é uma tabela de configuração contendo as possíveis configurações de cada módulo ou aplicativo, e depois uma tabela de permissões que apontassem para uma dessas configurações ou para um módulo, sinalizando que um operador pode consultar, criar novo registro ou alterar registros existentes de determinado módulo ou visualizar ou alterar uma determinada configuração.

 

Existe um padrão na industria ou algo que chegue perto disso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É interessante também o conceito de perfil, grupo de usuários com as mesmas permissões.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho essa dúvida também

 

acho interessante este modelo de usuário e grupos, mas não sei como modelar.

 

alguém me disse que o grupo seria um usuário especial, e que relacionaria a tabela com ela mesma.

 

você teria sugestões?

Compartilhar este post


Link para o post
Compartilhar em outros sites

grosso modo :

 

usuario>-----perfil----<permissoes

O usuário no máximo teria, numa exceção, um perfil especial só para ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso, como funcionaria sistemas como o facebook???

 

no caso, posso dar acesso as minhas postagens a contatos (usuários) ou listas de contatos (grupos de usuários).

 

como representar isso no banco?

 

no exemplo que te passei até seria possível, mas não sei como fazer o relacionamento.

 

no que vc passou não sei como fazer.

 

 

segue uma foto do que estou fazendo

 

bi5hyg.jpg

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou id do funcionário na tabela de usuário.

Estou fazendo assim:

 

Operador <--> Permissões <--> Módulos

 

 

create table permissao
(
  id bigint not null primary key auto_increment ,
  ut varchar(20) not null ,
  modulo varchar(20) null , -- o módulo que o operador poderá ou não ter acesso (exemplo: uma janela de cadastro)
  oper_lic varchar(20) not null , -- o código do dono da licença ao qual o operador é um funcionário ou o próprio licenciado
  tipo enum('NENHUMA', 'CONSULTAR', 'CRIAR', 'REVISAR', 'ADMINISTRAR') -- as permissões possíveis
    
)
engine = innodb;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade não.

 

o usuário é um funcionário, que é uma pessoa, entendeu?

 

o caso é que quero dar permissões a grupos e a usuários. Dou acesso a determinada coisa a um usuário, ou a um grupo de usuários. Então todo usuário que fizer parte do grupo tem acesso, ou o usuário que não faz parte do grupo mas tem a permissão também tem acesso. O usuário pode pertencer a vários grupos e um grupo pode conter vários usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então crie um sistema como o meu, com permissões individuais, só que para grupos ou usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.