Advertisement
Guest User

Untitled

a guest
Jan 7th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. public function forget_pass()
  2. {
  3. // verifica que es un metodo post
  4. if ($this->request->is('get')){
  5. $email_user = $this->request->data['email'];
  6.  
  7. // verificar que el mail existe
  8. $user = $this->Users->find('all', array('conditions' => array('Users.email' => $email_user)))->first();
  9.  
  10. // si el usuario no existe
  11. if ($user == null){
  12. $this->Flash->success('Este email no se encuentra registrado.');
  13. }
  14. else{
  15.  
  16. // genera una nueva contraseña random
  17. $keyspace = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  18. $pieces = [];
  19. $max = mb_strlen($keyspace, '8bit') - 1;
  20.  
  21. for ($i = 0; $i < 4; ++$i) {
  22. $pieces []= $keyspace[random_int(0, $max)];
  23. }
  24.  
  25. $new_password = implode('', $pieces);
  26.  
  27. // se envia el correo a la direccion del usuario
  28. $email = new Email('default');
  29. $email->setFrom([env('EMAIL_FROM', 'correosprueba1234@gmail.com') => env('EMAIL_NAME', 'Nueva Contraseña de ServiBat')])
  30. ->setTo($email_user,$user->nombre)
  31. ->setSubject('Nueva contraseña')
  32. ->send($new_password);
  33.  
  34. $user->password = $new_password;
  35.  
  36. //si la nueva contraseña se guarda con exito
  37. if(!$this->Users->save($user)){
  38. $this->Flash->success('Error al cambiar la nueva pasword.');
  39. }
  40. }
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement