[quote=Hermanitto] Pessoal, preciso de fazer um controle de usuários do meu sistema da seguinte maneira.
O meu usuário poderá não ver alguns botões, textbox, selects e outras propriedades dos meus fomulários, porem outros usuários poderam ter acesso a ver essas propriedades.
Estou pensando em fazer um gerenciador de acessos de usuários, onde eu criaria uma flag para cada propriedade defininindo se o usuário tem ou não acesso.
[/quote]
Faça em java, não em clipper.
A cada usuário estão associadas 2 operações: autenticação e autorização.
Autenticação é a possibilidade de identificar o usuário com a identidade que ele diz ter. Ou seja, é comprovar que ele é quem diz ser. Isso é feito com a famosa password e username, mas existem outras formas.
Autorização é a capacidade do sistema se proteger dos usuários. O usuário tem acesso a recursos da aplicação.
Recurso pode ser muita coisa: item de menu, botão, campo, etc…
O usuário é relacionado a um ou mais papeis ( role) Esses papeis representam o que o usuário diz ser.
A cada papel é relacionado um ou mais perfis. Um perfil é um conjunto de permissões.
A cada permissão é relacinoado um recurso e um nivel de acesso. Normalmente existem dois niveis: acessa ou não acessa. Se o seu numero de niveis é 2 vc pode despresar o campo nivel e assumir que se o perfil tem o recurso, ele tem permissão de acessar o recurso.
Role podem ainda ser hirarquicos de forma que o role “maior” tem todas as permissões do conjunto dos seus roles “menores”. Mas isso pode ser complicado.
Basicamente vc precisa de 3 cadastros : usuário, role e perfil. Os recursos são ditados pela aplicação ( são fixos , mas podem aumntar conforme as capcidade da aplicação aumentam).
Existe a figura do guarda. O guarda é quem decide se o usuário tem ou não permissão para acessar o recurso, e caso não tenha ele resguarda o recurso ( por exemplo, se o recurso é um botão e o usuário não tem acesso, o botão é tornado invisivel). Mantenha na cabeça que um recurso pode ter várias “apresentações”. Por exemplo : pode ser um item de menu, um botão na toolbar e um botão num tela especial. Os 3 componentes representam o mesmo recurso e estão sujeitos às mesmas regras. Se o usuário não tem acesso ao recurso, ele não deve ver nenhum dos 3 componentes.