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