function svn_header($params) { global $group_id, $Language, $there_are_specific_permissions; $params['toptab'] = 'svn'; $params['group'] = $group_id; $project = ProjectManager::instance()->getProject($group_id); $service = $project->getService('svn'); if (!$service) { exit_error($Language->getText('global', 'error'), $Language->getText('svn_utils', 'svn_off')); } $toolbar = array(); $toolbar[] = array('title' => $Language->getText('svn_utils', 'svn_info'), 'url' => '/svn/?func=info&group_id=' . $group_id); if ($project->isPublic() || user_isloggedin()) { $toolbar[] = array('title' => $Language->getText('svn_utils', 'browse_tree'), 'url' => '/svn/viewvc.php/?roottype=svn&root=' . $project->getUnixName(false)); } if (user_isloggedin()) { $toolbar[] = array('title' => $Language->getText('svn_utils', 'my_ci'), 'url' => '/svn/?func=browse&group_id=' . $group_id . '&set=my'); $toolbar[] = array('title' => $Language->getText('svn_utils', 'svn_query'), 'url' => '/svn/?func=browse&group_id=' . $group_id); } if (user_ismember($group_id, 'A') || user_ismember($group_id, 'SVN_ADMIN')) { $toolbar[] = array('title' => $Language->getText('svn_utils', 'svn_admin'), 'url' => '/svn/admin/?group_id=' . $group_id); if (isset($params['path']) && !empty($params['path'])) { // TODO: Validate the path $toolbar[] = array('title' => $Language->getText('svn_utils', 'notif'), 'url' => '/svn/admin/?group_id=' . $group_id . '&func=notification&path=' . $params['path']); } } if (!isset($params['help']) || !$params['help']) { $params['help'] = "svn.html"; } $toolbar[] = array('title' => $Language->getText('global', 'help'), 'url' => 'javascript:help_window(\'' . get_server_url() . '/doc/' . UserManager::instance()->getCurrentUser()->getShortLocale() . '/user-guide/' . $params['help'] . '\');'); $service->displayHeader($params['title'], array(array('title' => $params['title'], 'url' => '/svn/?group_id=' . $group_id)), $toolbar); }
/** * Constructor */ function PHPWikiService($id) { global $LANG, $is_wiki_page; //used so the search box will add the necessary element to the pop-up box $is_wiki_page = 1; /* * Check given id */ $this->gid = (int) $id; if (empty($this->gid)) { exit_no_group(); } $pm = ProjectManager::instance(); $go = $pm->getProject($this->gid); if (!$go) { exit_no_group(); } $this->wiki = new PHPWiki($this->gid); // Check access right $this->checkPermissions(); // If Wiki for project doesn't exist, propose creation ... if user is project admin or wiki admin if (!$this->wiki->exist()) { if (!user_ismember($this->gid, 'W2') && !user_ismember($this->gid, 'A')) { exit_wiki_empty(); } } // Set language for phpWiki if ($this->wiki->getLanguage_id()) { define('DEFAULT_LANGUAGE', $this->wiki->getLanguage_id()); $LANG = $this->wiki->getLanguage_id(); } }
function survey_header($params) { global $group_id, $is_admin_page, $Language; $params['toptab'] = 'survey'; $params['group'] = $group_id; $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); if (!$project->usesSurvey()) { exit_error($Language->getText('global', 'error'), $Language->getText('survey_s_utils', 's_off')); } site_project_header($params); echo "<P><B>"; // Admin link is displayed only if the user is a project administrator if (user_ismember($group_id, 'A')) { echo "<A HREF=\"/survey/admin/?group_id={$group_id}\">" . $Language->getText('survey_s_utils', 'admin') . "</A>"; } if ($is_admin_page && $group_id && user_ismember($group_id, 'A')) { echo " | <A HREF=\"/survey/admin/add_survey.php?group_id={$group_id}\">" . $Language->getText('survey_admin_index', 'add_s') . "</A>"; echo " | <A HREF=\"/survey/admin/edit_survey.php?func=browse&group_id={$group_id}\">" . $Language->getText('survey_admin_browse_survey', 'edit_s') . "</A>"; echo " | <A HREF=\"/survey/admin/add_question.php?group_id={$group_id}\">" . $Language->getText('survey_admin_index', 'add_q') . "</A>"; echo " | <A HREF=\"/survey/admin/edit_question.php?func=browse&group_id={$group_id}\">" . $Language->getText('survey_admin_browse_question', 'edit_q') . "</A>"; echo " | <A HREF=\"/survey/admin/show_results.php?group_id={$group_id}\">" . $Language->getText('survey_s_utils', 'show_r') . "</A>"; } if (isset($params['help'])) { if (user_ismember($group_id, 'A')) { echo ' | '; } echo help_button($params['help'], false, $Language->getText('global', 'help')); } echo "</B><P>"; }
private function checkAccess() { try { $project = $this->getProjectFromRequest(); } catch (Exception $e) { exit_error($GLOBALS['Language']->getText('global', 'error'), $GLOBALS['Language']->getText('include_html', 'g_not_exist')); } // admin pages can be reached by news admin (N2) or project admin (A) if (!user_ismember($project->getID(), 'A') && !user_ismember($project->getID(), 'N2')) { exit_error($GLOBALS['Language']->getText('news_admin_index', 'permission_denied'), $GLOBALS['Language']->getText('news_admin_index', 'need_to_be_admin')); } }
function header() { $request = HTTPRequest::instance(); $group_id = $request->get('group_id'); if ($this->getControler()->view == 'codendi_im_admin') { $GLOBALS['HTML']->header(array('title' => $this->_getTitle(), 'selected_top_tab' => 'admin')); } else { $GLOBALS['HTML']->header(array('title' => $this->_getTitle(), 'group' => $group_id, 'toptab' => 'IM')); if (user_ismember($request->get('group_id'))) { echo '<b><a href="/plugins/IM/?group_id=' . $request->get('group_id') . '&action=muc_logs">' . $GLOBALS['Language']->getText('plugin_im', 'toolbar_muc_logs') . '</a> | </b>'; } echo $this->_getHelp(); } }
function validate($data) { if (!$data['project']['built_from_template']) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('register_projectname', 'info_missed')); return false; } else { $pm = ProjectManager::instance(); $p = $pm->getProject($data['project']['built_from_template']); if (!$p->isTemplate() && !user_ismember($data['project']['built_from_template'], 'A')) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'perm_denied')); return false; } } return true; }
function PHPWikiServiceAdmin($id) { global $LANG, $is_wiki_page; //used so the search box will add the necessary element to the pop-up box $is_wiki_page = 1; $this->gid = (int) $id; if (empty($this->gid)) { exit_no_group(); } if (!user_ismember($this->gid, 'W2')) { exit_permission_denied(); } $this->wiki = new PHPWiki($this->gid); // If Wiki for project doesn't exist, propose creation... if (!$this->wiki->exist()) { header('Location: ' . PHPWIKI_PLUGIN_BASE_URL . '/index.php?group_id=' . $this->gid . '&view=install'); } // Set language for phpWiki if ($this->wiki->getLanguage_id()) { define('DEFAULT_LANGUAGE', $this->wiki->getLanguage_id()); $LANG = $this->wiki->getLanguage_id(); } }
function mail_header($params) { global $group_id, $Language; //required for site_project_header $params['group'] = $group_id; $params['toptab'] = 'mail'; $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); if (!$project->usesMail()) { exit_error($Language->getText('global', 'error'), $Language->getText('mail_utils', 'mail_turned_off')); } site_project_header($params); echo '<P><B>'; // admin link is only displayed if the user is a project administrator if (user_ismember($group_id, 'A')) { echo '<A HREF="/mail/admin/?group_id=' . $group_id . '">' . $Language->getText('mail_utils', 'admin') . '</A>'; echo ' | '; } if ($params['help']) { echo help_button($params['help'], false, $Language->getText('global', 'help')); } echo '</B><P>'; }
function _CodendiPassUser($UserName = '', $prefs = false) { if ($prefs) { $this->_prefs = $prefs; } /* Actually, we cannot set preferences here because PhpWiki instanciate * _PassUser class before. So we had to modify _PassUser constructor to instanciate CodendiUserPreferences instead of UserPreferences. * if (!$this->_prefs) { $this->_prefs = new CodendiUserPreferences(); $this->hasHomePage(); $this->getPreferences(); print_r($this->_prefs); }*/ $this->_userid = $UserName; if (!isset($this->_prefs->_method)) { _PassUser::_PassUser($this->_userid); } switch ($this->_userid) { case '': case 'NA': $this->_level = WIKIAUTH_ANON; break; case 'admin': $this->_level = WIKIAUTH_ADMIN; // admin Codendi break; default: $this->_level = WIKIAUTH_USER; } if (user_ismember(GROUP_ID, 'W2')) { $this->_level = WIKIAUTH_ADMIN; } //admin wiki $this->_authmethod = 'Codendi'; }
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GForge; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ require_once '../../env.inc.php'; require_once $gfwww . 'include/pre.php'; require_once $gfwww . 'survey/survey_utils.php'; $is_admin_page = 'y'; $group_id = getIntFromRequest('group_id'); $survey_id = getIntFromRequest('survey_id'); $customer_id = getIntFromRequest('customer_id'); survey_header(array('title' => _('Results'))); if (!session_loggedin() || !user_ismember($group_id, 'A')) { echo "<h1>" . _('Permission denied') . "</h1>"; survey_footer(array()); exit; } ?> <form action="none"> <?php /* Select this survey from the database */ $sql = "SELECT * FROM surveys WHERE survey_id='{$survey_id}' AND group_id='{$group_id}'"; $result = db_query($sql); echo "\n<h2>" . db_result($result, 0, "survey_title") . "</h2><p> </p>"; /*
exit_no_group(); } // Check permissions $Group =& group_get_object_by_name($projectName); if (!$Group || !is_object($Group) || $Group->isError()) { exit_no_group(); } if (!$Group->usesSCM()) { exit_error(_('Error'), _('Error - This project has turned off SCM.')); } // check if the scm_box is located in another server $scm_box = $Group->getSCMBox(); //$external_scm = (gethostbyname($sys_default_domain) != gethostbyname($scm_box)); $external_scm = !$sys_scm_single_host; if (session_loggedin()) { if (user_ismember($Group->getID())) { $perm =& $Group->getPermission(session_get_user()); if (!($perm && is_object($perm) && $perm->isCVSReader()) && !$Group->enableAnonSCM()) { exit_permission_denied(); } } else { if (!$Group->enableAnonSCM()) { exit_permission_denied(); } } } else { if (!$Group->enableAnonSCM()) { // user is not logged in... check if group accepts anonymous CVS exit_permission_denied(); } }
function outerTabs($params) { global $Language; $TABS_DIRS[] = '/'; $TABS_TITLES[] = $Language->getText('menu', 'home'); if (user_isloggedin()) { $TABS_DIRS[] = '/my/'; $TABS_TITLES[] = $Language->getText('menu', 'my_personal_page'); } if ($GLOBALS['sys_use_trove'] != 0) { $TABS_DIRS[] = '/softwaremap/'; $TABS_TITLES[] = $Language->getText('menu', 'projectree'); } if ($GLOBALS['sys_use_snippet'] != 0) { $TABS_DIRS[] = '/snippet/'; $TABS_TITLES[] = $Language->getText('menu', 'code_snippet'); } if (user_ismember(1, 'A')) { $TABS_DIRS[] = '/admin/'; $TABS_TITLES[] = $Language->getText('menu', 'admin'); } $TABS_DIRS[] = '/site/'; $TABS_TITLES[] = $Language->getText('include_layout', 'Help'); /* if (user_ismember($GLOBALS['sys_stats_group'])) { $TABS_DIRS[]='/reporting/'; $TABS_TITLES[]=$Language->getText('menu','reporting'); } */ $selected_top_tab = isset($params['selected_top_tab']) ? $params['selected_top_tab'] : ''; if (isset($params['group']) && $params['group']) { // get group info using the common result set $pm = ProjectManager::instance(); $project = $pm->getProject($params['group']); if ($project && is_object($project)) { if ($project->isError()) { } else { $selected = array_search("/softwaremap/", $TABS_DIRS); } } } else { if (strstr(getStringFromServer('REQUEST_URI'), '/my/') || strstr(getStringFromServer('REQUEST_URI'), '/themes/') || strstr(getStringFromServer('REQUEST_URI'), '/account/')) { $selected = array_search("/my/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), 'softwaremap')) { $selected = array_search("/softwaremap/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/snippet/')) { $selected = array_search("/snippet/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/site/')) { $selected = array_search("/site/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/reporting/')) { $selected = array_search('/reporting/', $TABS_DIRS); } elseif ((strstr(getStringFromServer('REQUEST_URI'), '/admin/') || $selected_top_tab == 'admin') && user_ismember(1, 'A')) { $selected = array_search('/admin/', $TABS_DIRS); } elseif ($selected_top_tab && array_search($selected_top_tab, $TABS_DIRS) !== FALSE) { $selected = array_search($selected_top_tab, $TABS_DIRS); } else { $selected = 0; } } echo $this->tabGenerator($TABS_DIRS, $TABS_TITLES, false, $selected, null, '100%'); }
private function isInDebugMode() { return ForgeConfig::get('DEBUG_MODE') && (ForgeConfig::get('DEBUG_DISPLAY_FOR_ALL') || user_ismember(1, 'A')); }
function check_cvs_access($username, $group_name, $cvspath) { $pm = ProjectManager::instance(); $project = $pm->getProjectByUnixName($group_name); //accept old url containing a .diff at the end of the filename if (strpos($cvspath, '.diff') == strlen($cvspath) - 5) { $cvspath = substr($cvspath, 0, strlen($cvspath) - 5); } // if the file path exists as such then it's a directory // else add the ,v extension because it's a file $path = "/cvsroot/" . $group_name . '/' . $cvspath; if (!is_dir($path)) { $path = $path . ',v'; } $mode = fileperms($path); // Also check permissions on top directory (in case of private repo) $mode_top = fileperms("/cvsroot/" . $group_name); // A directory that is not world readable can only be viewed // through viewvc if the user is a project member if ($project && (($mode_top & 0x4) == 0 || ($mode & 0x4) == 0) && !user_ismember($project->getID())) { return false; } else { return true; } }
function outerTabs($params) { global $Language, $sys_use_trove, $sys_use_snippet; $selected_top_tab = ''; if (isset($params['selected_top_tab'])) { $selected_top_tab = $params['selected_top_tab']; } $menuTree = new TreeNode(); $sthSelected = false; $menuTree->addChild(new TreeNode(array('link' => '/', 'title' => $Language->getText('menu', 'home')))); // We need to keep a reference on this node in order to set the // selected value in the data. See bottom of this function. $homeNode =& $menuTree->getChild(0); if (user_isloggedin()) { $selected = isset($params['selected_top_tab']) && $params['selected_top_tab'] == '/my/' || strstr(getStringFromServer('REQUEST_URI'), '/my/') || strstr(getStringFromServer('REQUEST_URI'), '/account/'); $sthSelected = $sthSelected || $selected; $mynode = new TreeNode(array('link' => '/my/', 'title' => $Language->getText('menu', 'my_personal_page'), 'selected' => $selected)); if ($selected) { $selected = isset($params['selected_top_tab']) && $params['selected_top_tab'] == '/my/' || (bool) strstr(getStringFromServer('REQUEST_URI'), '/my/'); $mynode->addChild(new TreeNode(array('link' => '/my/', 'title' => $Language->getText('my_index', 'my_dashboard'), 'selected' => $selected))); $selected = (bool) strstr(getStringFromServer('REQUEST_URI'), '/account/'); $mynode->addChild(new TreeNode(array('link' => '/account/', 'title' => $Language->getText('my_index', 'account_maintenance'), 'selected' => $selected))); } $menuTree->addChild($mynode); } else { $selected = (bool) strstr(getStringFromServer('REQUEST_URI'), '/my/'); $sthSelected = $sthSelected || $selected; $menuTree->addChild(new TreeNode(array('link' => '/my/', 'title' => $Language->getText('menu', 'my_personal_page'), 'selected' => $selected))); } if ($GLOBALS['sys_use_trove'] != 0 || isset($params['group']) && $params['group']) { $selected = false; if (isset($params['group']) && $params['group']) { // get group info using the common result set $pm = ProjectManager::instance(); $project = $pm->getProject($params['group']); if ($project && is_object($project)) { if ($project->isError()) { die('is error'); } else { $sthSelected = true; $projTree = $this->project_tabs($params['toptab'], $params['group']); $projTree->setData(array('link' => '/softwaremap/', 'title' => $Language->getText('menu', 'projectree'), 'selected' => true)); //'link'=>'/projects/'.$project->getUnixName().'/' //,'title'=>$project->getPublicName() //,'selected' => true)); $menuTree->addChild($projTree); } } } else { $selected = (bool) strstr(getStringFromServer('REQUEST_URI'), 'softwaremap'); $sthSelected = $sthSelected || $selected; $menuTree->addChild(new TreeNode(array('link' => '/softwaremap/', 'title' => $Language->getText('menu', 'projectree'), 'selected' => $selected))); } } if ($GLOBALS['sys_use_snippet'] != 0) { $selected = (bool) strstr(getStringFromServer('REQUEST_URI'), '/snippet/'); $sthSelected = $sthSelected || $selected; $menuTree->addChild(new TreeNode(array('link' => '/snippet/', 'title' => $Language->getText('menu', 'code_snippet'), 'selected' => $selected))); } if (user_ismember(1, 'A')) { $selected = strpos(getStringFromServer('REQUEST_URI'), '/admin/') === 0 || $selected_top_tab === 'admin'; $sthSelected = $sthSelected || $selected; $menuTree->addChild(new TreeNode(array('link' => '/admin/', 'title' => $Language->getText('menu', 'admin'), 'selected' => $selected))); } $selected = (bool) (strstr(getStringFromServer('REQUEST_URI'), '/site/') || $selected_top_tab === 'site'); $sthSelected = $sthSelected || $selected; $menuTree->addChild(new TreeNode(array('link' => '/site/', 'title' => $Language->getText('include_layout', 'Help'), 'selected' => $selected))); $additional_tabs = array(); include $GLOBALS['Language']->getContent('layout/extra_tabs', null, null, '.php'); foreach ($additional_tabs as $t) { $sthSelected = $sthSelected || $t['selected']; $menuTree->addChild(new TreeNode($t)); } // Set selected value for 'home' link (this is the selected tab // if no other was previously selected) $homeNodeData =& $homeNode->getData(); $homeNodeData['selected'] = !$sthSelected; $buildMenuVisitor = new BuildMenuVisitor(); $menuTree->accept($buildMenuVisitor); echo $buildMenuVisitor->getHtml(); }
/** * displayMenu - public */ function displayMenu() { print ' <table class="ServiceMenu"> <tr> <td>'; switch (DEFAULT_LANGUAGE) { case 'fr_FR': $attatch_page = "DéposerUnFichier"; $preferences_page = "PréférencesUtilisateurs"; break; case 'en_US': default: $attatch_page = 'UpLoad'; $preferences_page = 'UserPreferences'; break; } $attatch_menu = $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'menuattch'); $preferences_menu = $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'menuprefs'); $help_menu = $GLOBALS['Language']->getText('global', 'help'); print ' <ul class="ServiceMenu"> <li><a href="' . $this->wikiLink . '&view=browsePages">' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'menupages') . '</a> | </li>'; if (UserManager::instance()->getCurrentUser()->isLoggedIn()) { print '<li><a href="javascript:help_window(\'' . $this->wikiLink . '&pagename=' . $attatch_page . '&pv=1\')">' . $attatch_menu . '</a> | </li>'; print '<li><a href="' . $this->wikiLink . '&pagename=' . $preferences_page . '">' . $preferences_menu . '</a> | </li>'; } if (user_ismember($this->gid, 'W2')) { print '<li><a href="' . $this->wikiAdminLink . '">' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'menuadmin') . '</a> | </li>'; } print '<li>' . help_button('WikiService.html', false, $help_menu) . '</li> </ul>'; print ' </td> <td align="right" valign="top">'; if (user_ismember($this->gid, 'W2')) { $wiki = new Wiki($this->gid); $permInfo = ""; if ('wiki' == $this->view) { // User is browsing a wiki page $wp = new WikiPage($this->gid, $_REQUEST['pagename']); $permLink = $this->wikiAdminLink . '&view=pagePerms&id=' . $wp->getId(); if ($wp->permissionExist()) { $permInfo = '<a href="' . $permLink . '"> ' . '<img src="' . util_get_image_theme("ic/lock.png") . '" border="0" alt="' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'lock_alt') . '" title="' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'lock_title_spec') . '"/></a>'; } } if ($wiki->permissionExist()) { $permInfo .= '<a href="/wiki/admin/index.php?group_id=' . $this->gid . '&view=wikiPerms"> ' . '<img src="' . util_get_image_theme("ic/lock.png") . '" border="0" alt="' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'lock_alt') . '" title="' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'lock_title_set') . '"/>' . '</a>'; } if ($permInfo) { print $permInfo; } } //Display printer_version link only in wiki pages if (isset($_REQUEST['pagename'])) { print ' (<a href="' . $_SERVER['REQUEST_URI'] . '&pv=1" title="' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'lighter_display') . '"> <img src="' . util_get_image_theme("msg.png") . '" border="0"> ' . $GLOBALS['Language']->getText('global', 'printer_version') . '</A> ) </li>'; } print ' </td> </tr> </table>'; }
// Codendi // Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights reserved // http://www.codendi.com // // // // Originally written by Quentin Cregan, SourceForge 06/2000 // Modified by Laurent Julliard 2001-2004, Codendi Team, Xerox require_once 'pre.php'; require_once '../doc_utils.php'; require_once 'www/project/admin/project_admin_utils.php'; require_once 'www/project/admin/permissions.php'; if (!$group_id) { exit_no_group(); } if (!user_ismember($group_id, "D2")) { $feedback .= $Language->getText('docman_admin_index', 'error_perm'); exit_permission_denied(); } function main_page($group_id) { global $Language; docman_header_admin(array('title' => $Language->getText('docman_admin_index', 'title'))); echo '<h2>' . $Language->getText('docman_admin_index', 'header_doc_mgt') . '</h2>'; display_docs($group_id); docman_footer(array()); } function group_main_page($group_id) { global $Language; docman_header_admin(array('title' => $Language->getText('docman_admin_index', 'title_group_mgt')));
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // require_once 'pre.php'; require '../people_utils.php'; if (user_ismember(1, 'A')) { if ($post_changes) { /* Update the database */ if ($people_cat) { $sql = "INSERT INTO people_job_category (name) VALUES ('{$cat_name}')"; $result = db_query($sql); if (!$result) { echo db_error(); $feedback .= ' ' . $Language->getText('people_admin_index', 'insert_error') . ' '; } $feedback .= ' ' . $Language->getText('people_admin_index', 'category_inserted') . ' '; } else { if ($people_skills) { $sql = "INSERT INTO people_skill (name) VALUES ('{$skill_name}')"; $result = db_query($sql); if (!$result) { echo db_error(); $feedback .= ' ' . $Language->getText('people_admin_index', 'insert_error') . ' '; }
function frs_process_release_form($is_update, $request, $group_id, $title, $url) { global $frspf, $frsrf, $frsff; $pm = ProjectManager::instance(); //get and filter all inputs from $request $release = array(); $res = $request->get('release'); $vName = new Valid_String(); $vPackage_id = new Valid_UInt(); $vStatus_id = new Valid_UInt(); if ($vName->validate($res['name']) && $vPackage_id->validate($res['package_id']) && $vStatus_id->validate($res['status_id'])) { $release['status_id'] = $res['status_id']; $release['name'] = $res['name']; $release['package_id'] = $res['package_id']; } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_update_failed')); $GLOBALS['Response']->redirect('/file/showfiles.php?group_id=' . $group_id); } $um = UserManager::instance(); $user = $um->getCurrentUser(); $vDate = new Valid_String(); if ($vDate->validate($res['date'])) { $release['date'] = $res['date']; } else { $release['date'] = ""; } $vRelease_notes = new Valid_Text(); if ($vRelease_notes->validate($res['release_notes'])) { $release['release_notes'] = $res['release_notes']; } else { $release['release_notes'] = ""; } $vChange_log = new Valid_Text(); if ($vChange_log->validate($res['change_log'])) { $release['change_log'] = $res['change_log']; } else { $release['change_log'] = ""; } if ($request->valid(new Valid_String('js'))) { $js = $request->get('js'); } else { $js = ""; } if ($request->validArray(new Valid_String('ftp_file'))) { $ftp_file = $request->get('ftp_file'); } else { $ftp_file = array(); } if ($request->validArray(new Valid_UInt('file_processor'))) { $file_processor = $request->get('file_processor'); } else { $file_processor = array(); } if ($request->validArray(new Valid_UInt('file_type'))) { $file_type = $request->get('file_type'); } else { $file_type = array(); } if ($request->validArray(new Valid_String('reference_md5'))) { $reference_md5 = $request->get('reference_md5'); } else { $reference_md5 = array(); } if ($request->validArray(new Valid_String('comment'))) { $comment = $request->get('comment'); } else { $comment = array(); } if ($request->validArray(new Valid_UInt('ftp_file_processor'))) { $ftp_file_processor = $request->get('ftp_file_processor'); } else { $ftp_file_processor = array(); } if ($request->validArray(new Valid_UInt('ftp_file_type'))) { $ftp_file_type = $request->get('ftp_file_type'); } else { $ftp_file_type = array(); } if ($request->validArray(new Valid_String('ftp_reference_md5'))) { $ftp_reference_md5 = $request->get('ftp_reference_md5'); } else { $ftp_reference_md5 = array(); } if ($request->valid(new Valid_String('release_news_subject'))) { $release_news_subject = $request->get('release_news_subject'); } else { $release_news_subject = ""; } if ($request->valid(new Valid_Text('release_news_details'))) { $release_news_details = $request->get('release_news_details'); } else { $release_news_details = ""; } if ($request->valid(new Valid_WhiteList('private_news', array(0, 1)))) { $private_news = $request->get('private_news'); } else { $private_news = 0; } if ($request->validArray(new Valid_UInt('ugroups'))) { $ugroups = $request->get('ugroups'); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_update_failed')); $GLOBALS['Response']->redirect('/file/showfiles.php?group_id=' . $group_id); } if ($request->valid(new Valid_WhiteList('release_submit_news', array(0, 1)))) { $release_submit_news = (int) $request->get('release_submit_news'); } else { $release_submit_news = 0; } if ($request->valid(new Valid_WhiteList('notification', array(0, 1)))) { $notification = $request->get('notification'); } else { $notification = 0; } if ($is_update) { if ($request->validArray(new Valid_UInt('release_files_to_delete'))) { $release_files_to_delete = $request->get('release_files_to_delete'); } else { $release_files_to_delete = array(); } if ($request->validArray(new Valid_UInt('release_files'))) { $release_files = $request->get('release_files'); } else { $release_files = array(); } if ($request->validArray(new Valid_UInt('release_file_processor'))) { $release_file_processor = $request->get('release_file_processor'); } else { $release_file_processor = array(); } if ($request->validArray(new Valid_UInt('release_file_type'))) { $release_file_type = $request->get('release_file_type'); } else { $release_file_type = array(); } if ($request->validArray(new Valid_String('release_reference_md5'))) { $release_reference_md5 = $request->get('release_reference_md5'); } else { $release_reference_md5 = array(); } if ($request->validArray(new Valid_UInt('new_release_id'))) { $new_release_id = $request->get('new_release_id'); } else { $new_release_id = array(); } if ($request->validArray(new Valid_String('release_time'))) { $release_time = $request->get('release_time'); } else { $release_time = array(); } if ($request->validArray(new Valid_String('reference_md5'))) { $reference_md5 = $request->get('reference_md5'); } else { $reference_md5 = array(); } if ($request->validArray(new Valid_Text('release_comment'))) { $release_comment = $request->get('release_comment'); } else { $release_comment = array(); } if ($request->valid(new Valid_UInt('id'))) { $release['release_id'] = $request->get('id'); } else { exit; } } $validator = new frsValidator(); if ($is_update) { $valid = $validator->isValidForUpdate($release, $group_id); } else { $valid = $validator->isValidForCreation($release, $group_id); } if ($valid) { //uplaod release_notes and change_log if needed $data_uploaded = false; if (isset($_FILES['uploaded_change_log']) && !$_FILES['uploaded_change_log']['error']) { $code = addslashes(fread(fopen($_FILES['uploaded_change_log']['tmp_name'], 'r'), file_utils_get_size($_FILES['uploaded_change_log']['tmp_name']))); if (strlen($code) > 0 && strlen($code) < $GLOBALS['sys_max_size_upload']) { //size is fine $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'data_uploaded')); $data_uploaded = true; $release['change_log'] = $code; } else { //too big or small $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'length_err', $GLOBALS['sys_max_size_upload'])); } } if (isset($_FILES['uploaded_release_notes']) && !$_FILES['uploaded_release_notes']['error']) { $code = addslashes(fread(fopen($_FILES['uploaded_release_notes']['tmp_name'], 'r'), file_utils_get_size($_FILES['uploaded_release_notes']['tmp_name']))); if (strlen($code) > 0 && strlen($code) < $GLOBALS['sys_max_size_upload']) { //size is fine if (!$data_uploaded) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'data_uploaded')); } $release['release_notes'] = $code; } else { //too big or small $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'length_err', $GLOBALS['sys_max_size_upload'])); } } if ($is_update) { // make sure that we don't change the date by error because of timezone reasons. // eg: release created in India (GMT +5:30) at 2004-06-03. // MLS in Los Angeles (GMT -8) changes the release notes // the release_date that we showed MLS is 2004-06-02. // with mktime(0,0,0,2,6,2004); we will change the unix time in the database // and the people in India will discover that their release has been created on 2004-06-02 $rel =& $frsrf->getFRSReleaseFromDb($release['release_id']); if (format_date('Y-m-d', $rel->getReleaseDate()) == $release['date']) { // the date didn't change => don't update it $unix_release_time = $rel->getReleaseDate(); } else { $date_list = split("-", $release['date'], 3); $unix_release_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); } } else { //parse the date $date_list = split("-", $release['date'], 3); $unix_release_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); } //now we create or update the release $array = array('release_date' => $unix_release_time, 'name' => $release['name'], 'status_id' => $release['status_id'], 'package_id' => $release['package_id'], 'notes' => $release['release_notes'], 'changes' => $release['change_log']); if ($is_update) { $array['release_id'] = $release['release_id']; } if ($is_update) { $res = $frsrf->update($array); if (!$res) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_update_failed')); //insert failed - go back to definition screen } else { //release added - now show the detail page for this new release $release_id = $array['release_id']; $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_updated', $release['name'])); } } else { $res = $frsrf->create($array); if (!$res) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language'] > getText('file_admin_editreleases', 'add_rel_fail')); //insert failed - go back to definition screen } else { //release added - now show the detail page for this new release $release_id = $res; $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_added')); } } if ($res) { // extract cross references $reference_manager =& ReferenceManager::instance(); $reference_manager->extractCrossRef($release['release_notes'], $release_id, ReferenceManager::REFERENCE_NATURE_RELEASE, $group_id); $reference_manager->extractCrossRef($release['change_log'], $release_id, ReferenceManager::REFERENCE_NATURE_RELEASE, $group_id); //set the release permissions list($return_code, $feedbacks) = permission_process_selection_form($group_id, 'RELEASE_READ', $release_id, $ugroups); if (!$return_code) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editpackages', 'perm_update_err')); $GLOBALS['Response']->addFeedback('error', $feedbacks); } //submit news if requested if ($release_id && user_ismember($group_id, 'A') && $release_submit_news) { news_submit($group_id, $release_news_subject, $release_news_details, $private_news, 3); } // Send notification if ($notification) { $rel = $frsrf->getFRSReleaseFromDb($release_id); $count = $frsrf->emailNotification($rel); if ($count === false) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'mail_failed', array($GLOBALS['sys_email_admin']))); } else { if ($count > 0) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'email_sent', $count)); } } } $group = $pm->getProject($group_id); $group_unix_name = $group->getUnixName(false); $project_files_dir = $GLOBALS['ftp_frs_dir_prefix'] . '/' . $group_unix_name; if ($is_update) { $files =& $rel->getFiles(); //remove files foreach ($release_files_to_delete as $rel_file) { $res =& $frsff->getFRSFileFromDb($rel_file); $fname = $res->getFileName(); $res = $frsff->delete_file($group_id, $rel_file); if ($res == 0) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'f_not_yours', basename($fname))); } else { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'file_deleted', basename($fname))); } } //update files $index = 0; foreach ($release_files as $rel_file) { if (!$release_files_to_delete || !in_array($rel_file, $release_files_to_delete)) { $package_id = $release['package_id']; $fname = $files[$index]->getFileName(); $list = split('/', $fname); $fname = $list[sizeof($list) - 1]; if ($new_release_id[$index] != $release_id) { //changing to a different release for this file //see if the new release is valid for this project $res2 = $frsrf->getFRSReleaseFromDb($new_release_id[$index], $group_id); if (!$res2 || count($res2) < 1) { //release not found for this project $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_not_yours', $fname)); } else { $package_id = $res2->getPackageID(); } } if ($new_release_id[$index] == $release_id || $res2) { if (!ereg("[0-9]{4}-[0-9]{2}-[0-9]{2}", $release_time[$index])) { $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('file_admin_editreleases', 'data_not_parsed_file', $fname)); } else { $res2 =& $frsff->getFRSFileFromDb($rel_file); if (format_date('Y-m-d', $res2->getReleaseTime()) == $release_time[$index]) { $unix_release_time = $res2->getReleaseTime(); } else { $date_list = split("-", $release_time[$index], 3); $unix_release_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); } $array = array('release_id' => $new_release_id[$index], 'release_time' => $unix_release_time, 'type_id' => $release_file_type[$index], 'processor_id' => $release_file_processor[$index], 'file_id' => $rel_file, 'comment' => $release_comment[$index], 'filename' => 'p' . $package_id . '_r' . $new_release_id[$index] . '/' . $fname, 'filepath' => 'p' . $package_id . '_r' . $new_release_id[$index] . '/' . $fname . '_' . $unix_release_time); if ($release_reference_md5[$index] && $release_reference_md5[$index] != '') { $array['reference_md5'] = $release_reference_md5[$index]; } $res = $frsff->update($array); if ($res) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'file_updated', $fname)); } } } } $index++; } } //add new files //files processing $http_files_list = array(); $processor_type_list = array(); $file_type_list = array(); $http_files_processor_type_list = array(); $ftp_files_processor_type_list = array(); if (isset($js) && $js == 'no_js') { //if javascript is not allowed, there is maximum one file to upload // TODO : fix warnings due to array instead of string for "file_processor", "file_type" & "reference_md5" if ($ftp_file[0] != -1) { $ftp_files_processor_type_list[] = array('name' => $ftp_file[0], 'processor' => $file_processor, 'type' => $file_type, 'reference_md5' => $reference_md5, 'comment' => $comment); } else { if (trim($_FILES['file']['name'][0]) != '') { $http_files_processor_type_list[] = array('error' => $_FILES['file']['error'][0], 'name' => stripslashes($_FILES['file']['name'][0]), 'tmp_name' => $_FILES['file']['tmp_name'][0], 'processor' => $file_processor, 'type' => $file_type, 'reference_md5' => $reference_md5, 'comment' => $comment); } } } else { //get http files with the associated processor type and file type in allowed javascript case $nb_files = isset($_FILES['file']) ? count($_FILES['file']['name']) : 0; for ($i = 0; $i < $nb_files; $i++) { if (trim($_FILES['file']['name'][$i]) != '') { $http_files_processor_type_list[] = array('error' => $_FILES['file']['error'][$i], 'name' => stripslashes($_FILES['file']['name'][$i]), 'tmp_name' => $_FILES['file']['tmp_name'][$i], 'processor' => $file_processor[$i], 'type' => $file_type[$i], 'reference_md5' => $reference_md5[$i], 'comment' => $comment[$i]); } } //remove hidden ftp_file input (if the user let the select boxe on --choose file) $tmp_file_list = array(); $index = 0; foreach ($ftp_file as $file) { if (trim($file) != '') { $ftp_files_processor_type_list[] = array('name' => $file, 'processor' => $ftp_file_processor[$index], 'type' => $ftp_file_type[$index], 'reference_md5' => $ftp_reference_md5[$index]); $index++; } } } if (count($http_files_processor_type_list) > 0 || count($ftp_files_processor_type_list) > 0) { //see if this release belongs to this project $res1 =& $frsrf->getFRSReleaseFromDb($release_id, $group_id); if (!$res1 || count($res1) < 1) { //release not found for this project $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'rel_not_yours')); } else { $now = time(); $addingFiles = false; //iterate and add the http files to the frs_file table foreach ($http_files_processor_type_list as $file) { $filename = $file['name']; if (isset($file['error'])) { switch ($file['error']) { case UPLOAD_ERR_OK: // all is OK break; case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_size', $file['error'])); break; case UPLOAD_ERR_PARTIAL: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_partial', $file['error'])); break; case UPLOAD_ERR_NO_FILE: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_nofile', $file['error'])); break; default: $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'error_upload_unknown', $file['error'])); } } if (is_uploaded_file($file['tmp_name'])) { $uploaddir = $frsff->getSrcDir($request->getProject()); $uploadfile = $uploaddir . "/" . basename($filename); if (!file_exists($uploaddir) || !is_writable($uploaddir) || !move_uploaded_file($file['tmp_name'], $uploadfile)) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'not_add_file') . ": " . basename($filename)); } else { $newFile = new FRSFile(); $newFile->setRelease($res1); $newFile->setFileName($filename); $newFile->setProcessorID($file['processor']); $newFile->setTypeID($file['type']); $newFile->setReferenceMd5($file['reference_md5']); $newFile->setUserId($user->getId()); $newFile->setComment($file['comment']); try { $frsff->createFile($newFile); $addingFiles = true; } catch (Exception $e) { $GLOBALS['Response']->addFeedback('error', $e->getMessage()); } } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'not_add_file') . ": " . basename($filename)); } } //iterate and add the ftp files to the frs_file table foreach ($ftp_files_processor_type_list as $file) { $filename = $file['name']; $newFile = new FRSFile(); $newFile->setRelease($res1); $newFile->setFileName($filename); $newFile->setProcessorID($file['processor']); $newFile->setTypeID($file['type']); $newFile->setReferenceMd5($file['reference_md5']); $newFile->setUserId($user->getId()); try { $frsff->createFile($newFile, ~FRSFileFactory::COMPUTE_MD5); $addingFiles = true; $em = EventManager::instance(); $em->processEvent(Event::COMPUTE_MD5SUM, array('fileId' => $newFile->getFileID())); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'offline_md5', $filename)); } catch (Exception $e) { $GLOBALS['Response']->addFeedback('error', $e->getMessage()); } } } if ($addingFiles) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('file_admin_editreleases', 'add_files')); } } //redirect to files $GLOBALS['Response']->redirect('/file/?group_id=' . $group_id); } } else { $GLOBALS['Response']->addFeedback('error', $validator->getErrors()); } frs_display_release_form($is_update, $release, $group_id, $title, $url); }
function mainMenu($params) { global $sys_use_trove, $sys_use_snippet, $sys_use_people; $TABS_DIRS[] = '/'; $TABS_DIRS[] = '/my/'; if ($sys_use_trove) { $TABS_DIRS[] = '/softwaremap/'; } if ($sys_use_snippet) { $TABS_DIRS[] = '/snippet/'; } if ($sys_use_people) { $TABS_DIRS[] = '/people/'; } $TABS_TITLES[] = _('Home'); $TABS_TITLES[] = _('My Page'); if ($sys_use_trove) { $TABS_TITLES[] = _('Project Tree'); } if ($sys_use_snippet) { $TABS_TITLES[] = _('Code Snippets'); } if ($sys_use_people) { $TABS_TITLES[] = _('Project Openings'); } // outermenu hook $PLUGIN_TABS_DIRS = array(); $hookParams['DIRS'] =& $PLUGIN_TABS_DIRS; $hookParams['TITLES'] =& $TABS_TITLES; plugin_hook("outermenu", $hookParams); $TABS_DIRS = array_merge($TABS_DIRS, $PLUGIN_TABS_DIRS); if (user_ismember(1, 'A')) { $TABS_DIRS[] = '/admin/'; $TABS_TITLES[] = _('Admin'); } if (user_ismember($GLOBALS['sys_stats_group'])) { $TABS_DIRS[] = '/reporting/'; $TABS_TITLES[] = _('Reporting'); } if (isset($params['group']) && $params['group']) { // get group info using the common result set $project =& group_get_object($params['group']); if ($project && is_object($project)) { if ($project->isError()) { } elseif (!$project->isProject()) { } else { if (isset($GLOBALS['sys_noforcetype']) && $GLOBALS['sys_noforcetype']) { $TABS_DIRS[] = '/project/?group_id=' . $params['group']; } else { $TABS_DIRS[] = '/projects/' . $project->getUnixName() . '/'; } $TABS_TITLES[] = $project->getPublicName(); $selected = count($TABS_DIRS) - 1; } } } elseif (strstr(getStringFromServer('REQUEST_URI'), '/my/') || strstr(getStringFromServer('REQUEST_URI'), '/account/') || strstr(getStringFromServer('REQUEST_URI'), '/themes/')) { $selected = array_search("/my/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), 'softwaremap')) { $selected = array_search("/softwaremap/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/snippet/')) { $selected = array_search("/snippet/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/people/')) { $selected = array_search("/people/", $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/reporting/')) { $selected = array_search('/reporting/', $TABS_DIRS); } elseif (strstr(getStringFromServer('REQUEST_URI'), '/admin/') && user_ismember(1, 'A')) { $selected = array_search('/admin/', $TABS_DIRS); } elseif (count($PLUGIN_TABS_DIRS) > 0) { foreach ($PLUGIN_TABS_DIRS as $PLUGIN_TABS_DIRS_VALUE) { if (strstr($GLOBALS['REQUEST_URI'], $PLUGIN_TABS_DIRS_VALUE)) { $selected = array_search($PLUGIN_TABS_DIRS_VALUE, $TABS_DIRS); break; } } } else { $selected = 0; } if (!isset($this->COLOR_SELECTED_TAB)) { $this->COLOR_SELECTED_TAB = '#e0e0e0'; } echo $this->tabGenerator($TABS_DIRS, $TABS_TITLES, false, $selected, $this->COLOR_SELECTED_TAB, '100%'); }
/** * Display the list of attached files * * @param group_id: the group id * @param group_artifact_id: the artifact type ID * @param ascii: ascii mode * * @return void */ function showAttachedFiles($group_id, $group_artifact_id, $ascii = false, $pv = 0) { global $Language; $hp = $this->getHtmlPurifier(); // // show the files attached to this artifact // $result = $this->getAttachedFiles(); $rows = db_numrows($result); // No file attached -> return now if ($rows <= 0) { if ($ascii) { $out = $Language->getText('tracker_include_artifact', 'no_file_attached') . $GLOBALS['sys_lf']; } else { $out = '<H4>' . $Language->getText('tracker_include_artifact', 'no_file_attached') . '</H4>'; } return $out; } // Header first if ($ascii) { $out = $Language->getText('tracker_include_artifact', 'file_attachment') . $GLOBALS['sys_lf'] . str_repeat("*", strlen($Language->getText('tracker_include_artifact', 'file_attachment'))); } else { $title_arr = array(); $title_arr[] = $Language->getText('tracker_include_artifact', 'name'); $title_arr[] = $Language->getText('tracker_include_artifact', 'desc'); $title_arr[] = $Language->getText('tracker_include_artifact', 'size_kb'); $title_arr[] = $Language->getText('global', 'by'); $title_arr[] = $Language->getText('tracker_include_artifact', 'posted_on'); if ($pv == 0) { $title_arr[] = $Language->getText('tracker_include_canned', 'delete'); } $out = html_build_list_table_top($title_arr); } // Determine what the print out format is based on output type (Ascii, HTML) if ($ascii) { $fmt = $GLOBALS['sys_lf'] . $GLOBALS['sys_lf'] . "------------------------------------------------------------------" . $GLOBALS['sys_lf'] . $Language->getText('tracker_import_utils', 'date') . ": %s " . $Language->getText('tracker_include_artifact', 'name') . ": %s " . $Language->getText('tracker_include_artifact', 'size') . ": %dKB " . $Language->getText('global', 'by') . ": %s" . $GLOBALS['sys_lf'] . "%s" . $GLOBALS['sys_lf'] . "%s"; } else { $fmt = "" . $GLOBALS['sys_lf'] . '<TR class="%s"><td>%s</td><td>%s</td><td align="center">%s</td><td align="center">%s</td><td align="center">%s</td>'; if ($pv == 0) { $fmt .= '<td align="center">%s</td>'; } $fmt .= '</tr>'; } // Determine which protocl to use for embedded URL in ASCII format $server = get_server_url(); // Loop throuh the attached files and format them for ($i = 0; $i < $rows; $i++) { $artifact_file_id = db_result($result, $i, 'id'); $href = "/tracker/download.php?artifact_id=" . (int) $this->getID() . "&id=" . (int) $artifact_file_id; if ($ascii) { $out .= sprintf($fmt, format_date($GLOBALS['Language']->getText('system', 'datefmt'), db_result($result, $i, 'adddate')), db_result($result, $i, 'filename'), intval(db_result($result, $i, 'filesize') / 1024), db_result($result, $i, 'user_name'), SimpleSanitizer::unsanitize(db_result($result, $i, 'description')), $server . $href); } else { // show CC delete icon if one of the condition is met: // (a) current user is group member // (b) the current user is the person who added a gieven name in CC list if (user_ismember($this->ArtifactType->getGroupID()) || user_getname(user_getid()) == db_result($result, $i, 'user_name')) { $html_delete = '<a href="?func=delete_file&group_id=' . (int) $group_id . "&atid=" . (int) $group_artifact_id . "&aid=" . (int) $this->getID() . "&id=" . (int) db_result($result, $i, 'id') . '" ' . ' onClick="return confirm(\'' . $Language->getText('tracker_include_artifact', 'delete_attachment') . '\')">' . '<IMG SRC="' . util_get_image_theme("ic/trash.png") . '" HEIGHT="16" WIDTH="16" BORDER="0" ALT="' . $Language->getText('global', 'btn_delete') . '"></A>'; } else { $html_delete = '-'; } $out .= sprintf($fmt, util_get_alt_row_color($i), '<a href="' . $href . '">' . $hp->purify(db_result($result, $i, 'filename'), CODENDI_PURIFIER_CONVERT_HTML) . '</a>', $hp->purify(SimpleSanitizer::unsanitize(db_result($result, $i, 'description')), CODENDI_PURIFIER_BASIC, $group_id), intval(db_result($result, $i, 'filesize') / 1024), util_user_link(db_result($result, $i, 'user_name')), format_date($GLOBALS['Language']->getText('system', 'datefmt'), db_result($result, $i, 'adddate')), $html_delete); } } // for // final touch... $out .= $ascii ? "" . $GLOBALS['sys_lf'] . "" : "</TABLE>"; return $out; }
if ($rows < 1) { echo ' <H4>No Queued Items Found For Project: ' . group_getname($group_id) . '</H1>'; } else { echo ' <H4>These News Items Were Submitted For Project: ' . group_getname($group_id) . '</H4> <P>'; for ($i = 0; $i < $rows; $i++) { echo ' <A HREF="/news/admin/?approve=1&id=' . db_result($result, $i, 'id') . '&group_id=' . db_result($result, $i, 'group_id') . '">' . db_result($result, $i, 'summary') . '</A><BR>'; } } } news_footer(array()); } else { if (user_ismember($sys_news_group, 'A')) { /* News uber-user admin pages Show all waiting news items except those already rejected. Admin members of $sys_news_group (news project) can edit/change/approve news items */ if ($post_changes) { if ($approve) { if ($status == 1) { /* Update the db so the item shows on the home page */ // 2003-03-27 don't change date keep the existing one by helix // $sql="UPDATE news_bytes SET is_approved='1', date='".time()."', ". $sql = "UPDATE news_bytes SET is_approved='1', " . "summary='" . htmlspecialchars($summary) . "', details='" . htmlspecialchars($details) . "' WHERE id='{$id}'"; $result = db_query($sql);
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // $Id: edit_question.php,v 1.3 2003/11/27 15:05:42 helix Exp $ require 'pre.php'; require '../survey_utils.php'; $is_admin_page = 'y'; if ($group_id && $question_id) { if (!user_isloggedin() || !user_ismember($group_id, 'A')) { exit_permission_denied(); exit; } survey_header(array('title' => 'Edit A Question')); if ($post_changes) { $sql = "UPDATE survey_questions SET question='" . htmlspecialchars($question) . "', question_type='{$question_type}' where question_id='{$question_id}' AND group_id='{$group_id}'"; $result = db_query($sql); if (db_affected_rows($result) < 1) { $feedback .= ' UPDATE FAILED '; } else { $feedback .= ' UPDATE SUCCESSFUL '; } } $sql = "SELECT * FROM survey_questions WHERE question_id='{$question_id}' AND group_id='{$group_id}'"; $result = db_query($sql); if ($result) { $question = db_result($result, 0, "question"); $question_type = db_result($result, 0, "question_type");
require_once 'common/frs/FileModuleMonitorFactory.class.php'; require_once 'common/permission/PermissionsManager.class.php'; require_once 'common/user/UserManager.class.php'; define("FRS_EXPANDED_ICON", util_get_image_theme("ic/toggle_minus.png")); define("FRS_COLLAPSED_ICON", util_get_image_theme("ic/toggle_plus.png")); $authorized_user = false; $hp = Codendi_HTMLPurifier::instance(); $request =& HTTPRequest::instance(); $vGroupId = new Valid_GroupId(); $vGroupId->required(); if ($request->valid($vGroupId)) { $group_id = $request->get('group_id'); } 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');
$bar_colors = array("yellow", "green"); $bar_colors = array("#FFD600", "#489E48"); function patch_reporting_header($group_id) { reports_header($group_id, array('aging', 'tech', 'category'), array('Aging Report', 'Patches by Technician', 'Patches by Category')); } function patch_quick_report($group_id, $title, $subtitle1, $sql1, $subtitle2, $sql2) { global $bar_colors; patch_header(array("title" => $title)); patch_reporting_header($group_id); echo "\n<H2>{$title}</H2>"; reports_quick_graph($subtitle1, $sql1, $sql2, $bar_colors); patch_footer(array()); } if ($group_id && user_ismember($group_id)) { include $DOCUMENT_ROOT . '/include/HTML_Graphs.php'; if ($what) { /* Update the database */ $period_clause = period2sql($period, $span, "open_date"); if ($what == "aging") { patch_header(array("title" => "Aging Report")); patch_reporting_header($group_id); echo "\n<H2>Aging Report</H2>"; $time_now = time(); // echo $time_now."<P>"; if (!$period || $period == "lifespan") { $period = "month"; $span = 12;
function show_supportlist($result, $offset, $set = 'open') { global $sys_datefmt, $group_id; /* Accepts a result set from the support table. Should include all columns from the table, and it should be joined to USER to get the user_name. */ $url = "/support/?group_id={$group_id}&set={$set}&order="; $title_arr = array(); $title_arr[] = 'Request ID'; $title_arr[] = 'Summary'; $title_arr[] = 'Date'; $title_arr[] = 'Assigned To'; $title_arr[] = 'Submitted By'; $links_arr = array(); $links_arr[] = $url . 'support_id'; $links_arr[] = $url . 'summary'; $links_arr[] = $url . 'date'; $links_arr[] = $url . 'assigned_to_user'; $links_arr[] = $url . 'submitted_by'; $IS_SUPPORT_ADMIN = user_ismember($group_id, 'S2'); echo ' <FORM ACTION="' . $PHP_SELF . '" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="' . $group_id . '"> <INPUT TYPE="HIDDEN" NAME="func" VALUE="postmodsupport">'; echo html_build_list_table_top($title_arr, $links_arr); $then = time() - 1296000; $rows = db_numrows($result); for ($i = 0; $i < $rows; $i++) { echo ' <TR BGCOLOR="' . get_priority_color(db_result($result, $i, 'priority')) . '">' . '<TD NOWRAP>' . ($IS_SUPPORT_ADMIN ? '<INPUT TYPE="CHECKBOX" NAME="support_id[]" VALUE="' . db_result($result, $i, 'support_id') . '"> ' : '') . sprintf("%06d", db_result($result, $i, 'support_id')) . '</TD>' . '<TD><A HREF="' . $PHP_SELF . '?func=detailsupport&support_id=' . db_result($result, $i, 'support_id') . '&group_id=' . db_result($result, $i, 'group_id') . '">' . db_result($result, $i, 'summary') . '</A></TD>' . '<TD>' . ($set != 'closed' && db_result($result, $i, 'date') < $then ? '<B>* ' : ' ') . date($sys_datefmt, db_result($result, $i, 'date')) . '</TD>' . '<TD>' . db_result($result, $i, 'assigned_to_user') . '</TD>' . '<TD>' . db_result($result, $i, 'submitted_by') . '</TD></TR>'; } /* Show extra rows for <-- Prev / Next --> */ echo ' <TR><TD COLSPAN="2">'; if ($offset > 0) { echo '<A HREF="' . $PHP_SELF . '?func=browse&group_id=' . $group_id . '&set=' . $set . '&offset=' . ($offset - 50) . '"><B><-- Previous 50</B></A>'; } else { echo ' '; } echo '</TD><TD> </TD><TD COLSPAN="2">'; if ($rows >= 50) { echo '<A HREF="' . $PHP_SELF . '?func=browse&group_id=' . $group_id . '&set=' . $set . '&offset=' . ($offset + 50) . '"><B>Next 50 --></B></A>'; } else { echo ' '; } echo '</TD></TR>'; /* Mass Update Code */ if ($IS_SUPPORT_ADMIN) { echo '<TR><TD COLSPAN="5"> <FONT COLOR="#FF0000"><B>Support Admin:</B></FONT> If you wish to apply changes to all support tickets selected above, use these controls to change their properties and click once on "Mass Update". <TABLE WIDTH="100%" BORDER="0"> <TR><TD><B>Category:</B><BR>' . support_category_box($group_id, 'support_category_id', 'xyz', 'No Change') . '</TD> <TD><B>Priority:</B><BR>'; echo build_priority_select_box('priority', '5', true); echo '</TD></TR> <TR><TD><B>Assigned To:</B><BR>' . support_technician_box($group_id, 'assigned_to', 'xyz', 'No Change') . '</TD> <TD><B>Status:</B><BR>' . support_status_box('support_status_id', 'xyz', 'No Change') . '</TD></TR> <TR><TD COLSPAN="2"><B>Canned Response:</B><BR>' . support_canned_response_box($group_id, 'canned_response') . '</TD></TR> <TR><TD COLSPAN="3" ALIGN="MIDDLE"><INPUT TYPE="SUBMIT" name="submit" VALUE="Mass Update"></TD></TR> </TABLE> </FORM> </TD></TR>'; } echo '</TABLE>'; }
if ($rows < 1) { echo ' <H4>' . $Language->getText('news_admin_index', 'no_queued_item_found_for', $pm->getProject($group_id)->getPublicName()) . '</H1>'; } else { echo ' <H4>' . $Language->getText('news_admin_index', 'new_items', $pm->getProject($group_id)->getPublicName()) . '</H4> <P>'; for ($i = 0; $i < $rows; $i++) { echo ' <A HREF="/news/admin/?approve=1&id=' . db_result($result, $i, 'id') . '&group_id=' . db_result($result, $i, 'group_id') . '">' . db_result($result, $i, 'summary') . '</A><BR>'; } } } news_footer(array()); } else { if (user_ismember($GLOBALS['sys_news_group'], 'A')) { /* News uber-user admin pages Show all waiting news items except those already rejected. Admin members of project #$sys_news_group (news project) can edit/change/approve news items */ if ($request->get('post_changes') && $request->get('approve')) { $validStatus = new Valid_WhiteList('status', array(0, 1, 2)); if ($request->valid($validStatus)) { $status = $request->get('status'); } else { $status = 0; } $validSummary = new Valid_String('summary'); $validSummary->setErrorMessage('Summary is required');
switch ($owner_type) { case WidgetLayoutManager::OWNER_TYPE_USER: $owner_id = user_getid(); $layout_id = (int) $request->get('layout_id'); $redirect = '/my/'; $good = true; break; case WidgetLayoutManager::OWNER_TYPE_GROUP: $pm = ProjectManager::instance(); if ($project = $pm->getProject($owner_id)) { $group_id = $owner_id; $_REQUEST['group_id'] = $_GET['group_id'] = $group_id; $request->params['group_id'] = $group_id; //bad! $redirect = '/projects/' . $project->getUnixName() . '/'; if (!user_ismember($group_id, 'A') && !user_is_super_user()) { $GLOBALS['Response']->redirect($redirect); } $good = true; } break; default: break; } if ($good) { if (!$request->exist('layout_id')) { //Search the default one $layout_id = $lm->getDefaultLayoutId($owner_id, $owner_type); } else { $layout_id = (int) $request->get('layout_id'); }
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // $Id: editjob.php,v 1.2 2003/11/13 11:29:25 helix Exp $ require 'pre.php'; require '../people/people_utils.php'; if ($group_id && user_ismember($group_id, 'A')) { if ($add_job) { /* create a new job */ if (!$title || !$description || $category_id == 100) { //required info exit_error('error - missing info', 'Fill in all required fields'); } $sql = "INSERT INTO people_job (group_id,created_by,title,description,date,status_id,category_id) " . "VALUES ('{$group_id}','" . user_getid() . "','{$title}','{$description}','" . time() . "','1','{$category_id}')"; $result = db_query($sql); if (!$result || db_affected_rows($result) < 1) { $feedback .= ' JOB insert FAILED '; echo db_error(); } else { $job_id = db_insertid($result, 'people_job', 'job_id'); $feedback .= ' JOB inserted successfully '; } } else { if ($update_job) { /*
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // require_once 'pre.php'; require_once '../forum_utils.php'; $is_admin_page = 'y'; $request =& HTTPRequest::instance(); $vGroupId = new Valid_GroupId(); $vGroupId->required(); if ($request->valid($vGroupId) && user_ismember($request->get('group_id'), 'F2')) { $group_id = $request->get('group_id'); $vPostChanges = new Valid_WhiteList('post_changes', array('y')); $vPostChanges->required(); if ($request->isPost() && $request->valid($vPostChanges)) { /* Update the DB to reflect the changes */ // // Prepare validators // // Forum Name $vForumName = new Valid_String('forum_name'); $vForumName->setErrorMessage($Language->getText('forum_admin_index', 'params_missing')); $vForumName->required(); // Description $vDescription = new Valid_String('description');