Ir para o conteúdo

 Voltar a Banco de Tal...
Tela cheia

O usuário não tem permissão para visualizar nenhum grupo

21 de Setembro de 2009, 17:02 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 10 vezes
Olá a todos.

Coloquei o banco de talentos pra funcionar aqui na SUSEP e fiz com que três funcionários cadastrassem seus currículos. O problema é que nenhum dos três consegue fazer consulta de currículos já cadastrados. Aparece essa mensagem de "o usuário não tem permissão para visualizar nenhum grupo".

Imagino que seja simples resolver isso, e que deva envolver a tabela perfilsistemagrupo ou coisa parecida. Podem me orientar nessa tarefa?

Um abraço e obrigado.

Autor: Breno Santos Rocha


55 comentários

  • 5027e96c2c456119c052b9d4a37310c8?only path=false&size=50&d=404Christian Cleber Masdeval Braz(usuário não autenticado)
    21 de Setembro de 2009, 17:42

     

    Olá Breno. Sou novato no BT mas eu acho que vc deve fazer o seguinte: quando vc cadastra um usuário na tabela UsuarioSistema a última coluna dessa tabela é o grupo que o usuário pertence. Verifique então se ele está num grupo com permissões suficientes.

     

    Att. Christian

    • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
      22 de Setembro de 2009, 10:29

       

      Oi Breno,

      Complementando a informação do Christian:

      Nem todos os usuários do sistema devem ter acesso à pesquisa de currículos. Para gerenciar essas permissões, existe o controle de acesso.

      Contudo, principalmente em grandes organizações, pode ser necessário restringir os resultados dessas consultas. Por exemplo, o diretor de um grupo de usuários só pode consultar os currículos desse grupo enquanto que o diretor de RH pode consultar os currículos de qualquer grupo de usuários.

      O Banco de Talentos permite essa configuração e isso é feito no módulo "Manutenção do BT" -> Cadastrar -> Filtro Consulta. Na linha "Consulta currículo", clique no ícone da coluna Filtros. Na linha "Consulta geral" verifique se os grupos e/ou os usuários que devem ter acesso à consulta de todos os currículos estão nas respectivas relações. Por último, verifique se todos os grupos de usuários estão selecionados na opção Critérios/Alterar.

      Se esse tipo de configuração/cenário não for necessário na sua organização, simplesmente altere, no arquivo "\WEB-INF\config\BancoTalentosGestao\aplicacao-config\BancoTalentosGestao-aplicacao.xml", o valor da propriedade "FILTRAR_CONSULTA_POR_GRUPO" de "sim" para "nao".

      Nas próximas distribuições, o valor padrão para a propriedade "FILTRAR_CONSULTA_POR_GRUPO" será "nao". Acredito que esse deva ser o valor padrão na maioria das organizações.

      Um abraço,

      Luciano.

      • 5027e96c2c456119c052b9d4a37310c8?only path=false&size=50&d=404Christian Cleber Masdeval Braz(usuário não autenticado)
        29 de Setembro de 2009, 10:57

         

         Pessoal, ainda sobre o esquema de autenticacao e autorização do BT estou com as seguintes dúvidas:

        - Como as classes PermissaoGeralBT e PermissaoBT devem ser utilizadas para fazer o controle de autorização? Atualmente elas não fazem nada certo?

        - Em nehuma parte do sistema a autorização é utilizada para fazer controle de tela sobre as funcionalidades que um usuário deve ou não acessar. Por exemplo, o item de menu "Manutencao BT" está sempre acessível a todos. É isso mesmo?

         - A tabela FuncionalidadeSistema tem todos os mapeamentos da aplicação mas não é usada? Não seria mais interessante se esse mapeamento estivesse num xml?

         - O único lugar onde a informação de grupo é efetivamente utilizada é no controle de filtro de consulta.

         - Não seria interessante remodelar o controle de acesso para usar JAAS?

         

        Se alguém tiver paciência pra responder tudo isso eu agradeço muito.

        Abçs

         

        • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
          9 de Outubro de 2009, 18:30

           

          Oi Christian/Masdeval,

          Vou responder as respostas para que elas possam ser referenciadas facilmente em mensagens futuras:

          1) As classes citadas foram disponibilizadas como exemplo para a comunidade e cada uma tem um comportamento diferente. No arquivo de propriedades SegImpl.properties, você informa ao sistema qual implementação será utilizada como unidade autenticadora (autenticação de usuário), permissão (controle de acesso) e o objeto usuário autenticado. Se você pretende utilizar uma autenticação LDAP (como é no nosso ambiente de produção), basta implementar a respectiva interface. O mesmo vale para o controle de acesso.

          1.1) PermissaoGeralBT: essa classe dá acesso a todas as funcionalidades para todos os usuários (veja que o retorno do método temAutorizacaoFuncionalidade é sempre true;

          1.2) PermissaoBT: essa classe retorna true se usuário autenticado está associado à funcionalidade em questão (através da associação de seu identificador ou do grupo ao qual ele pertence) ou false caso contrário. Essas validações são feitas no banco de dados nas respectivas tabelas;

          2) O controle de acesso é chamado antes da execução de qualquer ação no sistema e para a montagem dos itens de menu (se um usuário não tem acesso a uma funcionalidade, o item de menu não é exibido para ele). Na implementação que você deve estar utilizando, todo mundo tem acesso a todas as funcionalidades, por isso você nunca deve ter recebido a mensagem do tipo "usuário não autorizado" (se tiver informado do endereço do navegador uma ação a qual você não tem acesso);

          3) A tabela FuncionalidadeSistema contém todos os mapeamentos do sistema. Esses mapeamentos podem estar associados a diferentes Perfis. Estes últimos estão associados a usuários ou a grupos de usuários. Essa estrutura é a que nós utilizamos para diferentes sistemas, mas pode não ser a melhor solução para vocês. Nada impede que essas funcionalidades estejam num arquivo XML e a implementação da Permissao consulte esse XML. Nós optamos por deixar em tabelas para permitir a manutenção dessa estrutura de gerenciamento de acesso (que no nosso caso é feito por uma outra aplicação) sem ter que ficar fazendo "deploys" do sistema;

          4) Acho que ficou claro que o grupo é utilizado no controle de acesso também, certo ?

          5) Eu não conheço JAAS o suficiente para dizer se ele pode ser integrado na arquitetura atual ou o que precisaria ser alterado para permitir isso. Eu gosto da ideia de deixar o mais flexível possível, isto é, de uma solução que permita acoplar diferentes implementações de autenticação e autorização: por exemplo, para outros pode ser mais interessante a utilização do Acegi. Esta é minha opinião, mas fica a critério da comunidade discutir e decidir.

          Um abraço,

          Luciano.

          PS: desculpe pela demora em responder. Espero que esta resposta ainda possa lhe ser útil.

          • 5027e96c2c456119c052b9d4a37310c8?only path=false&size=50&d=404Christian Cleber Masdeval Braz(usuário não autenticado)
            9 de Outubro de 2009, 18:45

             

            Valeu Luciano, ajudou sim!

            Depois eu vi que existe um filtro configurado e que este realiza todo o controle de autorização e utiliza a tabela FuncionalidadesSistema para isso.

             

            Abraço

             

             

             

             

Essa comunidade não possui posts nesse blog