Lógica somente leitura com base no usuário logado no openbravo
-
21-12-2019 - |
Pergunta
Eu tenho um requisito no framework Openbravo 3.0.Eu tenho dois usuários, um é RH e o outro é funcionário.Há uma caixa de seleção na janela do usuário chamada HR USER.Na minha janela eu preciso escrever uma lógica somente leitura para que quando o RH fizer login o registro seja editável, e quando o funcionário fizer login o registro não seja editável, eu sei como fazer isso para campos normais,, Mas eu não estou recebendo nada sobre validação do usuário.Na tela do funcionário estou atribuindo o ID do usuário a esse funcionário.
Por favor ajude
Solução
Lógica somente leitura com base no usuário conectado:
- descobrir o ID (chave primária) do Usuário (RH ou Funcionário) utilizando a ferramenta PGAdmin Query.
- Adicione somente leitura conforme mostrado abaixo.
Lógica somente leitura com base na função conectada:
Isso pode ser alcançado em três etapas
- criando entrada auxiliar.
- descobrir o ID (chave primária) da função (RH ou Funcionário)
- associando lógica somente leitura à coluna.
Primeiro de tudo, precisamos adicionar uma entrada auxiliar que disponibilizará o usuário AD_ROLE_ID do Usuário atualmente conectado à janela do usuário.Usando a função de administrador do sistema Navegue até o dicionário de aplicativos || Configuração || Entrada auxiliar e crie um novo registro, como mostrado abaixo:
Isso disponibilizará a variável de sessão #AD_ROLE_ID para a guia [usuário] da janela Usuário de RH por meio da variável @ROLE_ID@.
Em segundo lugar, você precisa descobrir qual é a função AD_ROLE_ID da função de RH.Use o PgAdmin para consultar a tabela AD_ROLE e descobrir isso.Uma consulta simples revela o seguinte:
select ad_role_id, name from ad_role;
ad_role_id | name
----------------------------------+---------------------------
....
1000001 | Admin
SDJFALSDFJKLASJDFKLASDFASLDFJAKLSJ| velmurugan
SDFLAKSDJFLKASJDLFALSDFALDSKFJLAS | Employee
DSKLFJAKLDSJFKLASJFKLADSJFLKAJSDFK| F&B US, Inc. - Admin
....
(38 rows)
A chave primária (AD_ROLE_ID) da função de RH é 054A32701D6D4CE6BF4F695DAB23EDB3.Isso será claramente diferente no seu caso.
Com essas informações, agora podemos encontrar a definição de campo do usuário de RH e definir sua lógica de leitura apenas para @Role_ID @! '054A32701D6D4CE6BF4F695DAB23EDB3' Como mostrado abaixo: