Acesso a Módulo do Sistema.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Acesso a Módulo do Sistema.

Mensagem por Marcos »

Sei que este é um assunto já discutido aqui no fórum, mas até agora não consegui achar uma solução para o meu problema, eu preciso de uma forma para controlar o Acesso de Usuários em determinados Módulos do meu programa, ou seja, conceder permissões de acordo com o perfil de cada funcionário, já tentei algumas opções sugeridas por alguns colegas, mas não consegui desenvolver nada sem falhas e muita complexidade, peço gentilmente a ajuda de vocês.
Abraços,
Marcos.
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Sem respostas

Mensagem por Marcos »

Ninguém... :(
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
jpalma
Usuário Nível 3
Usuário Nível 3
Mensagens: 153
Registrado em: 18 Ago 2003 14:15

Mensagem por jpalma »

Eu meu sistema cada usuário tem um NIVEL de senha.
Criei um arquivo onde existem todas as rotinas do sistema e o respectivo NIVEL de acesso.

Espero ter ajudado


sds
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Olá Marcos,

Me manda um e-mail que te digo +- como tenho feito e que tem sido SATISFATÓRIO.

Um abraço,


Jânio
Avatar do usuário
ERASMO ANDRIOLI
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 15 Jul 2004 16:15
Localização: Sorriso-MT
Contato:

Mensagem por ERASMO ANDRIOLI »

Colega...

Já esperimentou usar a Visual Lib.... ela tem os MENUS AUTOMÁTICOS em que voce pode usar o Comando SetBarItem para habilitar ou não o acesso do Usuário a certos Menus e Sub-Menus de um prog.

Eu uso ela sem problemas.... e para obter o acesso do Usuário, faço a leitura de uma VARIAVEL de arquivo DBF, informando se tem ou não acesso a tal opção.

Com a junção dos comandos do Clipper IF, AT e ALLTRIM, consigo sem problemas fazer isso juntamente com SetBarItem da VL2.

Caso tenha dúvidas em conseguir isso, entre em contato.

Saudações

ERASMO ANDRIOLI
Sorriso-MT
Brasil
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Mensagem por Antonio »

Bom dia Colegas!


A sugestão do amigo Andrioli é boa, a Visual Lib facilita em muito essas tarefas de habilitação de e desbilitação de itens de Menu com pouquissima necessidade de codigo, tem um visual amigavel e um sistema de botões que falicitam bastante a nivel de opções.....


[]s
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
ERASMO ANDRIOLI
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 15 Jul 2004 16:15
Localização: Sorriso-MT
Contato:

Mensagem por ERASMO ANDRIOLI »

Segue dica para o colega Marcos:

*------------------------------------------------------
* Lendo Permissoes do Usuario que Acessou o Sistema...
*------------------------------------------------------
SELE 18
USE SIG_USU SHARED ALIAS USUA
SET INDEX TO SIG_USU
SET ORDER TO 1
DBSEEK(usuario_m) // Identifica o Nome do Usuario...

ACE01 =U_CLIENTES
ACE02 =U_VEICULOS
ACE03 =U_VENDEDOR
ACE04 =U_DOMINIO
ACE05 =U_PENDENC
ACE06 =U_GASTOS
ACE07 =U_VE_EXCLU
ACE08 =U_ESTOQUE
ACE09 =U_SAIDAS
ACE10 =U_ESTORNO
*...

* Parte do PRG...

// Definindo sub-menus de mCli (Menu de Clientes)...
AddDownItem(mCli, "InclusÆo" , "InclusÆo de Clientes e/ou Fornecedores" , {|| sigcli() })
AddDownItem(mCli, "Consulta" , "Consultar Clientes e/ou Fornecedores" , {|| sigclic() })
AddDownItem(mCli, "Altera‡Æo" , "Altera‡Æo de Clientes e/ou Fornecedores" , {|| sigclia() })
AddDownItem(mCli, "ExclusÆo" , "ExclusÆo de Clientes e/ou Fornecedores" , {|| sigclie() })

*--------------------------------
* Definindo Acessos do Usuario...
*--------------------------------

* MENU CLIENTES
* -------------

IF AT(ALLTRIM("I"),ACE01)=0
SetBarItem( mCli, 01, .F. ) // desabilita item 1 do menu
ENDIF
IF AT(ALLTRIM("C"),ACE01)=0
SetBarItem( mCli, 02, .F. ) // desabilita item 2 do menu
ENDIF
IF AT(ALLTRIM("A"),ACE01)=0
SetBarItem( mCli, 03, .F. ) // desabilita item 3 do menu
ENDIF
IF AT(ALLTRIM("E"),ACE01)=0
SetBarItem( mCli, 04, .F. ) // desabilita item 4 do menu
ENDIF

* Na var ACE01 (que contem tamanho 5 ou mais) no exemplo acima, o primeiro IF testa se encontra o "I", sem sim o Usuario tem acesso aquele menu, o primeiro do Grupo mCli e assim por diante. No caso meu, o "I" sigfica que o usuario pode incluir clientes, o "A" alterar clientes, más tudo são sub-menus. Na verdade qualquer simbolo que voce gravar no DBF e ler pelo comando AT, será usado para assumir o sim ou não de acesso. Só coloquei em meu sistema o C, I, A, E para faciliar a compreensão.

Espero ter ajudado os amigos...

Congratulações.

ERASMO ANDRIOLI
Sorriso-MT :cool:
Avatar do usuário
Marcos
Usuário Nível 3
Usuário Nível 3
Mensagens: 355
Registrado em: 20 Set 2003 09:16
Localização: Cáceres/Mato Grosso

Botões.

Mensagem por Marcos »

Olá Erasmo, achei muito interessante a rotina de Controle de Acesso por Usuários, só que no meu caso irá ficar complicado a não ser que tenha como fazer os Botões da Visual Lib ficar também .F., por que eu não utilizo (Incluir, Excluir, Alterar, Consultar e Imprimir) no meu sistema, em uma única tela chamada Manutenção de Clientes eu faço tudo isto, após informar o código do cliente o sistema lista os dados do cliente e aparece lá embaixo as opções de manutenção para o usuário:

abtn:= newbutton()
addbutton(abtn,17, 3,12, "&Editar") // Alterar Cliente
addbutton(abtn,17,15,13, "&Deletar") // Excluir Cliente
addbutton(abtn,17,53,13, "&Imprime") // Imprimir Cliente
addbutton(abtn,17,67,10 , "&Sair") // Sair fora
opcao:= procbutton(abtn, 2)
if opcao == 1

endif

Então, de acordo com a necessidade do usuário ele entra na rotina através dos Botões, portanto o acessoa as rotinas também se dá através de Botões, sendo assim gostaria de saber se você sabe como faze-los ficar .F.? De acordo com a permissão do usuário!
Abraços, e muito obrigado pelas ajudas.
Marcos
Cáceres/MT
Atenciosamente,
_____________________________
Marcos Antonio da Silva
marcosilva90@hotmail.com
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Mensagem por Antonio »

A função SetButton(ArraydeBotoes, NumerodoBotão, .T. ou .F.) habilita e desabilita os Botoes.

Código: Selecionar todos

If Nivel == 1
   SetButton(oBtn, 1, .T.)  
   Else
   SetButton(oBtn, 1, .F.)
EndIf
[]s
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Responder