none
Permissão por usuários RRS feed

  • Pergunta

  • Olá pessoal !

    Tenho aqui vários grupos de acesso, dividido por cada unidade nossa no Brasil.
    Um grupo de vendedores, gerentes, financeiros e etc.
    Porém, gostaria de deixar 02 campos das OV e OC editáveis apenas para alguns usuários.
    Como tenho muitos grupos de acesso (cerca de 160), gostaria de editar no próprio formulário o acesso à estes campos (Grupo de Impostos sobre Vendas / Grupo de Impostos Sobre Venda do Item).
    Eu criei uma task para não permitir imprimir/exportar em outro formulário, mas não sei se para edição de campos é possível.
    Abaixo a task que utilizo para permitir apenas alguns usuários terem acesso total no form.
    Será que consigo algo similar ?
    Abs.,

    public int task(int _taskId)
    {
      UserId    currentUserId = curUserId();
      int         ret;
      #task
      ;
    
      if(_taskId == 4436 || _taskId == 2832 || _taskId == 770 || _taskId == 771 || _taskId == 772 || _taskId == 278)
      {
          if(currentUserId == "Admin" || currentUserId == "mateu" || currentUserId =="joao1" || currentUserId =="fra11")
          {
              ret = super(_taskId);
          }
      }
      else
          ret = super(_taskId);
    
    
      return ret;
    }

    segunda-feira, 3 de fevereiro de 2014 18:29

Todas as Respostas

  • O ideal é sempre usar security key, e no seu caso que tem muitos grupos de acesso, é melhor ainda pois se houver alguma mudança de usuário não é necessário ficar fazendo manutenção em código.

    Veja se te ajuda:

    1. Crie uma Security Key (Data Dictionary \ Security Key).

    2. Crie um grupo de usuário, insira os usuários que você deseja controlar o acesso.

    3. Atribua esta security key a este grupo de usuário.

    Aí você tem dois caminhos:

    4. a) Atribui esta security ao objeto que você quer controlar, via sistema (na propriedade Security Key de uma tabela, por exemplo). Neste caso, você deve configurar o controle de acesso no caminho Administração \ Configuração \ Segurança \ Permissões de Grupo de usuário.

    Procure sua Security Key e configure.

    4. b) Via código. Exemplo:

    if(global::hasSecuritykeyAccess(SecurityKeyNum(XXXX),AccessType::View))
    {
        campox.visible(true);
    }
    

     Veja esta documentação: http://msdn.microsoft.com/en-us/library/aa846430(v=ax.50).aspx.

    terça-feira, 4 de fevereiro de 2014 10:50
  • Olá Andressa !

    Para configurar a Security Key, eu preciso que tenhamos acesso de desenvolvedor ?
    Não consegui editá-la.
    Algo parecido com o código abaixo, não daria certo ?
    Muito obrigado !
    Abs,
    Mateus

    void FieldVisibleTax()
    {
    
     UserId    currentUserId = curUserId();
         
        ;
    
        if(currentUserId == "mateu")
          {
           salesLine_ds.object(fieldnum(SalesLine,TaxGroup)).enabled(true);
          }
        else
           salesLine_ds.object(fieldnum(SalesLine,TaxGroup)).visible(false);
    }

    terça-feira, 4 de fevereiro de 2014 11:26
  • Dar certo até dá, mas não é o ideal, pois qualquer alteração de usuário que tenha, você precisará editar código.

    Usando as security key, depois de criado e configurado corretamente, qualquer usuário administrador pode editar os usuários que fazem parte do grupo controlado, facilitando a manutenção.

    Outro lado bom é que se amanhã outros controles precisarem entrar nesta regra, basta adicionar a security key na propriedade correspondente do objeto.

    Mas enfim: para criar a security key vc precisa ter acesso à AOT e o código que vc mostrou funciona sim, mas não é o ideal pq é chumbado no código.

    quarta-feira, 5 de fevereiro de 2014 17:02