mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-28 11:43:40 +08:00
45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace BookStack\Auth\Access;
|
|
|
|
use BookStack\Auth\User;
|
|
use BookStack\Exceptions\ConfirmationEmailException;
|
|
use BookStack\Notifications\ConfirmEmail;
|
|
|
|
class EmailConfirmationService extends UserTokenService
|
|
{
|
|
protected $tokenTable = 'email_confirmations';
|
|
protected $expiryTime = 24;
|
|
|
|
/**
|
|
* Create new confirmation for a user,
|
|
* Also removes any existing old ones.
|
|
*
|
|
* @param User $user
|
|
*
|
|
* @throws ConfirmationEmailException
|
|
*/
|
|
public function sendConfirmation(User $user)
|
|
{
|
|
if ($user->email_confirmed) {
|
|
throw new ConfirmationEmailException(trans('errors.email_already_confirmed'), '/login');
|
|
}
|
|
|
|
$this->deleteByUser($user);
|
|
$token = $this->createTokenForUser($user);
|
|
|
|
$user->notify(new ConfirmEmail($token));
|
|
}
|
|
|
|
/**
|
|
* Check if confirmation is required in this instance.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function confirmationRequired(): bool
|
|
{
|
|
return setting('registration-confirmation')
|
|
|| setting('registration-restrict');
|
|
}
|
|
}
|