Trocar senha no primeiro login

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Bom dia!
Uso a autenticação padrão do apex e quando crio o usuário tem a opção de informar se ele deve ou não alterar senha no primeiro login.
Porém quando o usuário faz o login, o apex não solicita a troca da senha.
Uso versão 5.0.
Alguém tem alguma sugestão para este método?

Obrigado.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Olá chunning

Eu encontrei um POST que possui uma solução pra isso. Veja se ajuda!
https://community.oracle.com/thread/3976118

Ele usa uma combinação de

Selecionar tudo

APEX_UTIL.FETCH_USER 
e

Selecionar tudo

APEX_UTIL.EDIT_USER 
p_change_password_on_first_use => 'Y',
p_first_password_use_occurred => 'N'
Aqui tem um exemplo: (por favor, nos avise se deu certo :-D )

Selecionar tudo

DECLARE  
  l_user_id                       NUMBER;  
  l_workspace                     VARCHAR2(255);  
  l_user_name                     VARCHAR2(100);  
  l_first_name                    VARCHAR2(255);  
  l_last_name                     VARCHAR2(255);  
  l_web_password                  VARCHAR2(255);  
  l_email_address                 VARCHAR2(240);  
  l_start_date                    DATE;  
  l_end_date                      DATE;  
  l_employee_id                   NUMBER(15,0);  
  l_allow_access_to_schemas       VARCHAR2(4000);  
  l_person_type                   VARCHAR2(1);  
  l_default_schema                VARCHAR2(30);  
  l_groups                        VARCHAR2(1000);  
  l_developer_role                VARCHAR2(60);  
  l_description                   VARCHAR2(240);  
  l_account_expiry                DATE;  
  l_account_locked                VARCHAR2(1);  
  l_failed_access_attempts        NUMBER;  
  l_change_password_on_first_use  VARCHAR2(1);  
  l_first_password_use_occurred   VARCHAR2(1);  
BEGIN  
  --  
  l_user_id := APEX_UTIL.GET_USER_ID(upper(:P15_LOGIN));  
  --  
  APEX_UTIL.FETCH_USER(  
      p_user_id                       => l_user_id,  
      p_workspace                     => l_workspace,  
      p_user_name                     => l_user_name,  
      p_first_name                    => l_first_name,  
      p_last_name                     => l_last_name,  
      p_web_password                  => l_web_password,  
      p_email_address                 => l_email_address,  
      p_start_date                    => l_start_date,  
      p_end_date                      => l_end_date,  
      p_employee_id                   => l_employee_id,  
      p_allow_access_to_schemas       => l_allow_access_to_schemas,  
      p_person_type                   => l_person_type,  
      p_default_schema                => l_default_schema,  
      p_groups                        => l_groups,  
      p_developer_role                => l_developer_role,  
      p_description                   => l_description,  
      p_account_expiry                => l_account_expiry,  
      p_account_locked                => l_account_locked,  
      p_failed_access_attempts        => l_failed_access_attempts,  
      p_change_password_on_first_use  => l_change_password_on_first_use,  
      p_first_password_use_occurred   => l_first_password_use_occurred);  
  --  
  l_first_password_use_occurred  := 'N';  
  l_change_password_on_first_use := 'Y';  
  --  
  APEX_UTIL.EDIT_USER (  
      p_user_id                       => l_user_id,  
      p_user_name                     => l_user_name,  
      p_first_name                    => l_first_name,  
      p_last_name                     => l_last_name,  
      p_web_password                  => l_web_password,  
      p_new_password                  => l_web_password,  
      p_email_address                 => l_email_address,  
      p_start_date                    => l_start_date,  
      p_end_date                      => l_end_date,  
      p_employee_id                   => l_employee_id,  
      p_allow_access_to_schemas       => l_allow_access_to_schemas,  
      p_person_type                   => l_person_type,  
      p_default_schema                => l_default_schema,  
      p_group_ids                     => l_groups,  
      p_developer_roles               => l_developer_role,  
      p_description                   => l_description,  
      p_account_expiry                => l_account_expiry,  
      p_account_locked                => l_account_locked,  
      p_failed_access_attempts        => l_failed_access_attempts,  
      p_change_password_on_first_use  => l_change_password_on_first_use,  
      p_first_password_use_occurred   => l_first_password_use_occurred);  
  --  
END; 
chunning
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Seg, 28 Mar 2011 11:39 am
Localização: Feliz - RS

Boa tarde!

Acabei criando um acesso personalizado.
Com apoio de um colega, criamos um procedimento para criar usuários de banco, um novo esquema de autenticação e deixando-o como "current" e depois utilizamos a wwv_flow_custom_auth_std.login para acessar o sistema.

Obrigado pelo apoio.
:mrgreen: :mrgreen: :mrgreen:
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes