user = $user; $this->handle(); } public function getSendResult() { return $this->sendResult; } private function handle() { $this->createPassword(); $this->setPassword(); $this->setSalt(); $this->setSaltedPassword(); $this->persistNewpassword(); $this->sendNewPassword(); } private function createPassword() { $this->passwordRecipe = new PasswordRecipe(); } private function setPassword() { $this->password = $this->passwordRecipe->getPassword(); } private function setSalt() { $this->salt = $this->passwordRecipe->getsalt(); } private function setSaltedPassword() { $this->saltedPassword = $this->passwordRecipe->getSaltedPassword(); } private function persistNewPassword() { $data = [ 'password' => $this->saltedPassword, 'salt' => $this->salt ]; User::whereId( $this->user->id )->update( $data ); } private function sendNewPassword() { $data = [ 'username' => $this->user->username, 'firstname' => $this->user->firstname, 'middlename' => $this->user->middlename, 'lastname' => $this->user->lastname, 'password' => $this->password ]; $html = view('emails/requestpassword_email', ['user' => $data]); $email = \Config\Services::email(); $email->setFrom('noreply@dbois.nl', 'DBOIS'); $email->setTo($this->user->email); $email->setSubject('Nieuw wachtwoord DBOIS'); $email->setMessage($html); $email->setMailType('html'); $email->setNewline("\r\n"); $this->sendResult = $email->send(); if (! $this->sendResult) { log_message('error', $email->printDebugger()); } } }