/**
  * Sign In Page controller
  *
  * @param Request $request Incoming request
  * @param Application $app $Silex application
  * @return mixed
  */
 public function signInAction(Request $request, Application $app)
 {
     $user = new User();
     // Warning : constant salt
     $salt = "qUgq3NAYfC1MKwrW?yevbE";
     $user->setSalt($salt);
     $user->setRole("ROLE_USER");
     $encoder = $app['security.encoder.digest'];
     $userForm = $app['form.factory']->create(new UserType(), $user);
     $userForm->handleRequest($request);
     if ($userForm->isSubmitted() && $userForm->isValid()) {
         // Salt the password of the user
         $user->setPassword($encoder->encodePassword($user->getPassword(), $salt));
         $app['dao.user']->save($user);
         $app['session']->getFlashBag()->add('success', 'Votre compte a bien été crée');
     }
     $userFormView = $userForm->createView();
     return $app['twig']->render('user_form.html.twig', array("title" => "Créer un compte", "userForm" => $userFormView));
 }
 /**
  * Creates a User object based on a DB row.
  *
  * @param array $row The DB row containing User data.
  * @return \VeryGoodTrip\Domain\User
  */
 protected function buildDomainObject($row)
 {
     $user = new User();
     $user->setId($row['user_id']);
     $user->setEmail($row['user_email']);
     $user->setLastname($row['user_lastname']);
     $user->setFirstname($row['user_firstname']);
     $user->setPassword($row['user_password']);
     $user->setSalt($row['user_salt']);
     $user->setAddress($row['user_address']);
     $user->setTown($row['user_town']);
     $user->setZipcode($row['user_zipcode']);
     $user->setRole($row['user_role']);
     return $user;
 }