public function index(Application $app, Request $request, $id = null) { $app['orm.em']->getFilters()->enable('incomplete_order_status_hidden'); // 編集 if ($id) { $Customer = $app['orm.em']->getRepository('Eccube\\Entity\\Customer')->find($id); if (is_null($Customer)) { throw new NotFoundHttpException(); } // 編集用にデフォルトパスワードをセット $previous_password = $Customer->getPassword(); $Customer->setPassword($app['config']['default_password']); // 新規登録 } else { $Customer = $app['eccube.repository.customer']->newCustomer(); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); $Customer->setBuyTimes(0); $Customer->setBuyTotal(0); } // 会員登録フォーム $builder = $app['form.factory']->createBuilder('admin_customer', $Customer); $event = new EventArgs(array('builder' => $builder, 'Customer' => $Customer), $request); $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_CUSTOMER_EDIT_INDEX_INITIALIZE, $event); $form = $builder->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { log_info('会員登録開始', array($Customer->getId())); if ($Customer->getId() === null) { $Customer->setSalt($app['eccube.repository.customer']->createSalt(5)); $Customer->setSecretKey($app['eccube.repository.customer']->getUniqueSecretKey($app)); $CustomerAddress->setName01($Customer->getName01())->setName02($Customer->getName02())->setKana01($Customer->getKana01())->setKana02($Customer->getKana02())->setCompanyName($Customer->getCompanyName())->setZip01($Customer->getZip01())->setZip02($Customer->getZip02())->setZipcode($Customer->getZip01() . $Customer->getZip02())->setPref($Customer->getPref())->setAddr01($Customer->getAddr01())->setAddr02($Customer->getAddr02())->setTel01($Customer->getTel01())->setTel02($Customer->getTel02())->setTel03($Customer->getTel03())->setFax01($Customer->getFax01())->setFax02($Customer->getFax02())->setFax03($Customer->getFax03())->setDelFlg(Constant::DISABLED)->setCustomer($Customer); $app['orm.em']->persist($CustomerAddress); } 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']->persist($Customer); $app['orm.em']->flush(); log_info('会員登録完了', array($Customer->getId())); $event = new EventArgs(array('form' => $form, 'Customer' => $Customer), $request); $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_CUSTOMER_EDIT_INDEX_COMPLETE, $event); $app->addSuccess('admin.customer.save.complete', 'admin'); return $app->redirect($app->url('admin_customer_edit', array('id' => $Customer->getId()))); } else { $app->addError('admin.customer.save.failed', 'admin'); } } return $app->render('Customer/edit.twig', array('form' => $form->createView(), 'Customer' => $Customer)); }
/** * Index * * @param Application $app * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function index(Application $app, Request $request) { /** @var $Customer \Eccube\Entity\Customer */ $Customer = $app['eccube.repository.customer']->newCustomer(); /* @var $builder \Symfony\Component\Form\FormBuilderInterface */ $builder = $app['form.factory']->createBuilder('entry', $Customer); /* @var $form \Symfony\Component\Form\FormInterface */ $form = $builder->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { switch ($request->get('mode')) { case 'confirm': $builder->setAttribute('freeze', true); $form = $builder->getForm(); $form->handleRequest($request); return $app['twig']->render('Entry/confirm.twig', array('form' => $form->createView())); break; case 'complete': $Customer->setSalt($app['eccube.repository.customer']->createSalt(5)); $Customer->setPassword($app['eccube.repository.customer']->encryptPassword($app, $Customer)); $Customer->setSecretKey($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->getUniqueSecretKey($app)); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); $CustomerAddress->setName01($Customer->getName01())->setName02($Customer->getName02())->setKana01($Customer->getKana01())->setKana02($Customer->getKana02())->setCompanyName($Customer->getCompanyName())->setZip01($Customer->getZip01())->setZip02($Customer->getZip02())->setZipcode($Customer->getZip01() . $Customer->getZip02())->setPref($Customer->getPref())->setAddr01($Customer->getAddr01())->setAddr02($Customer->getAddr02())->setTel01($Customer->getTel01())->setTel02($Customer->getTel02())->setTel03($Customer->getTel03())->setFax01($Customer->getFax01())->setFax02($Customer->getFax02())->setFax03($Customer->getFax03())->setDelFlg(Constant::DISABLED)->setCustomer($Customer); $app['orm.em']->persist($Customer); $app['orm.em']->persist($CustomerAddress); $app['orm.em']->flush(); $activateUrl = $app->url('entry_activate', array('secret_key' => $Customer->getSecretKey())); /** @var $BaseInfo \Eccube\Entity\BaseInfo */ $BaseInfo = $app['eccube.repository.base_info']->get(); $activateFlg = $BaseInfo->getOptionCustomerActivate(); // 仮会員設定が有効な場合は、確認メールを送信し完了画面表示. if ($activateFlg) { // メール送信 $app['eccube.service.mail']->sendCustomerConfirmMail($Customer, $activateUrl); return $app->redirect($app->url('entry_complete')); // 仮会員設定が無効な場合は認証URLへ遷移させ、会員登録を完了させる. } else { return $app->redirect($activateUrl); } } } } return $app['view']->render('Entry/index.twig', array('form' => $form->createView())); }
public function index(Application $app, Request $request, $id = null) { // 編集 if ($id) { $Customer = $app['orm.em']->getRepository('Eccube\\Entity\\Customer')->find($id); if (is_null($Customer)) { throw new NotFoundHttpException(); } // 編集用にデフォルトパスワードをセット $previous_password = $Customer->getPassword(); $Customer->setPassword($app['config']['default_password']); // 新規登録 } else { $Customer = $app['eccube.repository.customer']->newCustomer(); $CustomerAddress = new \Eccube\Entity\CustomerAddress(); } // 会員登録フォーム $form = $app['form.factory']->createBuilder('admin_customer', $Customer)->getForm(); if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { if ($Customer->getId() === null) { $Customer->setSalt($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->createSalt(5)); $Customer->setSecretKey($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->getUniqueSecretKey($app)); $CustomerAddress->setName01($Customer->getName01())->setName02($Customer->getName02())->setKana01($Customer->getKana01())->setKana02($Customer->getKana02())->setCompanyName($Customer->getCompanyName())->setZip01($Customer->getZip01())->setZip02($Customer->getZip02())->setZipcode($Customer->getZip01() . $Customer->getZip02())->setPref($Customer->getPref())->setAddr01($Customer->getAddr01())->setAddr02($Customer->getAddr02())->setTel01($Customer->getTel01())->setTel02($Customer->getTel02())->setTel03($Customer->getTel03())->setFax01($Customer->getFax01())->setFax02($Customer->getFax02())->setFax03($Customer->getFax03())->setDelFlg(Constant::DISABLED)->setCustomer($Customer); $app['orm.em']->persist($CustomerAddress); } if ($Customer->getPassword() === $app['config']['default_password']) { $Customer->setPassword($previous_password); } else { $Customer->setPassword($app['orm.em']->getRepository('Eccube\\Entity\\Customer')->encryptPassword($app, $Customer)); } $app['orm.em']->persist($Customer); $app['orm.em']->flush(); $app->addSuccess('admin.customer.save.complete', 'admin'); return $app->redirect($app->url('admin_customer_edit', array('id' => $Customer->getId()))); } } return $app->render('Customer/edit.twig', array('form' => $form->createView(), 'Customer' => $Customer)); }