/** * validate data and register user in DB * * @return ViewModel */ public function processAction() { if ($this->request->isPost()) { $form = new RegisterForm(); $data = $this->params()->fromPost(); $viewModel = new ViewModel(); $viewModel->setTemplate('user/register/index'); $viewModel->setVariable("registerForm", $form); $form->setData($data); if ($form->isValid()) { if ($data["password"] == $data["confirm_password"]) { $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $userRepo = $em->getRepository('Application\\Entity\\User'); $user = $userRepo->findByEmail($data['email']); if ($user) { $viewModel->setVariable('accountExistError', true); return $viewModel; } $user = new User(); $user->setFirstname($data['firstname']); $user->setLastname($data['lastname']); $user->setEmail($data['email']); $user->setPhone($data['phone']); $user->setPassword($data['password']); $user->setBlocked(0); $user->setEmailVerified(0); $user->setPhoneVerified(0); $user->setRole('u'); $user->setCreatedDate(time()); $em->persist($user); $em->flush(); $params = ["email" => $user->getEmail()]; //$eventManager = $this->getEventManager()->trigger('sendMail', null, ); //TODO continue and send mail by Listener class $this->redirect()->toRoute('user', array('controller' => 'register', 'action' => 'success')); } else { $viewModel->setVariable('passwordError', true); return $viewModel; } } else { $viewModel->setVariable('formError', true); return $viewModel; } } else { $this->redirect()->toRoute('user', array('controller' => "register", "action" => "index")); } }
public function editAction() { $form = new \Admin\Form\UserForm(); $id = (int) $this->params()->fromRoute('id', 0); if ($id > 0) { $model = $this->getObjectManager()->find($this->_modelName, $id); $form->setData($model->toArray()); $form->setAttribute('action', '/admin/' . $this->_modelAlias . '/edit/' . $id); $form->get('submit')->setAttribute('value', 'Edit'); $model->setUpdatedDate(new \DateTime()); $viewVariables['action'] = 'Edit'; } else { $model = new User(); $form->setAttribute('action', '/admin/' . $this->_modelAlias . '/add'); $form->get('submit')->setAttribute('value', 'Add'); $model->setCreatedDate(new \DateTime()); $viewVariables['action'] = 'Add'; } $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); $model->setEmail($request->getPost()->email); $model->setName($request->getPost()->name); $model->setRole($request->getPost()->role); if (!empty($request->getPost()->password)) { $model->setPassword($request->getPost()->password); } if ($form->isValid()) { $this->getObjectManager()->persist($model); $this->getObjectManager()->flush(); return $this->redirect()->toUrl('/admin/' . $this->_modelAlias); } } $viewVariables['form'] = $form; $viewVariables['model'] = $model; $this->_view->setTemplate('admin/' . $this->_modelAlias . '/edit'); $this->_view->setVariables($viewVariables); return $this->_view; }