private function getProjectById($group_id, $method_name) { $project = $this->soap_request_validator->getProjectById($group_id, $method_name); if (!$project->usesService('plugin_tracker')) { throw new SoapFault(get_service_fault, 'Tracker service is not used for this project.', $method_name); } return $project; }
/** * Return top most modified files during the given period * * @param String $sessionKey Session key of the requesting user * @param Integer $group_id ID of the project the subversion repository belongs to * @param Integer $start_date Start of period (unix timestamp) * @param Integer $end_date End of period (unix timestamp) * @param Integer $limit Max number of files to return * * @return ArrayOfSvnPathInfo */ public function getSvnStatsFiles($sessionKey, $group_id, $start_date, $end_date, $limit) { try { $current_user = $this->soap_request_validator->continueSession($sessionKey); $project = $this->soap_request_validator->getProjectById($group_id, 'getSvnStatsFiles'); $this->soap_request_validator->assertUserCanAccessProject($current_user, $project); $svn_log = new SVN_LogFactory($project); $files = $svn_log->getTopModifiedFiles($current_user, TimeInterval::fromUnixTimestamps($start_date, $end_date), $limit); return $files; } catch (Exception $e) { return new SoapFault((string) $e->getCode(), $e->getMessage()); } }
private function assertUserCanAccessProject(User $user, $group_id) { $project = $this->soap_request_validator->getProjectById($group_id); $this->soap_request_validator->assertUserCanAccessProject($user, $project); }
function getProjectGroupsAndUsers($session_key, $group_id) { try { require_once 'common/soap/SOAP_RequestValidator.class.php'; $project_manager = ProjectManager::instance(); $user_manager = UserManager::instance(); $soap_request_validator = new SOAP_RequestValidator($project_manager, $user_manager); $user = $soap_request_validator->continueSession($session_key); $project = $soap_request_validator->getProjectById($group_id, 'getProjectGroupsAndUsers'); $soap_request_validator->assertUserCanAccessProject($user, $project); $ugroups = ugroup_get_ugroups_with_members($group_id); $dyn_members = ugroup_get_all_dynamic_members($group_id); return ugroups_to_soap(array_merge($dyn_members, $ugroups)); } catch (SoapFault $e) { return $e; } catch (Exception $e) { return new SoapFault((string) $e->getCode(), $e->getMessage()); } }