Cleaned up old token services
This commit is contained in:
		
							parent
							
								
									8e64324d62
								
							
						
					
					
						commit
						4835a0dcb1
					
				| 
						 | 
					@ -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,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue