Cleaned up old token services

This commit is contained in:
Dan Brown 2023-04-04 10:44:38 +01:00
parent 8e64324d62
commit 4835a0dcb1
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
4 changed files with 14 additions and 56 deletions

View File

@ -8,8 +8,8 @@ use BookStack\Notifications\ConfirmEmail;
class EmailConfirmationService extends UserTokenService class EmailConfirmationService extends UserTokenService
{ {
protected $tokenTable = 'email_confirmations'; protected string $tokenTable = 'email_confirmations';
protected $expiryTime = 24; protected int $expiryTime = 24;
/** /**
* Create new confirmation for a user, * Create new confirmation for a user,

View File

@ -7,14 +7,12 @@ use BookStack\Notifications\UserInvite;
class UserInviteService extends UserTokenService class UserInviteService extends UserTokenService
{ {
protected $tokenTable = 'user_invites'; protected string $tokenTable = 'user_invites';
protected $expiryTime = 336; // Two weeks protected int $expiryTime = 336; // Two weeks
/** /**
* Send an invitation to a user to sign into BookStack * Send an invitation to a user to sign into BookStack
* Removes existing invitation tokens. * Removes existing invitation tokens.
*
* @param User $user
*/ */
public function sendInvitation(User $user) public function sendInvitation(User $user)
{ {

View File

@ -14,41 +14,29 @@ class UserTokenService
{ {
/** /**
* Name of table where user tokens are stored. * Name of table where user tokens are stored.
*
* @var string
*/ */
protected $tokenTable = 'user_tokens'; protected string $tokenTable = 'user_tokens';
/** /**
* Token expiry time in hours. * Token expiry time in hours.
*
* @var int
*/ */
protected $expiryTime = 24; protected int $expiryTime = 24;
/** /**
* Delete all email confirmations that belong to a user. * Delete all tokens that belong to a user.
*
* @param User $user
*
* @return mixed
*/ */
public function deleteByUser(User $user) public function deleteByUser(User $user): void
{ {
return DB::table($this->tokenTable) DB::table($this->tokenTable)
->where('user_id', '=', $user->id) ->where('user_id', '=', $user->id)
->delete(); ->delete();
} }
/** /**
* Get the user id from a token, while check the token exists and has not expired. * Get the user id from a token, while checking the token exists and has not expired.
*
* @param string $token
* *
* @throws UserTokenNotFoundException * @throws UserTokenNotFoundException
* @throws UserTokenExpiredException * @throws UserTokenExpiredException
*
* @return int
*/ */
public function checkTokenAndGetUserId(string $token): int public function checkTokenAndGetUserId(string $token): int
{ {
@ -67,8 +55,6 @@ class UserTokenService
/** /**
* Creates a unique token within the email confirmation database. * Creates a unique token within the email confirmation database.
*
* @return string
*/ */
protected function generateToken(): string protected function generateToken(): string
{ {
@ -82,10 +68,6 @@ class UserTokenService
/** /**
* Generate and store a token for the given user. * Generate and store a token for the given user.
*
* @param User $user
*
* @return string
*/ */
protected function createTokenForUser(User $user): string protected function createTokenForUser(User $user): string
{ {
@ -102,10 +84,6 @@ class UserTokenService
/** /**
* Check if the given token exists. * Check if the given token exists.
*
* @param string $token
*
* @return bool
*/ */
protected function tokenExists(string $token): bool protected function tokenExists(string $token): bool
{ {
@ -115,12 +93,8 @@ class UserTokenService
/** /**
* Get a token entry for the given token. * Get a token entry for the given token.
*
* @param string $token
*
* @return object|null
*/ */
protected function getEntryByToken(string $token) protected function getEntryByToken(string $token): ?stdClass
{ {
return DB::table($this->tokenTable) return DB::table($this->tokenTable)
->where('token', '=', $token) ->where('token', '=', $token)
@ -129,10 +103,6 @@ class UserTokenService
/** /**
* Check if the given token entry has expired. * Check if the given token entry has expired.
*
* @param stdClass $tokenEntry
*
* @return bool
*/ */
protected function entryExpired(stdClass $tokenEntry): bool protected function entryExpired(stdClass $tokenEntry): bool
{ {

View File

@ -14,21 +14,11 @@ use Illuminate\Http\Request;
class ConfirmEmailController extends Controller class ConfirmEmailController extends Controller
{ {
protected EmailConfirmationService $emailConfirmationService;
protected LoginService $loginService;
protected UserRepo $userRepo;
/**
* Create a new controller instance.
*/
public function __construct( public function __construct(
EmailConfirmationService $emailConfirmationService, protected EmailConfirmationService $emailConfirmationService,
LoginService $loginService, protected LoginService $loginService,
UserRepo $userRepo protected UserRepo $userRepo
) { ) {
$this->emailConfirmationService = $emailConfirmationService;
$this->loginService = $loginService;
$this->userRepo = $userRepo;
} }
/** /**