Acessar páginas apenas logado

Bom dia.

No meu projeto tenho várias páginas, porém, gostaria de que as mesmas só fossem acessadas quando algum usuário estivesse logado. Já configurei as permissões para cada usuário, porém, pode-se fechar a tela obrigatória de login e continuar acessando às paginas sem que nenhum usuário esteja logado.
Como restrinjo tal situação para que só acessem as páginas após o login de algum usuário?

@Wendhel, bom dia.

No login, tem esta possibilidade (conforme este KB):

If Application.Login(true) = false then
  Application.Exit()
End If

Ou este:

Application.Login(False)

If Application.User <> "" Then
	Application.GetFrame("").OpenScreen("Quadro1"), 0
Else	
	MsgBox "Usuário não permitido!"
	'Application.Exit
End If

Sds.

1 Like

Funcionou.
Mas como faço para que ANTES que a página abra, me apareça primeiro a tela de login?
E também, se o login retornar FALSE, ao em vez de executar o ‘Application.Exit()’ como posso permanecer na mesma tela de antes?

@Wendhel,

Se fizer conforme o script, a página não será aberta até que o usuário tenha logado.

Neste caso comenta ou retira a linha aonde está o “Exit”:

Sub cmdLogin_Click()
Application.Login(False)

If Application.User <> "" Then
	Application.GetFrame("").OpenScreen("Quadro1"), 0
Else	
	MsgBox "Usuário não permitido!"
End If
End Sub

Sds.

1 Like

@Fernando
Consegui.
Fui fazer para outros botões, o Script executa mas após fechar a tela modal da mensagem “Usuário não permitido” o programa acessa normalmente a página sem que nenhum usuário esteja logado.

@Wendhel

O que acontece nesse script é que ele realiza o Login para abrir uma tela qualquer, depois disso mantém o usuário Logado até que se faça um Logout.

Se todas as vezes que for abrir uma tela precisará realizar login, então, pode fazer dessa forma:

If Application.Login(false) = true Then
	Application.GetFrame("").OpenScreen("Quadro1"), 0
Else	
	MsgBox "Usuário não permitido!"
End If

Sds.

1 Like

@Fernando

Sub cmdLogin_Click()
Application.Login(False)

If Application.User <> “” Then
Application.GetFrame(“Inferior”).OpenScreen(“TelaIncinerador”), 0
Else
MsgBox “Usuário não permitido!”
End If
End Sub

Estou usando essa lógica da qual você me indicou e está funcionando tudo OK. Mas, sempre que vou entrar numa página, é requerido um login mesmo que já haja algum usuário logado.
A situação é:

  1. Como acessar as páginas apenas logado (OK)
  2. Se um usuário já estiver logado, ao navegar nas páginas, não é necessário ficar pedindo que o mesmo efetue o login novamente (pendente)

@Wendhel, bom dia.

Sub cmdLogin_Click()
If Application.User = "" Then
	a = Application.Login(False)
	If a = True Then
		Application.GetFrame("").OpenScreen("Quadro1"), 0
	Else 
		MsgBox "Não há usuário ativo!"
	End If
ElseIf Application.User <> "" Then
	Application.GetFrame("").OpenScreen("Quadro1"), 0
End If	
End Sub 

Sds.

1 Like

@Fernando

Funcionou perfeitamente. Muito obrigado pela ajuda, Fernando.

Olá! Estou com um problema semelhante. Fiz meu login com uma tela modal, tentei os códigos desse tópico, mas ainda sim consigo acessar outras telas sem estar logada…

@jessicatavares, bom dia.

Por favor, poderia compartilhar o código que chama a tela conosco?

Sds.

Estou tentando fazer um login personalizado porém dá o mesmo erro.

Eu inseri dois set point como nomes: Usuário, senha.

inseri um botão e em seu script no evento click fui em aapbrowser ,viewer aplication, loginuser.

NO lugar de username coloquei o valor do setpoint “usuário” e no lugar de userpassword colei o valor do setpoint “senha”, porém mesmo que eu erre a senha ele ainda entra na tela. pra entra na tela eu usei o “pick abrir tela” no script do “viewer” no evento “on login”;

Depois disso dar errado eu exclui o script do viewer onlogin e inseri no script do botão dentro do “if” a linha “Application.GetFrame(”").OpenScreen(“Quadro1”), 0" indo em appbrowser , tarefas, abrir tela. nessa parte mesmo que acerte a senha ele não entra, só entra quando eu insisto varias vezes apertando o botão login.

Sub CommandButton1_Click()
if (Application.LoginUser (Screen.Item(“Usuario”).Value, Screen.Item(“Senha”).Value) then
MsgBox “Login bem sucedido”
Else
MsgBox “Usuario e/ou Senha Incorreto”, vbExclamation

End if
End Sub

@clovissbn, boa tarde.

Assim como a resposta anterior, não consegui reproduzir o problema.

Poderia compartilhar os códigos ou a aplicação?

Em tempo, como é a segunda vez que tem o problema relatado (@jessicatavares) , compartilho uma aplicação exemplo usando como base a deste artigo.

Nesta aplicação, inseri a abertura da tela no OnLogin do Viewer e também no botão “Entrar”. Caso esteja logado, aparecerá uma tela cinza, do contrário, nada ocorre. Também foi inserido um botão para realizar Logout (acredito que este pode ser um dos problemas nos testes).

Sds.

EDIT 1: Link corrigido.

não consegui encontrar sua aplicação, como faço pra enviar a minha ? Não é permitido enviar os arquivos .dom e prj.

Verifica esse link.

Pode enviar sua app via link no Dropbox/Google Drive/ One Drive/ WeTransfer/ etc ou para o meu e-mail: fernando@elipse.com.br

Sds.

ok . enviei pro seu email. Se você puder me enviar o seu projeto com o login funcionando eu agradeço.