/** * Get a generic user * * @param String $sessionKey The project admin session hash * @param Integer $groupId The Project id where the User Group is defined * * @return UserInfo */ public function getProjectGenericUser($sessionKey, $groupId) { if (!$this->isRequesterAdmin($sessionKey, $groupId)) { throw new SoapFault('3201', 'Permission denied: need to be project admin.'); } $user = $this->generic_user_factory->fetch($groupId); if (!$user) { throw new SoapFault('3106', "Generic User does not exist"); } return user_to_soap($user->getId(), $user, $this->userManager->getCurrentUser()); }
*/ require_once 'pre.php'; require_once 'common/user/GenericUserFactory.class.php'; require_once 'common/include/CSRFSynchronizerToken.class.php'; // Valid group id $valid_groupid = new Valid_GroupId(); $valid_groupid->required(); if (!$request->valid($valid_groupid)) { exit_error($Language->getText('project_admin_index', 'invalid_p'), $Language->getText('project_admin_index', 'p_not_found')); } $group_id = $request->get('group_id'); //must be a project admin session_require(array('group' => $group_id, 'admin_flags' => 'A')); $user_manager = UserManager::instance(); $generic_user_factory = new GenericUserFactory($user_manager, ProjectManager::instance(), new GenericUserDao()); $generic_user = $generic_user_factory->fetch($group_id); $redirect_url = '/project/admin/editgenericmember.php?group_id=' . (int) $group_id; $token = new CSRFSynchronizerToken($redirect_url); if ($request->get('update_generic_user')) { $token->check(); $password = $request->getValidated('password'); $email = $request->getValidated('email'); if ($password) { $generic_user->setPassword($password); } $generic_user->setEmail($email); if ($user_manager->updateDb($generic_user)) { $GLOBALS['Response']->addFeedback('info', $Language->getText('project_admin', 'generic_member_updated')); } else { $GLOBALS['Response']->addFeedback('warning', $Language->getText('project_admin', 'generic_member_not_changed')); }