$userForm->handleRequest($request);
// `googleTwoFactor` isn't a field within the User entity, we need to define it's value in a different way
- if (true === $user->isGoogleAuthenticatorEnabled() && false === $userForm->isSubmitted()) {
+ if ($this->getParameter('twofactor_auth') && true === $user->isGoogleAuthenticatorEnabled() && false === $userForm->isSubmitted()) {
$userForm->get('googleTwoFactor')->setData(true);
}
if ($userForm->isSubmitted() && $userForm->isValid()) {
// handle creation / reset of the OTP secret if checkbox changed from the previous state
- if (true === $userForm->get('googleTwoFactor')->getData() && false === $user->isGoogleAuthenticatorEnabled()) {
- $secret = $this->get('scheb_two_factor.security.google_authenticator')->generateSecret();
+ if ($this->getParameter('twofactor_auth')) {
+ if (true === $userForm->get('googleTwoFactor')->getData() && false === $user->isGoogleAuthenticatorEnabled()) {
+ $secret = $this->get('scheb_two_factor.security.google_authenticator')->generateSecret();
- $user->setGoogleAuthenticatorSecret($secret);
- $user->setEmailTwoFactor(false);
+ $user->setGoogleAuthenticatorSecret($secret);
+ $user->setEmailTwoFactor(false);
- $qrCode = $this->get('scheb_two_factor.security.google_authenticator')->getQRContent($user);
-
- $this->addFlash('OTPSecret', ['code' => $secret, 'qrCode' => $qrCode]);
- } elseif (false === $userForm->get('googleTwoFactor')->getData() && true === $user->isGoogleAuthenticatorEnabled()) {
- $user->setGoogleAuthenticatorSecret(null);
+ $this->addFlash('OtpQrCode', $this->get('scheb_two_factor.security.google_authenticator')->getQRContent($user));
+ } elseif (false === $userForm->get('googleTwoFactor')->getData() && true === $user->isGoogleAuthenticatorEnabled()) {
+ $user->setGoogleAuthenticatorSecret(null);
+ }
}
$userManager->updateUser($user, true);