Exemple #1
0
 /**
  * @Route("/my-profile", name="user_profile")
  * @Template()
  */
 public function myProfileAction(Request $request)
 {
     $session = $request->getSession();
     $this->init();
     $oldPassword = $this->user->getPassword();
     $form = $this->createForm(new UserProfileType(), $this->user);
     if ($request->isMethod("POST")) {
         $form->submit($request);
         if ($form->isValid()) {
             if ($this->user->getPassword()) {
                 /** @var EncoderFactory $encoderFactory */
                 $encoderFactory = $this->container->get('security.encoder_factory');
                 $encoder = $encoderFactory->getEncoder($this->user);
                 $this->user->setPassword($encoder->encodePassword($this->user->getPassword(), $this->user->getSalt()));
             } else {
                 $this->user->setPassword($oldPassword);
             }
             $this->em->persist($this->user);
             $this->em->flush($this->user);
             $this->addSuccessFlash("messages.profile_saved_successfully");
         } else {
             $this->addNoticeFlash("messages.profile_not_valid_form");
         }
     }
     $finder = new Finder();
     $rootDir = dirname($this->get('kernel')->getRootDir());
     $finder->files()->in($rootDir . '/web/' . self::AVATAR_LIB)->name('*.png');
     $avatarFiles = array();
     foreach ($finder->files() as $file) {
         //$fullFileName = $file->getRealpath();
         $relativePath = $file->getRelativePath();
         $fileName = $file->getRelativePathname();
         $avatarFiles[] = '/' . self::AVATAR_LIB . '/' . $fileName;
     }
     return array('action' => 'my-profile', 'form' => $form->createView(), 'project' => null, 'error' => null, 'avatarFiles' => $avatarFiles);
 }
 protected function loginAs(User $user, $providerKey = 'user_index')
 {
     $token = new UsernamePasswordToken($user, $user->getPassword(), $providerKey, $user->getRoles());
     $this->container->get('security.context')->setToken($token);
     /** @var Session $session */
     $session = $this->get('session');
     $session->set('_security_' . $providerKey, serialize($token));
 }