Skip to content

Instantly share code, notes, and snippets.

@codecowboy
Created October 4, 2011 05:52
Show Gist options
  • Select an option

  • Save codecowboy/1260992 to your computer and use it in GitHub Desktop.

Select an option

Save codecowboy/1260992 to your computer and use it in GitHub Desktop.

Revisions

  1. codecowboy created this gist Oct 4, 2011.
    55 changes: 55 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    <?php

    /*
    * This file is part of the FOSUserBundle package.
    *
    * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
    *
    * For the full copyright and license information, please view the LICENSE
    * file that was distributed with this source code.
    */

    namespace GymLoop\CoreBundle\Form;

    use Symfony\Component\Form\Form;
    use Symfony\Component\HttpFoundation\Request;

    use FOS\UserBundle\Model\UserInterface;
    use FOS\UserBundle\Model\UserManagerInterface;
    use FOS\UserBundle\Form\Model\CheckPassword;

    class ProfileFormHandler
    {
    protected $request;
    protected $userManager;
    protected $form;

    public function __construct(Form $form, Request $request, UserManagerInterface $userManager)
    {
    $this->form = $form;
    $this->request = $request;
    $this->userManager = $userManager;
    }

    public function process(UserInterface $user)
    {
    $this->form->setData($user);

    if ('POST' == $this->request->getMethod()) {
    $this->form->bindRequest($this->request);

    if ($this->form->isValid()) {
    $this->userManager->updateUser($user);

    return true;
    }

    // Reloads the user to reset its username. This is needed when the
    // username or password have been changed to avoid issues with the
    // security layer.
    $this->userManager->reloadUser($user);
    }

    return false;
    }
    }