PERMISSAO USUARIOS

ALTAIR148 10/08/2012 07:45:23
#407639
Bom dia,

Pessoal, em meu sistema estou querendo implementar permissões aos usuários, Ex: Usuário01, pode excluir produto, mas não pode excluir cliente, ou seja, eu quero dar permissão para cada form, em alguns Forms ele vai ter total permissão, já em outros ela será limitada.

Alguém tem alguma dica de como isso pode ser feito?
ALEVALE 10/08/2012 08:35:26
#407642
Sinceramente acho que isso não é viavel na empresa em que trabalhava utilizamos da seguinte forma.
Existia um perfil para cada tipo:

ADMIN - Acesso Total
SUP - Acesso parcial
Usuario - Acesso básico etc...

ADMIN, tem acesso a tudo,
SUP, acesso parcial pode excluir, alterar parametros, dados etc...
USUARIO - Somente inputs no sistema, alteracao de dados, exclusao, relatorios etc....

Mas claro vai de cada um, mas acho que dar que dar acesso por [Ô]form[Ô] é bem mais complicado, acho que você primeiro verificar essa questão de [Ô]perfil[Ô] é bem mais fácil.
TSANALISTA 10/08/2012 10:21:36
#407654
Também concordo com ALEVALE, aqui mesmo na empresa que trabalho estou desenvolvendo uma sistema em VB.NET e SQL Server 2008, criei tabelas para usuários com especificações de perfis para cada um dos usuários assim fica mais fácil você deixar habilitado as funções que cada perfil implementa no login....
ALTAIR148 10/08/2012 12:59:58
#407679
Então, até entendo que seria trabalho mesmo para colocar essas permissões, e entendo o ponto de vista de vocês, mas no caso aqui acho interessante é que as regras fossem aplicadas de forma separada, ou seja, cada form teria sua regra diferente.
ALTAIR148 10/08/2012 13:03:06
#407682
Outro detalhe, na opinião suas, o que seria melhor, se o usuário não tiver permissão, o sistema pede a senha de um administrador ou os botões ficam desabilitados para o usuário que não tiver permissões?
GUIMORAES 10/08/2012 13:28:17
#407687
Olá Altair, Boa Tarde!

Eu utilizo da forma que você está querendo, individual para cada usuario.
Tenho uma tabela, chamada restrições, no meu banco de dados, na qual faz referência a uma outra tabela, chamada usuários.
Nesta Tabela restrições, tenho os campos na qual o sistema possuem restrições, tipo: incluir_Cliente, excluir_Cliente, incluir_Produto ....
Quando carrego o modulo cliente, por exemplo, carrego a restrição do usuário logado.
Achei melhor fazer assim, pois podemos definir as restrições individuais para cada usuário, deixando mais [Ô]Flexível[Ô] a aplicação.

Abraços.
FOXMAN 10/08/2012 19:27:05
#407745
Resposta escolhida

Olha ae uma telinha minha para exemplo. Eu utilizo por Modulo, que consequentemente está diretamente ligado aos formulários.

JRAFAEEL 10/08/2012 19:37:27
#407749
Você pode criar os acessos como variáveis e no início de cada rotina declarar, antes de tudo, uma condição que verifique se o usuário ativo (o usuário ativo pode ser detectado com um form anterior de login) possuí o acesso.

Antes defina uma db para colocar os cadastros de login, crie um acesso para o login (um form que valide os dados conforme o que está na bd) e aí você declara uma variável constante dos acessos e cria a condição no início de cada rotina, por exemplo:

PUBLIC CONST admin AS INTEGER = 2
PUBLIC CONST normal AS INTEGER = 1

sub MensagemDoDia()

if usuario_logado_permissao >= ADMIN then
msgbox [Ô]Olá, você é um administrador![Ô]
else
msgbox [Ô]Me desculpe, mas você é um usuário normal e não possui acesso suficiente para esta rotina.[Ô]
end if

end sub

Sendo que o usuario_logado_permissao seria o caminho para o local onde você armazenou o código de acesso para ele.


ALTAIR148 10/08/2012 23:13:14
#407756
Boa noite,

Estarei estudando a forma que todos passaram e assim que eu tiver uma resposta eu dou o retorno.

Obrigado a todos.
TSANALISTA 11/08/2012 09:42:34
#407766
Cara este software ai do FOXMAN, é incrível man.... para falar a verdade é praticamente o que estou desenvolvendo aqui na empresa, disponibilizo os níveis dos usuários e seus perfis no meu banco para poder Constar quais as permissões eles podem ter...mas ficou show ai o form do FOXMAN...
ALTAIR148 11/08/2012 11:53:32
#407768
Valeu FOXMAN era exatamente essa lógica que eu precisava.

Obrigado.
Tópico encerrado , respostas não são mais permitidas