Alterar Senha

Gostaria de saber como faz para alterar senha de um usuario logado… e como alterar senha atraves de envio de senha no email cadastrado… Obrigado

nickezaro,

Para alterar a senha do usuário, somente cria um formulário com o Model da tabela que está o usuário e senha do usuário logado, mais não permitindo ele alterar o usuário somente a senha, ai você faz um update na senha, mais usa o Yii::app()->user->getId() para fazer a consulta do usuário logado.

E quando for enviar a senha nova para o usuário, faz a mesma coisa, pedi para ele digitar o usuário ou email (caso não esteja logado), você faz a consulta com o usuário/email verifica se o usuário/email existe e altera a senha, atualiza a nova senha no banco de dados e envia um email para ele com a nova senha.

Eu particularmente eu crio um base64_encode(time()), mais você pode usar outras combinações de senha.

alguma dica de extensao que faça o envio do email com a nova senha?

Obrigado

nickezaro,

Pode usar qualquer extensão que envia email, por que o corpo do email e você que vai formatar, se vai ou não ter tabelas ou imagens.

Eu uso essa:

http://www.yiiframework.com/extension/mailer

Tem um modelo na extensão de como deve fazer para enviar o e-mail.

Deixei igual ao exemplo, ele ta executando a funcao, trocando a senha, mas nao recebe o e-mail nunca

tem como vc postar um exemplo de como voce envia e-mail? valeu

Podes tentar assim:

main.php




        'components' => array(

         'mailer' => array(

                 'class' => 'application.extensions.mailer.EMailer',

                 'pathViews' => 'application.views.email',

                 'pathLayouts' => 'application.views.email.layouts'

         ), ),



controller.php




$message = $text;

$mailer = Yii::createComponent('application.extensions.mailer.EMailer');

Yii::app()->mailer->IsSMTP();

Yii::app()->mailer->IsHTML(true);

Yii::app()->mailer->SMTPDebug = true;

Yii::app()->mailer->Mailer = 'smtps';

Yii::app()->mailer->SMTPAuth = true;

Yii::app()->mailer->SMTPSecure = 'ssl';

Yii::app()->mailer->Host = "smtp.gmail.com";

Yii::app()->mailer->Port = 465;

Yii::app()->mailer->From = 'email@gmail.com';

Yii::app()->mailer->FromName = 'EMAIL';

Yii::app()->mailer->AddAddress($model->emailresponsavel);

Yii::app()->mailer->ContentType = "text/html";

Yii::app()->mailer->CharSet = 'UTF-8';

Yii::app()->mailer->Subject = 'Teste ' ;

Yii::app()->mailer->Body = $message;

Yii::app()->mailer->Username = "usuario@gmail.com";

Yii::app()->mailer->Password = "senha";

Yii::app()->mailer->Send();