× Linguagem de Programação ADVPL

Perguntas Controle de Permissões - Customização

Mais
7 anos 5 meses atrás #31370 por IM76
Boa noite.

Estamos desenvolvendo uma customização que precisa ter o seu acesso controlado evitando que qualquer usuário acesse a mesma.
Criamos uma função e adicionamos um botão no ponto de entrada MA030BUT(). Outras Ações no cadastro de clientes.

Como faço para restringir o acesso a essa função usando o controle de privilégios do sistema ?
Ao liberar o acesso a MATA030, a função aparece na lista assim como os demais botões da tela. Mesmo negando o acesso para o usuário / grupo o botão aparece e ao clicar a função é executada sem críticas.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31373 por will
Eu controlo colocando o codigo do usuario que possa acessar em um parametro e só liberado se a varivel __cUserId bater com o parametro.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31376 por IM76
William,

Desta forma eu sei que funciona. Pode também validar se o usuário pertence a um grupo específico.
No entanto, eu queria reproduzir o comportamento nativo do sistema assim como as telas desenvolvidas pela TOTVS. Ou seja, se negar o acesso via privilégio ou perfil default a tela não abre, informa a mensagem padrão "Esse usuário não possui acesso para executar essa operação" assim como todas as rotinas do sistema.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31377 por lalberto
PswOrder(2)
If PswSeek( __cUserId, .T. )
aArray := PswRet() // Retorna vetor com informações do usuário

// verifique os direitos do usuario e faça a validação se ele pode ou não continuar.

If aArray... <> xxxxxx yyyy zzz
MsgStop("Atenção Você Não Tem Permissão Para Usar Essa Rotina !")
Return .f.
Endif
EndIf


Veja a posição dos direitos aqui no link

tdn.totvs.com/pages/releaseview.action?pageId=267792734

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31378 por IM76
Luiz,

Obrigado.
Já tinha visto esta documentação mas não achei onde buscas as permissões propriamente ditas.
Consigo extrair o nome do menu (.xnu) e os grupos que ele pertence.
Mas aonde pego os privilégios ?

EX: MATA030 - Cadastro de Clientes
Privilégios Incluir, Alterar, Excluir, etc.
Pela PswSeek consigo achar o menu do usuário SIGAFAT.xnu e o grupo "VENDEDORES" que atribui ao usuário por exemplo.
Supondo que no privilégio do grupo eu neguei acesso a transação "Excluir". Quero saber como verifico essa transação para o usuário logado. O Protheus faz isso para todas as rotinas padrões do sistema.




[3] A Vetor contendo o módulo, o nível e o menu do usuário.
Ex: [3][1] = "019\sigaadv\sigaatf.xnu"
[3][2] = "029\sigaadv\sigacom.xnu"

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31379 por admin
Cara neste fonte tem uma função que lê o menu e pega os direitos, veja se te ajuda.


Arquivo Anexo:

Nome do Arquivo: MAPAUSU.rar
Tamanho do Arquivo:9 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.124 segundos
Joomla templates by a4joomla