/** * @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)); }