/** * Returns the amount of disk space used by the project. * * Returned format: * <code> * array( * "services" => array( * 'service name' => total size in bytes * ), * "total" => total size in bytes, * "quota" => allowed size in bytes * ) * </code> * * Example: * <code> * array( * "services" => array( * 'svn' => 60, * 'docman' => 2500 * ), * "total" => 2560, * "quota" => 52428800, * ) * </code> * -> On a quota of 50MB (52428800 bytes), 2.5kB are used. * * * Error codes: * * 3001, Invalid session (wrong $sessionKey) * * 3002, User do not have access to the project * * @param string $sessionKey the session hash associated with the session opened by the person who calls the service * @param int $group_id the ID of the group we want statistics * * @return ArrayOfStatistics */ function getProjectDiskStats($sessionKey, $group_id) { try { $user = $this->soap_request_validator->continueSession($sessionKey); $this->assertUserCanAccessProject($user, $group_id); return $this->getDiskStatsForUser($user, $group_id); } catch (Exception $e) { return new SoapFault((string) $e->getCode(), $e->getMessage()); } }
/** * 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()); } }
/** * Add values to tracker's selectBox field * * @param String $session_key * @param int $tracker_id * @param int $field_id * @param ArrayOfString $values */ public function addSelectBoxValues($session_key, $tracker_id, $field_id, $values) { try { $current_user = $this->soap_request_validator->continueSession($session_key); $tracker = $this->tracker_factory->getTrackerById($tracker_id); if ($tracker == null) { throw new SoapFault(add_selectbox_fields_fault, "Invalid tracker Id", "addSelectBoxValues"); } $this->checkUserCanAdminTracker($current_user, $tracker); $field = $this->getStaticSelectBoxField($tracker, $field_id); return $this->createSelectBoxValues($field, $values); } catch (Exception $e) { return new SoapFault((string) $e->getCode(), $e->getMessage()); } }
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()); } }