Tutorial: Mudando a senha do usuário no primeiro acesso



2012-07-10

Este artigo inaugura a seção de tutoriais da Comunidade XOOPS no Brasil! Recentemente tive que desenvolver uma intranet e o cliente me pediu para que quando o usuário fizesse o primeiro login fosse solicitado a mudança da senha do mesmo visto que a intranet não permite o registro de novos usuário e que isto seria feito por um administrador, onde o mesmo criaria uma senha padrão para todos os usuários, então sem mais bla, bla, bla e vamos ao que interessa. Este problema foi tratado no fórum a seguir: Profile - Solicitar mudança de senha no primeiro acesso E a solução foi apresentada pelo companheiro Luiz, vamos ao tutorial.

Objetivo: Fazer com que quando o usuário entrar pela primeira vez nos site XOOPS seja solicitado a mudança da senha.

Nível do Tutorial: Médio (Usuário que já conhecem a plataforma XOOPS).

  Casos de Uso: Sites, Intranets, comunidades em que não seja permitido o registro de usuário e que isso seja feito somente pelo administrador.

  1. Passo: Vá na pasta include que está na raiz de sua instalação XOOPS e localize o arquivo checklogin.php
  2. Localize a linha que contém o seguinte código (linha 58 - XOOPS 2.5.5):


$user->setVar('last_login', time());

Adicione imediatamente acima desta linha o código abaixo:

$last_login=$user->getVar('last_login');

3° Localize a linha 71 (xoops 2.5.5) onde tem o código:

// Set cookie for rememberme
if (!empty($xoopsConfig['usercookie'])) {
if (!empty($_POST["rememberme"])) {
setcookie($xoopsConfig['usercookie'], $_SESSION['xoopsUserId'] . '-' . md5($user->getVar('pass') . XOOPS_DB_NAME . XOOPS_DB_PASS . XOOPS_DB_PREFIX), time() + 31536000, '/', XOOPS_COOKIE_DOMAIN, 0);
} else {
setcookie($xoopsConfig['usercookie'], 0, -1, '/', XOOPS_COOKIE_DOMAIN, 0);
}}

Adicione logo abaixo a seguinte condição:

if ($last_login == 0) {  redirect_header(XOOPS_URL.'/modules/profile/changepass.php ', 5, 'Favor Trocar a senha!!!');  } 

Pronto, feito isso, quando o usuário fizer seu primeiro login ele será redirecionado para o modulo profile onde será possivel mudar sua senha. Um detalhe é que caso o usuário ignore esta tela, ou seja, volte para a pagina inicial ou outra seção do site, quando ele logar novamente não será redirecionado para a edição da senha. É isso.

Enhanced by Zemanta
Postar um comentário