Spaces:
No application file
No application file
| namespace Mautic\UserBundle\Model\UserToken; | |
| use Mautic\CoreBundle\Helper\RandomHelper\RandomHelperInterface; | |
| use Mautic\UserBundle\Entity\UserToken; | |
| use Mautic\UserBundle\Entity\UserTokenRepositoryInterface; | |
| final class UserTokenService implements UserTokenServiceInterface | |
| { | |
| public function __construct( | |
| private RandomHelperInterface $randomHelper, | |
| private UserTokenRepositoryInterface $userTokenRepository | |
| ) { | |
| } | |
| /** | |
| * @param int $secretLength | |
| * | |
| * @return UserToken | |
| */ | |
| public function generateSecret(UserToken $token, $secretLength = 32) | |
| { | |
| do { | |
| $randomSecret = $this->randomHelper->generate($secretLength); | |
| $isSecretUnique = $this->userTokenRepository->isSecretUnique($randomSecret); | |
| } while (false === $isSecretUnique); | |
| return $token->setSecret($randomSecret); | |
| } | |
| /** | |
| * @return bool | |
| */ | |
| public function verify(UserToken $token) | |
| { | |
| return $this->userTokenRepository->verify($token); | |
| } | |
| } | |