Guest User

Untitled

a guest
Aug 21st, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. public function esqueci_senha() {
  2. if ($this->request->is(['post'])) {
  3. $myemail = $this->request->getData('email');
  4. $mytoken = Security::hash(Security::randomBytes(25));
  5.  
  6. $userTable = TableRegistry::get('Usuarios');
  7. $usuario = $userTable
  8. ->find('all')
  9. ->where(['email'=>$myemail])
  10. ->first();
  11.  
  12. $usuario->token = $mytoken;
  13. $userTable->save($usuario);
  14.  
  15. Email::configTransport('recuperar_senha', [
  16. 'className' => 'Smtp',
  17. 'host' => MAIL_HOST,
  18. 'port' => MAIL_PORT,
  19. 'timeout' => 30,
  20. 'username' => MAIL_USER,
  21. 'password' => MAIL_PASS,
  22. 'client' => null,
  23. 'tls' => false,
  24. ]);
  25.  
  26. $email = new Email();
  27.  
  28. $email
  29. ->transport('recuperar_senha')
  30. ->template('recuperar_senha')
  31. ->emailFormat('html')
  32. ->from([MAIL_USER => 'TrucaoWeb'])
  33. ->to($myemail)
  34. ->subject('Por favor confirme alteração de sua senha')
  35. ->viewVars([
  36. 'email' => $this->request->data['email'],
  37. 'usuario' => $usuario['name'],
  38. 'token'=>$mytoken
  39. ]);
  40.  
  41. if ($email->send()) {
  42. $this->Flash->success(__('Cheque seu email para alterar a senha.'));
  43. return $this->redirect('/login');
  44. } else {
  45. $this->Flash->error(__('Não foi possível enviar o email: ') . $email->smtpError);
  46. }
  47. }
  48. }
  49.  
  50. public function recuperar_senha($token) {
  51. if($this->request->is(['post'])){
  52. $userTable = TableRegistry::get('Usuarios');
  53. $usuario = $userTable
  54. ->find('all')
  55. ->where(['token'=>$token])
  56. ->first();
  57.  
  58. $hasher = new DefaultPasswordHasher();
  59.  
  60. $usuario->password = $hasher->hash($this->request->data['password']);
  61.  
  62. // if($this->request->data['Nova_senha'] != $this->request->data['Repitir_nova_senha']) {
  63. // $this->Flash->error('Senha nova não corresponde');
  64.  
  65. if($userTable->save($usuario)){
  66. $this->Flash->success(__('Senha alterada com sucesso!'));
  67. return $this->redirect('/login');
  68. }else{
  69. $this->Flash->error(__('Não foi possivel alterar sua senha, por favor tente novamente!'));
  70. }
  71. }
  72. }
Add Comment
Please, Sign In to add comment