function show_newest_releases()
{
    global $Language;
    $return = "";
    $hp = Codendi_HTMLPurifier::instance();
    // Fetch releases that are no more than 3 months old
    $start_time = strval(time() - 3 * 30 * 24 * 3600);
    $query = new_utils_get_new_releases_short($start_time);
    $res_newrel = db_query($query);
    // print each one but only show one release per project
    $count = 0;
    $DONE = array();
    $frspf = new FRSPackageFactory();
    $frsrf = new FRSReleaseFactory();
    while (($row_newrel = db_fetch_array($res_newrel)) && $count < 10) {
        if (!isset($DONE[$row_newrel['group_id']])) {
            //if ((!permission_exist("PACKAGE_READ",$row_newrel['package_id'] ))&&
            //    (!permission_exist("RELEASE_READ",$row_newrel['release_id'] ))) {
            if ($frspf->userCanRead($row_newrel['group_id'], $row_newrel['package_id'], 100) && $frsrf->userCanRead($row_newrel['group_id'], $row_newrel['package_id'], $row_newrel['release_id'], 100)) {
                $return .= '(' . $hp->purify($row_newrel['release_version'], CODENDI_PURIFIER_CONVERT_HTML) . ')&nbsp;' . '<A href="/projects/' . $row_newrel['unix_group_name'] . '/">' . $hp->purify(util_unconvert_htmlspecialchars($row_newrel['group_name']), CODENDI_PURIFIER_CONVERT_HTML) . "</A><BR>\n";
                $count++;
                $DONE[$row_newrel['group_id']] = true;
            }
        }
    }
    $return .= '<center><A href="/new/?func=releases">[ ' . $Language->getText('include_features_boxes', 'more') . ' ]</A></center>';
    return $return;
}
Exemple #2
0
} else {
    exit_no_group();
}
if (user_ismember($group_id, 'R2') || user_ismember($group_id, 'A')) {
    $authorized_user = true;
}
$frspf = new FRSPackageFactory();
$frsrf = new FRSReleaseFactory();
$frsff = new FRSFileFactory();
$packages = array();
$num_packages = 0;
// Retain only packages the user is authorized to access, or packages containing releases the user is authorized to access...
$res = $frspf->getFRSPackagesFromDb($group_id);
$user = UserManager::instance()->getCurrentUser();
foreach ($res as $package) {
    if ($frspf->userCanRead($group_id, $package->getPackageID(), $user->getId())) {
        if ($request->existAndNonEmpty('release_id')) {
            if ($request->valid(new Valid_UInt('release_id'))) {
                $release_id = $request->get('release_id');
                $row3 =& $frsrf->getFRSReleaseFromDb($release_id);
            }
        }
        if (!$request->existAndNonEmpty('release_id') || $row3->getPackageID() == $package->getPackageID()) {
            $packages[$package->getPackageID()] = $package;
            $num_packages++;
        }
    }
}
if ($request->valid(new Valid_Pv('pv'))) {
    $pv = $request->get('pv');
} else {
 /**
  * Add package monitoring for a user
  *
  * @param PFUser              $user         The user
  * @param Integer           $groupId      Id of the project
  * @param Integer           $fileModuleId Id of the package
  * @param FRSPackage        $package      Package
  * @param FRSPackageFactory $frspf        Package factory
  * @param UserHelper        $userHelper   User helper
  *
  * @return Void
  */
 public function addUserMonitoring(PFUser $user, $groupId, $fileModuleId, FRSPackage $package, FRSPackageFactory $frspf, UserHelper $userHelper)
 {
     if ($user) {
         $publicly = true;
         if ($frspf->userCanRead($groupId, $fileModuleId, $user->getId())) {
             if (!$this->isMonitoring($fileModuleId, $user, $publicly)) {
                 $anonymous = false;
                 $result = $this->setMonitor($fileModuleId, $user, $anonymous);
                 if ($result) {
                     $historyDao = new ProjectHistoryDao();
                     $historyDao->groupAddHistory("frs_add_monitor_package", $fileModuleId . "_" . $user->getId(), $groupId);
                     $this->notifyAfterAdd($package, $user);
                     $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_filemodule_monitor', 'monitoring_added', array($userHelper->getDisplayName($user->getName(), $user->getRealName()))));
                 } else {
                     $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_filemodule_monitor', 'insert_err'));
                 }
             } else {
                 $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_filemodule_monitor', 'already_monitoring', array($userHelper->getDisplayName($user->getName(), $user->getRealName()))));
             }
         } else {
             $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_filemodule_monitor', 'user_no_permission', array($userHelper->getDisplayName($user->getName(), $user->getRealName()))));
         }
     } else {
         $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_filemodule_monitor', 'no_user', array($userName)));
     }
 }
Exemple #4
0
print " <channel>\n";
print "  <copyright>" . $Language->getText('export_rss_sfnewreleases', 'copyright', array($GLOBALS['sys_long_org_name'], $GLOBALS['sys_name'], date('Y', time()))) . "</copyright>\n";
print "  <pubDate>" . gmdate('D, d M Y g:i:s', time()) . " GMT</pubDate>\n";
print "  <description>" . $Language->getText('export_rss_sfnewreleases', 'new_releases', $GLOBALS['sys_name']) . "</description>\n";
print "  <link>" . get_server_url() . "</link>\n";
print "  <title>" . $Language->getText('export_rss_sfnewreleases', 'new_releases', $GLOBALS['sys_name']) . "</title>\n";
list($host, $port) = explode(':', $GLOBALS['sys_default_domain']);
print "  <webMaster>webmaster@" . $host . "</webMaster>\n";
print "  <language>en-us</language>\n";
// ## item outputs
$outputtotal = 0;
$frspf = new FRSPackageFactory();
$frsrf = new FRSReleaseFactory();
while ($row = db_fetch_array($res)) {
    if (!$G_RELEASE["{$row['group_id']}"]) {
        if ($frspf->userCanRead($row['group_id'], $row['package_id'], 100) && $frsrf->userCanRead($row['group_id'], $row['package_id'], $row_newrel['release_id'], 100)) {
            print "  <item>\n";
            print "   <title>" . htmlspecialchars($row['group_name'] . " " . $row['release_version']) . "</title>\n";
            print "   <link>" . get_server_url() . "/file/showfiles.php?group_id={$row['group_id']}</link>\n";
            print "   <description>" . rss_description($row['short_description']) . "</description>\n";
            print "  </item>\n";
            $outputtotal++;
            // ## eliminate dupes, only do $limit of these
            $G_RELEASE[$row['group_id']] = 1;
            if ($outputtotal >= $limit) {
                break;
            }
        }
    }
}
// ## end output
 /**
  * Function userCanRead : determine if the user can view this package or not
  *
  * @param int $user_id if not given or 0 take the current user
  * @return boolean true if user has Read access to this package, false otherwise
  */
 function userCanRead($user_id = 0)
 {
     $frspf = new FRSPackageFactory();
     return $frspf->userCanRead($this->getGroupID(), $this->getPackageID(), $user_id);
 }
//
require_once 'pre.php';
require_once 'common/frs/FRSPackageFactory.class.php';
require_once 'common/frs/FileModuleMonitorFactory.class.php';
if (user_isloggedin()) {
    $vFilemodule_id = new Valid_UInt('filemodule_id');
    $vFilemodule_id->required();
    if ($request->valid($vFilemodule_id)) {
        $filemodule_id = $request->get('filemodule_id');
        $pm = ProjectManager::instance();
        $um = UserManager::instance();
        $userHelper = new UserHelper();
        $currentUser = $um->getCurrentUser();
        $frspf = new FRSPackageFactory();
        $fmmf = new FileModuleMonitorFactory();
        if ($frspf->userCanRead($group_id, $filemodule_id, $currentUser->getId())) {
            $fmmf->processMonitoringActions($request, $currentUser, $group_id, $filemodule_id, $um, $userHelper);
            file_utils_header(array('title' => $Language->getText('file_showfiles', 'file_p_for', $pm->getProject($group_id)->getPublicName())));
            echo $fmmf->getMonitoringHTML($currentUser, $group_id, $filemodule_id, $um, $userHelper);
            file_utils_footer(array());
        } else {
            $GLOBALS['Response']->addFeedback('error', $Language->getText('file_filemodule_monitor', 'no_permission'));
            $GLOBALS['Response']->redirect('showfiles.php?group_id=' . $group_id);
        }
    } else {
        $GLOBALS['Response']->addFeedback('error', $Language->getText('file_filemodule_monitor', 'choose_p'));
        $GLOBALS['Response']->redirect('showfiles.php?group_id=' . $group_id);
    }
} else {
    exit_not_logged_in();
}