public function restPutUser() { $request = $this->getRequest(); $postData = $request->getPost(); $form = new Form\UserEditForm(); $form->useSubFormGroup()->bind($postData); if ($form->isValid()) { $postData = $form->getData(); $itemModel = Api::_()->getModel('User\\Model\\User'); unset($postData['password'], $postData['oldPassword']); $itemId = $itemModel->setItem($postData)->saveUser(); $this->redirect()->toUrl('/admin/user/' . $postData['id']); } else { //$this->flashMessenger()->addMessage(''); //$flashMesseger = array('post-edit-failed'); } return array('item' => $postData, 'form' => $form); }
public function editAction() { $this->accessRights(13); //Accept Parent Module, Return Main Menu Lists with Active Menu Indicator $this->childModuleAccessRights(24, 'edit'); //Accept Child Module ID & it's Actions: add, edit, view, disable $msgs = ''; //Get user id and validate $id = (int) $this->params()->fromRoute('id', 0); if (!$id) { return $this->redirect()->toRoute('user', array('action' => 'add')); } //Generate Adapter $this->adapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'); // Get the User with the specified id. An exception is thrown // if it cannot be found, in which case go to the index page. try { $user_data = $this->getUserTable()->getUser($this->adapter, $id); //Get user data } catch (\Exception $ex) { return $this->redirect()->toRoute('user', array('action' => 'index')); } $from = (array) $user_data; $form = new UserEditForm($this->adapter); $form->setData($user_data); //Update record after data posting $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); //get previously posted data //Check if user is trying to update a password if ($request->getPost('password') != $request->getPost('confirm_password')) { $msgs = 'Set new password and confirm new password fields doesn\'t match.'; } else { //Update user credentials $user = new User(); $form->setInputFilter($user->getInputFilter()); $form->setData($request->getPost()); $form->isValid(); //Save to Audit Trail //prepare audit trail parameters $to = $this->getRequest()->getPost()->toArray(); $diff = array_diff_assoc($to, $from); //User Role Update if (array_key_exists("role_id", $diff)) { $from_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $from['role_id']); $from['role_name'] = $from_role_name['role_name']; $to_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $to['role_id']); $to['role_name'] = $to_role_name['role_name']; $diff_role_name = (array) $this->getRoleTable()->getRole($this->adapter, $to['role_id']); $diff['role_name'] = $diff_role_name['role_name']; } //Company Update if (array_key_exists("company_id", $diff)) { $from_company_name = (array) $this->getCompanyTable()->getCompany($from['company_id']); $from['company_name'] = $from_company_name['company_name']; $to_company_name = (array) $this->getCompanyTable()->getCompany($to['company_id']); $to['company_name'] = $to_company_name['company_name']; $diff_company_name = (array) $this->getCompanyTable()->getCompany($to['company_id']); $diff['company_name'] = $diff_company_name['company_name']; } unset($diff['submit'], $diff['app_user_credentials_id'], $diff['user_detail_id'], $diff['role_id'], $diff['company_id'], $diff['password'], $diff['confirm_password']); //Remove IDs $changes = $this->prepare_modified_data($from, $to, $diff); $this->save_to_audit_trail($to['username'], $changes['pre'], $changes['post'], 'edit', 24); // end audit trail parameters $user->exchangeArray($request->getPost()); $this->getUserTable()->saveUser($request->getPost()); $user_data = $this->getUserTable()->getUser($this->adapter, $id); //Get user data //Verify if admin had reset a user password $this->passwordHadBeenChanged('Newswire Password Reset', $request->getPost(), $request->getPost('email')); //Redirect to index $this->flashMessenger()->addMessage(['content' => $request->getPost('username') . ' has been updated!', 'type' => 'success']); $this->redirect()->toRoute('user'); } } $view = new ViewModel(array('form' => $form, 'msgs' => $msgs, 'users' => $this->getUserTable()->fetchAll($this->adapter), 'companies' => $this->getUserTable()->getAllCompany($this->adapter), 'action' => 'edit', 'user_id' => $id, 'user_data' => $user_data, 'tab_menus' => $this->getTabMenu('User & Role'), 'access_rights' => $this->getSubModuleAccessRights(24))); $view->setTemplate('user/index'); return $view; }
public function getServiceConfig() { return array('factories' => array('AuthService' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'user', 'email', 'password', 'MD5(?)'); $authService = new AuthenticationService(); $authService->setAdapter($dbTableAuthAdapter); return $authService; }, 'UserTable' => function ($sm) { $tableGateway = $sm->get('UserTableGateway'); $table = new UserTable($tableGateway); return $table; }, 'UserTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new User()); return new TableGateway('user', $dbAdapter, null, $resultSetPrototype); }, 'ListRowTable' => function ($sm) { $tableGateway = $sm->get('ListRowTableGateway'); $table = new ListRowTable($tableGateway); return $table; }, 'ListRowTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new ListRow()); return new TableGateway('list_row', $dbAdapter, null, $resultSetPrototype); }, 'AnimeTable' => function ($sm) { $tableGateway = $sm->get('AnimeTableGateway'); $table = new AnimeTable($tableGateway); return $table; }, 'AnimeTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Anime()); return new TableGateway('anime', $dbAdapter, null, $resultSetPrototype); }, 'MessageTable' => function ($sm) { $tableGateway = $sm->get('MessageTableGateway'); $table = new MessageTable($tableGateway); return $table; }, 'MessageTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Message()); return new TableGateway('message', $dbAdapter, null, $resultSetPrototype); }, 'CommentTable' => function ($sm) { $tableGateway = $sm->get('CommentTableGateway'); $table = new CommentTable($tableGateway); return $table; }, 'CommentTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Comment()); return new TableGateway('comment', $dbAdapter, null, $resultSetPrototype); }, 'RegisterForm' => function ($sm) { $form = new Form\RegisterForm(); $form->setInputFilter($sm->get('RegisterFilter')); return $form; }, 'RegisterFilter' => function ($sm) { return new Form\RegisterFilter(); }, 'LoginForm' => function ($sm) { $form = new Form\LoginForm(); $form->setInputFilter($sm->get('LoginFilter')); return $form; }, 'LoginFilter' => function ($sm) { return new Form\LoginFilter(); }, 'UserEditForm' => function ($sm) { $form = new Form\UserEditForm(); $form->setInputFilter($sm->get('UserEditFilter')); return $form; }, 'UserEditFilter' => function ($sm) { return new Form\UserEditFilter(); }, 'EditAnimeOnListForm' => function ($sm) { $form = new EditAnimeOnListForm(); $form->setInputFilter($sm->get('EditAnimeOnListFilter')); return $form; }, 'EditAnimeOnListFilter' => function ($sm) { return new EditAnimeOnListFilter(); }, 'MessageForm' => function ($sm) { $form = new Form\MessageForm($sm, 'New ticket'); $form->setInputFilter($sm->get('MessageFilter')); return $form; }, 'MessageFilter' => function ($sm) { return new Form\MessageFilter(); }, 'ReplyForm' => function ($sm) { $form = new Form\ReplyForm(); $form->setInputFilter($sm->get('ReplyFilter')); return $form; }, 'ReplyFilter' => function ($sm) { return new Form\ReplyFilter(); })); }