/**
  * Return the list of Packages for given project
  * 
  * @param Integer $group_id
  * @param String  $status_id
  * 
  * @return Array
  */
 function getFRSPackagesFromDb($group_id, $status_id = null)
 {
     $_id = (int) $group_id;
     $dao = $this->_getFRSPackageDao();
     if ($status_id) {
         $_status_id = (int) $status_id;
         $dar = $dao->searchActivePackagesByGroupId($_id, $this->STATUS_ACTIVE);
     } else {
         $dar = $dao->searchByGroupId($_id);
     }
     if ($dar && !$dar->isError()) {
         $packages = array();
         $um = UserManager::instance();
         $user = $um->getCurrentUser();
         foreach ($dar as $data_array) {
             if ($status_id) {
                 if ($this->userCanRead($group_id, $data_array['package_id'], $user->getID())) {
                     $packages[] = $this->getFRSPackageFromArray($data_array);
                 } else {
                     $frsrf = new FRSReleaseFactory();
                     $authorised_releases = $frsrf->getFRSReleasesFromDb($data_array['package_id'], 1, $group_id);
                     if ($authorised_releases && count($authorised_releases) > 0) {
                         $packages[] = $this->getFRSPackageFromArray($data_array);
                     }
                 }
             } else {
                 $packages[] = $this->getFRSPackageFromArray($data_array);
             }
         }
         return $packages;
     }
     return;
 }
Exemple #2
0
         print '<img src="' . util_get_image_theme("ic/notification_start.png") . '" alt="' . $Language->getText('file_showfiles', 'start_monitoring') . '" title="' . $Language->getText('file_showfiles', 'start_monitoring') . '" />';
     }
     print '</a>';
     if ($frspf->userCanAdmin($user, $group_id)) {
         print '     &nbsp;&nbsp;<a href="admin/package.php?func=delete&amp;group_id=' . $group_id . '&amp;id=' . $package_id . '" title="' . $hp->purify($GLOBALS['Language']->getText('file_admin_editreleases', 'delete'), CODENDI_PURIFIER_CONVERT_HTML) . '" onclick="return confirm(\'' . $hp->purify($GLOBALS['Language']->getText('file_admin_editpackages', 'warn'), CODENDI_PURIFIER_CONVERT_HTML) . '\');">' . $GLOBALS['HTML']->getImage('ic/trash.png', array('alt' => $hp->purify($GLOBALS['Language']->getText('file_admin_editreleases', 'delete'), CODENDI_PURIFIER_CONVERT_HTML), 'title' => $hp->purify($GLOBALS['Language']->getText('file_admin_editreleases', 'delete'), CODENDI_PURIFIER_CONVERT_HTML))) . '</a>';
     }
 }
 print '</legend>';
 if ($package->isHidden()) {
     //TODO i18n
     print '<div style="text-align:center"><em>' . $Language->getText('file_showfiles', 'hidden_package') . '</em></div>';
 }
 // get the releases of the package
 // Order by release_date and release_id in case two releases
 // are published the same day
 $res_release = $frsrf->getFRSReleasesFromDb($package_id, null, $group_id);
 $num_releases = count($res_release);
 if (!isset($proj_stats['releases'])) {
     $proj_stats['releases'] = 0;
 }
 $proj_stats['releases'] += $num_releases;
 $javascript_releases_array = array();
 print '<div id="p_' . $package_id . '">';
 if (!$pv && $frspf->userCanAdmin($user, $group_id)) {
     echo '<p><a href="admin/release.php?func=add&amp;group_id=' . $group_id . '&amp;package_id=' . $package_id . '">[' . $GLOBALS['Language']->getText('file_admin_editpackages', 'add_releases') . ']</a></p>';
 }
 if (!$res_release || $num_releases < 1) {
     print '<B>' . $Language->getText('file_showfiles', 'no_releases') . '</B>' . "\n";
 } else {
     $cpt_release = 0;
     // iterate and show the releases of the package
Exemple #3
0
 /**
  * deleteEmptyRelease - Delete an empty release or all empty releases in package package_id in project group_id.
  *
  * @param String  $sessionKey  The session hash associated with the session opened by the person who calls the service
  * @param Integer $group_id    Id of the project in which we want to delete empty releases
  * @param Integer $package_id  Id of the package in which we want to delete empty releases
  * @param Integer $release_id  Id of the release to delete
  * @param Boolean $cleanup_all Set to true to delete all empty releases
  *
  * @return Array list of deleted releases, or a soap fault if:
  *                 - group_id does not match with a valid project
  *                 - the package_id does not match
  *                 - the user does not have permissions to delete releases
  *                 - the system was not able to delete the releases.
  */
 function deleteEmptyRelease($sessionKey, $group_id, $package_id, $release_id, $cleanup_all)
 {
     if (session_continue($sessionKey)) {
         try {
             $pm = ProjectManager::instance();
             $pm->getGroupByIdForSoap($group_id, 'deleteRelease');
         } catch (SoapFault $e) {
             return $e;
         }
         $packageFactory = new FRSPackageFactory();
         $package = $packageFactory->getFRSPackageFromDb($package_id);
         if (!$package || $package->getGroupID() != $group_id) {
             return new SoapFault(invalid_package_fault, 'Invalid Package', 'deleteRelease');
         }
         $releaseFactory = new FRSReleaseFactory();
         $releases = array();
         if ($release_id && !$cleanup_all) {
             $release = $releaseFactory->getFRSReleaseFromDb($release_id);
             if (!$release || $release->getPackageID() != $package_id) {
                 return new SoapFault(invalid_release_fault, 'Invalid Release', 'deleteRelease');
             }
             $releases[] = $release;
         } elseif ($cleanup_all) {
             // retrieve all the releases
             $releases = $releaseFactory->getFRSReleasesFromDb($package_id);
         }
         $deleted = array();
         foreach ($releases as $release) {
             $fileFactory = new FRSFileFactory();
             $files = $fileFactory->getFRSFilesFromDb($release->getReleaseID());
             if (empty($files)) {
                 if ($releaseFactory->userCanUpdate($group_id, $release->getReleaseID())) {
                     if ($releaseFactory->delete_release($group_id, $release->getReleaseID())) {
                         $deleted[] = release_to_soap($release);
                     } else {
                         return new SoapFault(invalid_package_fault, 'Release ' . $release->getReleaseID() . ' could not be deleted', 'deleteRelease');
                     }
                 } else {
                     return new SoapFault(invalid_package_fault, 'You don\'t have permission to delete package ' . $release->getReleaseID(), 'deleteRelease');
                 }
             }
         }
         return $deleted;
     } else {
         return new SoapFault(invalid_session_fault, 'Invalid Session', 'deleteRelease');
     }
 }
 /**
  *	getReleases - gets Release objects for all the releases in this package.
  *
  *  return  array   Array of FRSRelease Objects.
  */
 function &getReleases()
 {
     if (!is_array($this->package_releases) || count($this->package_releases) < 1) {
         $this->package_releases = array();
         $frsrf = new FRSReleaseFactory();
         $this->package_releases = $frsrf->getFRSReleasesFromDb($this->getPackageID());
     }
     return $this->package_releases;
 }