コード例 #1
0
 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));
 }
コード例 #2
0
 /**
  * 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);
 }