102 lines
2.2 KiB
PHP
102 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 28/07/2018
|
|
* Time: 14:31
|
|
*/
|
|
|
|
class RequestPassword {
|
|
|
|
private $salt;
|
|
private $user;
|
|
private $password;
|
|
private $sendResult;
|
|
private $passwordRecipe;
|
|
private $saltedPassword;
|
|
|
|
public function __construct( $user )
|
|
{
|
|
$this->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());
|
|
}
|
|
}
|
|
|
|
} |