public function index(Application $app, Request $request)
{
$Customer = $app->user();
$LoginCustomer = clone $Customer;
$app['orm.em']->detach($LoginCustomer);
$previous_password = $Customer->getPassword();
$Customer->setPassword($app['config']['default_password']);
/* @var $builder \Symfony\Component\Form\FormBuilderInterface */
$builder = $app['form.factory']->createBuilder('entry', $Customer);
$event = new EventArgs(array('builder' => $builder, 'Customer' => $Customer), $request);
$app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_MYPAGE_CHANGE_INDEX_INITIALIZE, $event);
/* @var $form \Symfony\Component\Form\FormInterface */
$form = $builder->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
log_info('会員編集開始');
if ($Customer->getPassword() === $app['config']['default_password']) {
$Customer->setPassword($previous_password);
} else {
if ($Customer->getSalt() === null) {
$Customer->setSalt($app['eccube.repository.customer']->createSalt(5));
}
$Customer->setPassword($app['eccube.repository.customer']->encryptPassword($app, $Customer));
}
$app['orm.em']->flush();
log_info('会員編集完了');
$event = new EventArgs(array('form' => $form, 'Customer' => $Customer), $request);
$app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_MYPAGE_CHANGE_INDEX_COMPLETE, $event);
return $app->redirect($app->url('mypage_change_complete'));
}
$app['security']->getToken()->setUser($LoginCustomer);
return $app->render('Mypage/change.twig', array('form' => $form->createView()));
}