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) . ') ' . '<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; }
} 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))); } }
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(); }