Trocar senha no primeiro login

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
  

Mensagemem Ter, 11 Jul 2017 11:48 am

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.
chunning
Localização: Feliz - RS

Mensagemem Ter, 11 Jul 2017 12:49 pm

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
Código: Selecionar todos
APEX_UTIL.FETCH_USER

e
Código: Selecionar todos
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 )
Código: Selecionar todos
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;
dr_gori
Localização: Seattle, WA, USA

Thomas F. G

Mensagemem Seg, 28 Ago 2017 4:43 pm

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:
chunning
Localização: Feliz - RS



Voltar para Apex

Quem está online

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