Я хотел бы реализовать следующее в своем приложении SF2 / FOSUserBundle.
Идея состоит в том, чтобы пользователи регистрировались, используя стандартную регистрационную форму. Затем им отправляется электронное письмо с подтверждением. Когда пользователь открывает ссылку, он проверяет свой адрес электронной почты (важный). Но я бы хотел, чтобы пользователь еще не был включен. Это потребует действия администратора для включения пользователя.
Мне удалось получить подтверждение по электронной почте, что приятно, но когда пользователи открывают ссылку для подтверждения, они сразу включаются … Есть ли способ изменить это поведение.
Какой был бы лучший способ сделать это (я уверен, что я не первый, кто пытался)?
вы можете переопределить значение UserChecker
умолчанию, поставив его как параметр:
// ACME/YourBundle/Resources/Config/services.yml parameters: security.user_checker.class: ACME\YourBundle\Security\Core\User\UserChecker
и напишите свой класс:
// ACME/YourBundle/Security/Core/User/UserChecker.php namespace ACME\YourBundle\Security\Core\User\UserChecker; use Symfony\Component\Security\Core\User\UserChecker as BaseCode; use Symfony\Component\Security\Core\User\UserInterface; class UserChecker extends BaseCode { public function checkPreAuth(UserInterface $user) { // Your Business logic parent::checkPreAuth($user); } }