none
perfil de acesso RRS feed

  • Pergunta

  • olá galera

    Estou fazendo uma aplicação ERP para a empresa, nesta aplicação terá vários níveis de acesso (presidência, gerencia, administração, contabilidade, etc), já fiz todos os WinForms para cada setor, porém não estou conseguindo definir o acesso de cada um.

    EX.: o usuário com perfil de contabilidade não terá o mesmo acesso que o da gerência, assim como o da administração não terá o mesmo que da presidência.

    Como eu faria em questão de banco e aplicação para resolver isso ?
    Definir o que cada perfil pode visualizar no sistema.

    Desde já agradeço pela ajuda :)

    terça-feira, 22 de janeiro de 2013 11:29

Todas as Respostas

  • Bom, deixa eu tirar umas dúvidas, como você chama esses Forms? Acredito que eles devem ser chamados por opções no menu, correto?

    Você já tem cadastros no BD desses Forms e Usuários?


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho

    terça-feira, 22 de janeiro de 2013 12:26
  • Thiago, cadastro do usuários eu já tenho.

    Ex. No menu "arquivo" posso ter a opção cadastro de usuário, que um funcionário do R.H tem acesso, mas o funcionário não pode visualizar esta opção.


    terça-feira, 22 de janeiro de 2013 15:40
  • Você pode criar atributo nível de acesso para o funcionário, que pode ser desde um enumerable por exemplo, e para os módulos do sistema que necessitam de X nível de acesso, você checa o atributo se o seu funcionário pode ou não ter acesso a modalidade.

    Não sei se entendi bem a sua pergunta e se isso irá te ajudar, é uma sugestão.
    terça-feira, 22 de janeiro de 2013 16:10
  • Cara, segue uma sugestão:

    Você pode cadastrar as opções do seu menu em uma tabela como o exemplo a seguir:

    ID_MENU  ID_PAI  NOME

    1             NULL     Cadastro

    2             1  Produtos

    3            NULL      Ajuda

    O ID_MENU representa uma opção e o ID_PAI está apontando para qual iem de menu a opção está dentro, no nosso caso Cadastro/Produtos

    Você deve ter um ID_USUARIO na sua tabela de usuarios, o que vc precisa criar é uma tabela PERFIL_ACESSO identificando o que cada usuário acessa, exemplo:

    João tem ID 1 e Maria ID 2, só João pode acessar tudo, maria não pode cadastrar produtos, ficaria dessa forma na sua tabela:

    ID_USUARIO    ID_MENU
    1                       1

    1                       2

    1                       3

    1                       1

    1                       3

    Deu pra entender a ideia?


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho



    quinta-feira, 24 de janeiro de 2013 12:44
  • Use Membership
    quinta-feira, 24 de janeiro de 2013 18:45
  • Cara, segue uma sugestão:

    Você pode cadastrar as opções do seu menu em uma tabela como o exemplo a seguir:

    ID_MENU  ID_PAI  NOME

    1             NULL     Cadastro

    2             1  Produtos

    3            NULL      Ajuda

    O ID_MENU representa uma opção e o ID_PAI está apontando para qual iem de menu a opção está dentro, no nosso caso Cadastro/Produtos

    Você deve ter um ID_USUARIO na sua tabela de usuarios, o que vc precisa criar é uma tabela PERFIL_ACESSO identificando o que cada usuário acessa, exemplo:

    João tem ID 1 e Maria ID 2, só João pode acessar tudo, maria não pode cadastrar produtos, ficaria dessa forma na sua tabela:

    ID_USUARIO    ID_MENU
    1                       1

    1                       2

    1                       3

    1                       1

    1                       3

    Deu pra entender a ideia?


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho



    Minha aplicação é Desktop, entendi um pouco sua lógica, mas não rolou 
    segunda-feira, 11 de fevereiro de 2013 10:45
  • a idéia que o Thiago Coelho mostrou funciona tanto para desktop como para web, 

    a lógica é simples, é você definir no seu banco: 'qual usuário tem acesso a qual menu', e apartir disso você trabalhar com eles, ou desabilitar ou ocultar...

    se você gera os menus automáticamente, você pode já definir isso na criação do menu, se você usa menus estáticos, use um método que defina as prioridades sempre com base na tabelas usuarios, menus e usuario x menu, sendo assim você conseguirá resolver tranquilamente.

    segunda-feira, 11 de fevereiro de 2013 11:53
  • Você pode fazer uma verificação do perfil do usuário no momento em que os menus são criados e desabilitar conforme a necessidade ou verificar o perfil no evento de ação do menu, bloqueando a ação.
    terça-feira, 12 de fevereiro de 2013 04:52