Example #1
0
 public function addAction()
 {
     $form = new CustomerForm();
     $form->get('submit')->setValue('Add');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new ShopncCustomer();
         $filter = new ShopncCustomerFilter();
         $form->setInputFilter($filter);
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $user->populate($form->getData());
             $user->setMemberTime(time());
             $user->setAuthorize(0);
             $this->getEntityManager()->persist($user);
             $this->getEntityManager()->flush();
             return $this->redirect()->toRoute('admin_user');
         }
     }
     return array('form' => $form);
 }
Example #2
0
 /**
  * Register new user
  */
 public function registerAction()
 {
     // if the user is logged in, we don't need to register
     if ($this->zfcUserAuthentication()->hasIdentity()) {
         // redirect to the login redirect route
         return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute());
     }
     // if registration is disabled
     if (!$this->getOptions()->getEnableRegistration()) {
         return array('enableRegistration' => false);
     }
     $request = $this->getRequest();
     $service = $this->getUserService();
     $form = $this->getRegisterForm();
     if ($this->getOptions()->getUseRedirectParameterIfPresent() && $request->getQuery()->get('redirect')) {
         $redirect = $request->getQuery()->get('redirect');
     } else {
         $redirect = false;
     }
     $redirectUrl = $this->url()->fromRoute(static::ROUTE_REGISTER) . ($redirect ? '?redirect=' . rawurlencode($redirect) : '');
     $prg = $this->prg($redirectUrl, true);
     if ($prg instanceof Response) {
         return $prg;
     } elseif ($prg === false) {
         return array('registerForm' => $form, 'enableRegistration' => $this->getOptions()->getEnableRegistration(), 'redirect' => $redirect);
     }
     if (empty($prg['memberTelphone']) && empty($prg['memberPhone'])) {
         $form->setData($prg);
         return array('empty_phone_number' => true, 'registerForm' => $form, 'enableRegistration' => $this->getOptions()->getEnableRegistration(), 'redirect' => $redirect);
     }
     $post = $prg;
     $user = $service->register($post);
     $redirect = isset($prg['redirect']) ? $prg['redirect'] : null;
     if (!$user) {
         return array('registerForm' => $form, 'enableRegistration' => $this->getOptions()->getEnableRegistration(), 'redirect' => $redirect);
     }
     // 增加客户信息
     if (!empty($user)) {
         try {
             $time = time();
             $customer = new ShopncCustomer();
             $customer->setMemberEmail($post['email'])->setMemberName($post['username'])->setRealName($post['realName'])->setMemberTelphone($post['memberTelphone'])->setMemberQq($post['memberQq'])->setMemberMsn($post['memberMsn'])->setMemberWebsite($post['memberWebsite'])->setMemberAddress($post['memberAddress'])->setUserId($user->getId())->setMemberTime($time)->setMemberLoginNum('0');
             $this->getEntityManager()->persist($customer);
             $this->getEntityManager()->flush();
         } catch (\Exception $e) {
             $saved_user = $this->getEntityManager()->find('User\\Entity\\User', $user->getId());
             if ($saved_user) {
                 $this->getEntityManager()->remove($saved_user);
                 $this->getEntityManager()->flush();
             }
         }
         // 增加客户权限
         if (!empty($user)) {
             $role = $this->getEntityManager()->find('User\\Entity\\Role', '4');
             $user->addRole($role);
             $this->getEntityManager()->persist($user);
             $this->getEntityManager()->flush();
         }
     }
     if ($service->getOptions()->getLoginAfterRegistration()) {
         $identityFields = $service->getOptions()->getAuthIdentityFields();
         if (in_array('email', $identityFields)) {
             $post['identity'] = $user->getEmail();
         } elseif (in_array('username', $identityFields)) {
             $post['identity'] = $user->getUsername();
         }
         $post['credential'] = $post['password'];
         $request->setPost(new Parameters($post));
         return $this->forward()->dispatch(static::CONTROLLER_NAME, array('action' => 'authenticate'));
     }
     // TODO: Add the redirect parameter here...
     return $this->redirect()->toUrl($this->url()->fromRoute(static::ROUTE_LOGIN) . ($redirect ? '?redirect=' . rawurlencode($redirect) : ''));
 }