]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Controller/ConfigController.php
Updating logged in user (email, name, etc ..)
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Controller / ConfigController.php
index 7540f756c4ab525699efd605ad292b9942d6b561..b3236e3ce20d17342e206b4dd02515c13eeb29fd 100644 (file)
@@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\Request;
 use Wallabag\CoreBundle\Entity\Config;
 use Wallabag\CoreBundle\Form\Type\ConfigType;
 use Wallabag\CoreBundle\Form\Type\ChangePasswordType;
+use Wallabag\CoreBundle\Form\Type\UserType;
 
 class ConfigController extends Controller
 {
@@ -20,13 +21,13 @@ class ConfigController extends Controller
     {
         $em = $this->getDoctrine()->getManager();
         $config = $this->getConfig();
+        $user = $this->getUser();
 
         // handle basic config detail
         $configForm = $this->createForm(new ConfigType(), $config);
         $configForm->handleRequest($request);
 
         if ($configForm->isValid()) {
-
             $em->persist($config);
             $em->flush();
 
@@ -43,7 +44,6 @@ class ConfigController extends Controller
         $pwdForm->handleRequest($request);
 
         if ($pwdForm->isValid()) {
-            $user = $this->getUser();
             $user->setPassword($pwdForm->get('new_password')->getData());
             $em->persist($user);
             $em->flush();
@@ -56,9 +56,26 @@ class ConfigController extends Controller
             return $this->redirect($this->generateUrl('config'));
         }
 
+        // handle changing user information
+        $userForm = $this->createForm(new UserType(), $user);
+        $userForm->handleRequest($request);
+
+        if ($userForm->isValid()) {
+            $em->persist($user);
+            $em->flush();
+
+            $this->get('session')->getFlashBag()->add(
+                'notice',
+                'Information updated'
+            );
+
+            return $this->redirect($this->generateUrl('config'));
+        }
+
         return $this->render('WallabagCoreBundle:Config:index.html.twig', array(
             'configForm' => $configForm->createView(),
             'pwdForm' => $pwdForm->createView(),
+            'userForm' => $userForm->createView(),
         ));
     }