Login para algumas páginas da aplicação

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Olá,

Como eu posso fazer com que algumas páginas da minha aplicação APEX só possam ser acessadas depois de um login?
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Oi Robson,

Creio que o ORACLE APEX , por meio da feature "Authorization Schemes", permite que você controle o acesso dos usuários a nível de aplicação, página ou componente.

Eu infelizmente estou sem o meu ambiente de desenvolvimento APEX para testar o conceito mas, para maiores informações, consulte o manual "Oracle® Application Express Application Builder User's Guide", especificamente neste link: http://docs.oracle.com/cd/E23903_01/doc ... zation.htm

Outros links interessantes:

http://www.apex-at-work.com/2011/12/adv ... ation.html
http://oracleapplicationexpress.com/usi ... n-plsql-21
http://chrisonoracle.wordpress.com/2011 ... on-plugin/
http://www.apexninjas.com/blog/2011/02/ ... x-objects/

Abraços,

Sergio Coutinho
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Já olhei estas páginas e segui um exemplo que um colega fez, mas quando eu executo a página de login dá o seguinte erro:

ORA-06550: linha 4, coluna 23: PLS-00306: wrong number or types of arguments in call to 'FAZ_Login' ORA-06550: linha 4, coluna 1: PL/SQL: Statement ignored

A função recebe 2 parâmetros varchar2 (usuário e senha) e devolve um valor booleano.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Robson,

Não sei se já tentou isso, mas ao invés de criar uma tabela de usuários para sua aplicação, você não podia usar o próprio sistema de autenticação do APEX?

Uma vez desenvolvi uma aplicação APEX com as seguintes características:

- Os usuários que acessavam a aplicação foram cadastrados no ORACLE APEX (módulo de administracao do APEX);
- Criei grupo para estes usuários e os classifiquei como ADMINISTRADORES ou USUARIOS;
- Na relação de ABAS/TABS da aplicação APEX, eu criei uma com o nome ADMIN.
- Embaixo dela eu inclui uma série de páginas administrativas (ex: cadastro de tabelas, rotina de backup,etc).
- Na aba ADMIN, eu configurei a seção CONDITIONS com os seguintes valores:
CONDITION TYPE = PL/SQL Function Body Returning a Boolean
EXPRESSION 1 = return APEX_UTIL.CURRENT_USER_IN_GROUP('ADMINISTRADORES');
Fazendo isso, quando um usuário se conectava na aplicação (sendo devidamente validado via ORACLE APEX), poderiam ocorrer duas situações:

A) Se ele fosse do grupo USUARIOS, a aba ADMIN ficava invisível, impedindo que ele acessasse as páginas de administração;
B) Se ele fosse do grupo ADMINISTRADORES, teria acesso à aba ADMIN e então consequentemente às páginas de administração;

Não saberia dizer exatamente o motivo da sua rotina estar dando erro.

Abraços,

Sergio Coutinho
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Olá, Sergio Coutinho,

Já descobri o motivo pelo qual não estava dando certo o login. Na função que eu criei, os parâmetros de entrada têm que ser nomes especificados pelo Apex: p_username e p_password. Só substituí na função e tudo começou a funcionar.

Obrigado pela ajuda e dicas.

Robson
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante