PERMISSAO DE ACESSO ESPECIFICO

LUIS.HERRERA 26/02/2011 16:34:24
#366669
Amigos boa tarde! Faz 2 dias que estou pesquisei aqui e no google, mas não encontrei nada semelhante.

Tenho um sistema funcionando, com a permissão da seguinte forma:
Estrutura
TabUsuário (ID - Nome - Senha - Departamento - etc...)

TabPermissoes (ID - Permissao)

TabPermissaoAcesso (ID - IDUsuario - IDPermissao)

Funcionamento
Usuario loga e pego as permissoes que ele tem, e atribuo cada uma a sua respectiva variavel booleana publica para ativar/desativas cada função/botão/tela/menu etc...

Funciona perfeitamente.

PROBLEMA:
Alguns clientes possuem usuários que respondem por mais de um departamento, ex: o Diretor de Vendas, também responde por Administrativo e RH, outro por Compras, Estoque e Almoxarifado, e assim por diante, tendo casos que um mesmo usuário tem 7 áreas subordinadas.

Nesse caso o usuario tem que ter 7 cadastros de usuário no sistema, atribuir as permissões a cada um, etc...,

Vários dos módulos de meu sistema usam a área de lotação do usuário para restringir suas ações. Isso porque somente quem for da área pode editar o respectivo conteúdo nestes módulos. Ex:
Controle de Documentos: A área de vendas pode consultar os documentos de outras áreas, mas só pode editar ou imprimir os seus próprios. Já o RH tem funções extras de documentos sigilosos que ninguém pode sequer visualizar(consultar). Assim neste módulo a restrição as funções é feita de duas formas:
Primeiro pelas permissões de acesso (quem pode abrir o módulo/tela, quem pode incluir, editar, imprimir, aprovar, etc...)
Segundo após ter as permissões validades e selecionar o documento, é verificado se o usuário é da área do documento, se for permite acesso, do contrário verifica se o documento é do RH e se é sigiloso para bloquear, se não for permite sua consulta.

Sendo assim não estou descobrindo como alterar minhas permissões para que certos usuários, além das permissões normais da sua área, tenham algumas dessas permissões associadas a outros departamentos que ele seja responsável.

Alguma idéia que possa ser implementada sem ter que refazer toda a estrutura de permissões e codificação???
pois um funcionário de Vendas não pode acessar certo conteúdo de RH ou somente quem for da estão associados a área de lotação para liberação de acesso, não estou encontrando uma forma de resolver esse problema, ou seja.

Como ter um único usuário (que possui vários departamentos subordinados), mas que no seu cadastro consta apenas um. Como atribuir permissões específicas para cada departamento sendo que só tenho uma tabela de permissões e não consta departamento nela.

Como meu cadastro de usuários tem apenas um único departamento (onde está lotado = trabalha).
TECLA 26/02/2011 18:58:20
#366677
Como você vincula as permissões para o usuário (se possível, poste um PRINT do ambiente)?
LUIS.HERRERA 28/02/2011 15:44:47
#366807
Tenho um módulo de variáveis públicas, uma para cada permissão disponível no sistema (menus, botões, forms, etc...), no carregamento do sistema, verifico o login, carrego todas as permissões e atribuo True ou false a cada variável.

Ao carregar o form MDI, já atribuo os menus com suas variáveis e para cada form carregado faço o mesmo com suas permissão (botão.enabled = variavelcorrespondente).

O mesmo para menus, etc....

LUIS.HERRERA 01/03/2011 07:16:58
#366852
Obrigado aos amigos pela ajuda.
Tópico encerrado , respostas não são mais permitidas