public function updateAction() { $id = $this->params('id'); if (empty($id)) { return $this->redirect()->toRoute('user/default', array('controler' => 'index', 'action' => 'index')); } $form = new UserForm(); $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter(new UserFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); //mora da se koni polje submit jer ga nema u nasoj tablici unset($data['submit']); $this->getUsersTable()->update($data, array('users_id' => $id)); return $this->redirect()->toRoute('index/default', array('controler' => 'index', 'action' => 'update', 'id' => $id)); } } else { $form->setData($this->getUsersTable()->select(array('users_id' => $id))->current()); } return new ViewModel(array('form' => $form, 'id' => $id)); }
/** * Create new user * * * @access public * @uses User * @uses UserForm * * @return ViewModel */ public function newAction() { $variables = array(); $query = $this->getServiceLocator()->get('wrapperQuery')->setEntity('Users\\Entity\\User'); $countriesService = $this->getServiceLocator()->get('losi18n-countries'); $languagesService = $this->getServiceLocator()->get('losi18n-languages'); $userModel = $this->getServiceLocator()->get('Users\\Model\\User'); $userObj = new User(); $options = array(); $options['query'] = $query; $locale = "en"; $options['countries'] = $countriesService->getAllCountries($locale); $options['languages'] = $languagesService->getAllLanguages($locale); $options['excludedRoles'] = array(Role::USER_ROLE); $auth = new AuthenticationService(); $storage = $auth->getIdentity(); if (!$auth->hasIdentity() || $auth->hasIdentity() && !in_array(Role::ADMIN_ROLE, $storage['roles'])) { $options['excludedRoles'][] = Role::ADMIN_ROLE; } $isAdminUser = false; if ($auth->hasIdentity() && in_array(Role::ADMIN_ROLE, $storage['roles'])) { $isAdminUser = true; } $form = new UserForm(null, $options); $request = $this->getRequest(); if ($request->isPost()) { // Make certain to merge the files info! $fileData = $request->getFiles()->toArray(); $data = array_merge_recursive($request->getPost()->toArray(), $fileData); $query->setEntity('Users\\Entity\\User'); $form->setInputFilter($userObj->getInputFilter($query)); $form->setData($data); $isCustomValidationValid = true; if ($data['email'] != $data['confirmEmail']) { $form->get('confirmEmail')->setMessages(array("email doesnt match")); $isCustomValidationValid = false; } if ($data['password'] != $data['confirmPassword']) { $form->get('confirmPassword')->setMessages(array("password doesnt match")); $isCustomValidationValid = false; } if ($form->isValid() && $isCustomValidationValid === true) { $userModel->saveUser($data, null, $isAdminUser); if ($isAdminUser) { $url = $this->getEvent()->getRouter()->assemble(array('action' => 'index'), array('name' => 'users')); $this->redirect()->toUrl($url); } else { $variables['success'] = true; } } } $variables['userForm'] = $this->getFormView($form); $statement = new Statement(); $variables['statements'] = $statement->statements; return new ViewModel($variables); }