getUser(); $error = null; if ($request->isMethod('POST')) { $token = $request->request->getString('_csrf_token'); if (!$this->isCsrfTokenValid('change_password', $token)) { $error = 'Ungültiges Formular-Token. Bitte erneut versuchen.'; } else { $current = $request->request->getString('current_password'); $new = $request->request->getString('new_password'); $confirm = $request->request->getString('confirm_password'); if (!$this->hasher->isPasswordValid($user, $current)) { $error = 'Das aktuelle Passwort ist falsch.'; } elseif (mb_strlen($new) < 8) { $error = 'Das neue Passwort muss mindestens 8 Zeichen lang sein.'; } elseif ($new !== $confirm) { $error = 'Die neuen Passwörter stimmen nicht überein.'; } else { $user->setPasswordHash($this->hasher->hashPassword($user, $new)); $this->users->save($user); $this->addFlash('success', 'Passwort erfolgreich geändert.'); return $this->redirectToRoute('app_change_password'); } } } return $this->render('security/change_password.html.twig', [ 'error' => $error, ]); } }