Verifica se um usuário tem acesso a uma opção do a rotina.
Linha de Produto: | Protheus |
Segmento: | Todos |
Módulo: | Todos |
Função: | MPUserHasAccess |
Conversores e Parâmetros: | cFunction - Nome da função(de menu) que deseja verificar o acesso, por exemplo MATA030 |
Observações: | Seguem abaixo os exemplos de tratamento da função utilizando o Controle de Acesso e Controle de Privilégio.
Para este caso, o sistema não validará os acessos de cada funcionalidade dentro do sub-menu, por exemplo: Dentro da rotina de “Cadastro de Produtos”, existe a opção “Relacionadas” com duas opções: "Adic. Tab. Preço" e "Conhecimento". Para este caso, a função MPUserHasAccess deverá ser utilizada conforme o exemplo abaixo: MPUserHasAccess(“MATA010”, 9, ”000001”, .F., .T.,/* Reservado */, 1 /*Analisar sub-rotina*/)
Desta forma, todas as rotinas dentro da opção “Relacionadas” serão validadas de uma única vez.
Para este caso, o sistema validará cada funcionalidade dentro do sub-menu, respeitando os parâmetros conforme as opções da grid “Funcionalidades das Transações/Rotinas”, por exemplo: Dentro da rotina de “Cadastro de Produtos”, existe a opção “Relacionadas” com duas opções: "Adic. Tab. Preço" e "Conhecimento". Para este caso, a função MPUserHasAccess deverá ser utilizada conforme o exemplo abaixo:
MPUserHasAccess(“MATA010”, 10, ”000001”, .F., .T.,/* Reservado */, 1 /*Analisar sub-rotina*/)
MPUserHasAccess(“MATA010”, 11, ”000001”, .F., .T.,/* Reservado */, 1 /*Definição da Operação*/) Desta forma, todas as rotinas dentro da opção “Relacionadas” serão validadas separadamente.
Funções que não constam nos menus: Rotinas que não constam no menu também são validadas em relação aos privilégios, logo se uma rotina X for pesquisada, os retornos podem ser os seguintes:
Esse comportamento deve-se pelo fato da função validar os privilégios, e a leitura é feita independente da rotina constar em menus ou não. |