/** * Update the User informations in the Database * * @return array */ public function saveEditUserAction() { $validate = new App_Validate_Ajax(); $groupModel = new Admin_Model_DbTable_Groups(); $userModel = new Admin_Model_DbTable_Users(); $groupRow = new Admin_Model_DbRow_Group($groupModel->find($this->request->getParam('groupid', 0))); $userRow = new Admin_Model_DbRow_User($userModel->find($this->request->getParam('id', 0))); $errors = array(); // create the validator map $validatorMap = array('name' => array('validators' => array(), 'message' => 'Fullname cannot be emtpy'), 'username' => array('validators' => array(), 'message' => 'Username cannot be emtpy'), 'email' => array('validators' => array('EmailAddress'), 'message' => 'E-Mailaddress is empty or not valid'), 'group' => array('validators' => array(), 'message' => 'Please select a group')); if (!$userRow->get('id')) { $errors[] = 'Unknown UserId'; } else { if ($userRow->get('username') !== $this->request->getParam('username', '')) { $dubUserName = $userModel->fetchRowByUserName($this->request->getParam('username', '')); if ($dubUserName) { $errors[] = 'Username already exists'; } } } if (!$groupRow->get('id')) { $errors[] = 'Unknown or no group selected'; } if ($validate->isValid($this->request->getParams(), $validatorMap, TRUE) == FALSE || count($errors) > 0) { return $this->responseFailure('Failed Saving informations', array_merge($errors, $validate->getMessages())); } else { $user = new Admin_Model_DbRow_User($this->request->getParams()); $userModel->update($user->toDbArray(), $user->get('id')); return $this->responseSuccess(array('users' => array($user->toJsonArray()))); } }
/** * Edit a user * * @view /views/scripts/user/edit.phtml * @access public */ public function editAction() { $userRow = new Admin_Model_DbRow_User($this->dbUser->find($this->checkUserIdParam())); $groups = array(); foreach ($this->dbGroup->getGroups() as $group) { $groups[] = new Admin_Model_DbRow_Group($group); } $form = new Admin_Form_User_Edit($groups, $userRow, 'edit'); $form->setAction('/noc/admin/user/edit'); if ($this->getRequest()->isPost()) { if ($form->isValid($this->getRequest()->getParams())) { $userRow->fromArray(array('groupid' => $this->getRequest()->getParam('group'), 'name' => $this->getRequest()->getParam('name'), 'username' => $this->getRequest()->getParam('username'), 'email' => $this->getRequest()->getParam('mail'), 'enabled' => $this->getRequest()->getParam('active'))); $this->dbUser->update($userRow->toDbArray(), $userRow->get('id')); $this->_redirect('admin/user/index'); } else { $form->setDescription('An unknown error occured'); } } $this->view->form = $form; }