diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2020-04-13 16:59:02 +0200 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2020-04-13 17:00:53 +0200 |
commit | 4ff1efa41883f80bb1764ea97dd9dd46b557a979 (patch) | |
tree | 2f4aa44aeb632793c2567cb5a83221e60359d575 /src/Wallabag/CoreBundle/Controller | |
parent | 365b3dd21f7c4f3e7f2b6f1502f284a6190dd918 (diff) | |
download | wallabag-4ff1efa41883f80bb1764ea97dd9dd46b557a979.tar.gz wallabag-4ff1efa41883f80bb1764ea97dd9dd46b557a979.tar.zst wallabag-4ff1efa41883f80bb1764ea97dd9dd46b557a979.zip |
Added a button to disable 2FA when enabled
Diffstat (limited to 'src/Wallabag/CoreBundle/Controller')
-rw-r--r-- | src/Wallabag/CoreBundle/Controller/ConfigController.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php index 6655ef93..56efe82b 100644 --- a/src/Wallabag/CoreBundle/Controller/ConfigController.php +++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php | |||
@@ -193,6 +193,30 @@ class ConfigController extends Controller | |||
193 | } | 193 | } |
194 | 194 | ||
195 | /** | 195 | /** |
196 | * Disable 2FA using email. | ||
197 | * | ||
198 | * @Route("/config/otp/email/disable", name="disable_otp_email") | ||
199 | */ | ||
200 | public function disableOtpEmailAction() | ||
201 | { | ||
202 | if (!$this->getParameter('twofactor_auth')) { | ||
203 | return $this->createNotFoundException('two_factor not enabled'); | ||
204 | } | ||
205 | |||
206 | $user = $this->getUser(); | ||
207 | $user->setEmailTwoFactor(false); | ||
208 | |||
209 | $this->container->get('fos_user.user_manager')->updateUser($user, true); | ||
210 | |||
211 | $this->addFlash( | ||
212 | 'notice', | ||
213 | 'flashes.config.notice.otp_disabled' | ||
214 | ); | ||
215 | |||
216 | return $this->redirect($this->generateUrl('config') . '#set3'); | ||
217 | } | ||
218 | |||
219 | /** | ||
196 | * Enable 2FA using email. | 220 | * Enable 2FA using email. |
197 | * | 221 | * |
198 | * @Route("/config/otp/email", name="config_otp_email") | 222 | * @Route("/config/otp/email", name="config_otp_email") |
@@ -220,6 +244,32 @@ class ConfigController extends Controller | |||
220 | } | 244 | } |
221 | 245 | ||
222 | /** | 246 | /** |
247 | * Disable 2FA using OTP app. | ||
248 | * | ||
249 | * @Route("/config/otp/app/disable", name="disable_otp_app") | ||
250 | */ | ||
251 | public function disableOtpAppAction() | ||
252 | { | ||
253 | if (!$this->getParameter('twofactor_auth')) { | ||
254 | return $this->createNotFoundException('two_factor not enabled'); | ||
255 | } | ||
256 | |||
257 | $user = $this->getUser(); | ||
258 | |||
259 | $user->setGoogleAuthenticatorSecret(''); | ||
260 | $user->setBackupCodes(null); | ||
261 | |||
262 | $this->container->get('fos_user.user_manager')->updateUser($user, true); | ||
263 | |||
264 | $this->addFlash( | ||
265 | 'notice', | ||
266 | 'flashes.config.notice.otp_disabled' | ||
267 | ); | ||
268 | |||
269 | return $this->redirect($this->generateUrl('config') . '#set3'); | ||
270 | } | ||
271 | |||
272 | /** | ||
223 | * Enable 2FA using OTP app, user will need to confirm the generated code from the app. | 273 | * Enable 2FA using OTP app, user will need to confirm the generated code from the app. |
224 | * | 274 | * |
225 | * @Route("/config/otp/app", name="config_otp_app") | 275 | * @Route("/config/otp/app", name="config_otp_app") |
@@ -248,6 +298,11 @@ class ConfigController extends Controller | |||
248 | 298 | ||
249 | $this->container->get('fos_user.user_manager')->updateUser($user, true); | 299 | $this->container->get('fos_user.user_manager')->updateUser($user, true); |
250 | 300 | ||
301 | $this->addFlash( | ||
302 | 'notice', | ||
303 | 'flashes.config.notice.otp_enabled' | ||
304 | ); | ||
305 | |||
251 | return $this->render('WallabagCoreBundle:Config:otp_app.html.twig', [ | 306 | return $this->render('WallabagCoreBundle:Config:otp_app.html.twig', [ |
252 | 'backupCodes' => $backupCodes, | 307 | 'backupCodes' => $backupCodes, |
253 | 'qr_code' => $this->get('scheb_two_factor.security.google_authenticator')->getQRContent($user), | 308 | 'qr_code' => $this->get('scheb_two_factor.security.google_authenticator')->getQRContent($user), |