getUsersTable()->validate($token, 'activateUser'); if ($result) { $this->Flash->success(__d('CakeDC/Users', 'User account validated successfully')); } else { $this->Flash->error(__d('CakeDC/Users', 'User account could not be validated')); } } catch (UserAlreadyActiveException $exception) { $this->Flash->error(__d('CakeDC/Users', 'User already active')); } break; case 'password': $result = $this->getUsersTable()->validate($token); if (!empty($result)) { $this->Flash->success(__d('CakeDC/Users', 'Reset password token was validated successfully')); $this->request->getSession()->write( Configure::read('Users.Key.Session.resetPasswordUserId'), $result->id ); return $this->redirect(['action' => 'changePassword']); } else { $this->Flash->error(__d('CakeDC/Users', 'Reset password token could not be validated')); } break; default: $this->Flash->error(__d('CakeDC/Users', 'Invalid validation type')); } } catch (UserNotFoundException $ex) { $this->Flash->error(__d('CakeDC/Users', 'Invalid token or user account already validated')); } catch (TokenExpiredException $ex) { $event = $this->dispatchEvent(UsersAuthComponent::EVENT_ON_EXPIRED_TOKEN, ['type' => $type]); if (!empty($event) && is_array($event->result)) { return $this->redirect($event->result); } $this->Flash->error(__d('CakeDC/Users', 'Token already expired')); } return $this->redirect(['action' => 'login']); } /** * Resend Token validation * * @return mixed */ public function resendTokenValidation() { $this->set('user', $this->getUsersTable()->newEntity()); $this->set('_serialize', ['user']); if (!$this->request->is('post')) { return; } $reference = $this->request->getData('reference'); try { if ($this->getUsersTable()->resetToken($reference, [ 'expiration' => Configure::read('Users.Token.expiration'), 'checkActive' => true, 'sendEmail' => true, 'type' => 'email' ])) { $event = $this->dispatchEvent(UsersAuthComponent::EVENT_AFTER_RESEND_TOKEN_VALIDATION); if (!empty($event) && is_array($event->result)) { return $this->redirect($event->result); } $this->Flash->success(__d( 'CakeDC/Users', 'Token has been reset successfully. Please check your email.' )); } else { $this->Flash->error(__d('CakeDC/Users', 'Token could not be reset')); } return $this->redirect(['action' => 'login']); } catch (UserNotFoundException $ex) { $this->Flash->error(__d('CakeDC/Users', 'User {0} was not found', $reference)); } catch (UserAlreadyActiveException $ex) { $this->Flash->error(__d('CakeDC/Users', 'User {0} is already active', $reference)); } catch (Exception $ex) { $this->Flash->error(__d('CakeDC/Users', 'Token could not be reset')); } } }