function getContent() { $frsrf = new FRSReleaseFactory(); $html_my_monitored_fp = ''; $sql = "SELECT groups.group_name,groups.group_id " . "FROM groups,filemodule_monitor,frs_package " . "WHERE groups.group_id=frs_package.group_id " . "AND frs_package.status_id !=" . $frsrf->STATUS_DELETED . " " . "AND frs_package.package_id=filemodule_monitor.filemodule_id " . "AND filemodule_monitor.user_id='" . user_getid() . "' "; $um =& UserManager::instance(); $current_user =& $um->getCurrentUser(); if ($current_user->isRestricted()) { $projects = $current_user->getProjects(); $sql .= "AND groups.group_id IN (" . implode(',', $projects) . ") "; } $sql .= "GROUP BY group_id ORDER BY group_id ASC LIMIT 100"; $result = db_query($sql); $rows = db_numrows($result); if (!$result || $rows < 1) { $html_my_monitored_fp .= $GLOBALS['Language']->getText('my_index', 'my_files_msg'); } else { $html_my_monitored_fp .= '<table style="width:100%">'; $request =& HTTPRequest::instance(); for ($j = 0; $j < $rows; $j++) { $group_id = db_result($result, $j, 'group_id'); $sql2 = "SELECT frs_package.name,filemodule_monitor.filemodule_id " . "FROM groups,filemodule_monitor,frs_package " . "WHERE groups.group_id=frs_package.group_id " . "AND groups.group_id={$group_id} " . "AND frs_package.status_id !=" . $frsrf->STATUS_DELETED . " " . "AND frs_package.package_id=filemodule_monitor.filemodule_id " . "AND filemodule_monitor.user_id='" . user_getid() . "' LIMIT 100"; $result2 = db_query($sql2); $rows2 = db_numrows($result2); $vItemId = new Valid_UInt('hide_item_id'); $vItemId->required(); if ($request->valid($vItemId)) { $hide_item_id = $request->get('hide_item_id'); } else { $hide_item_id = null; } $vFrs = new Valid_WhiteList('hide_frs', array(0, 1)); $vFrs->required(); if ($request->valid($vFrs)) { $hide_frs = $request->get('hide_frs'); } else { $hide_frs = null; } list($hide_now, $count_diff, $hide_url) = my_hide_url('frs', $group_id, $hide_item_id, $rows2, $hide_frs); $html_hdr = ($j ? '<tr class="boxitem"><td colspan="2">' : '') . $hide_url . '<A HREF="/project/?group_id=' . $group_id . '">' . db_result($result, $j, 'group_name') . '</A> '; $html = ''; $count_new = max(0, $count_diff); for ($i = 0; $i < $rows2; $i++) { if (!$hide_now) { $html .= ' <TR class="' . util_get_alt_row_color($i) . '">' . '<TD WIDTH="99%"> - <A HREF="/file/showfiles.php?group_id=' . $group_id . '">' . db_result($result2, $i, 'name') . '</A></TD>' . '<TD><A HREF="/file/filemodule_monitor.php?filemodule_id=' . db_result($result2, $i, 'filemodule_id') . '&group_id=' . $group_id . '" onClick="return confirm(\'' . $GLOBALS['Language']->getText('my_index', 'stop_file') . '\')">' . '<IMG SRC="' . util_get_image_theme("ic/trash.png") . '" HEIGHT="16" WIDTH="16" ' . 'BORDER=0" ALT="' . $GLOBALS['Language']->getText('my_index', 'stop_monitor') . '"></A></TD></TR>'; } } $html_hdr .= my_item_count($rows2, $count_new) . '</td></tr>'; $html_my_monitored_fp .= $html_hdr . $html; } $html_my_monitored_fp .= '</table>'; } return $html_my_monitored_fp; }
function getContent() { $html_my_monitored_forums = ''; $sql = "SELECT groups.group_id, groups.group_name " . "FROM groups,forum_group_list,forum_monitored_forums " . "WHERE groups.group_id=forum_group_list.group_id " . "AND groups.status = 'A' " . "AND forum_group_list.is_public <> 9 " . "AND forum_group_list.group_forum_id=forum_monitored_forums.forum_id " . "AND forum_monitored_forums.user_id='" . user_getid() . "' "; $um =& UserManager::instance(); $current_user =& $um->getCurrentUser(); if ($current_user->isRestricted()) { $projects = $current_user->getProjects(); $sql .= "AND groups.group_id IN (" . implode(',', $projects) . ") "; } $sql .= "GROUP BY group_id ORDER BY group_id ASC LIMIT 100"; $result = db_query($sql); $rows = db_numrows($result); if (!$result || $rows < 1) { $html_my_monitored_forums .= $GLOBALS['Language']->getText('my_index', 'my_forums_msg'); } else { $request =& HTTPRequest::instance(); $html_my_monitored_forums .= '<table style="width:100%">'; for ($j = 0; $j < $rows; $j++) { $group_id = db_result($result, $j, 'group_id'); $sql2 = "SELECT forum_group_list.group_forum_id,forum_group_list.forum_name " . "FROM groups,forum_group_list,forum_monitored_forums " . "WHERE groups.group_id=forum_group_list.group_id " . "AND groups.group_id={$group_id} " . "AND forum_group_list.is_public <> 9 " . "AND forum_group_list.group_forum_id=forum_monitored_forums.forum_id " . "AND forum_monitored_forums.user_id='" . user_getid() . "' LIMIT 100"; $result2 = db_query($sql2); $rows2 = db_numrows($result2); $vItemId = new Valid_UInt('hide_item_id'); $vItemId->required(); if ($request->valid($vItemId)) { $hide_item_id = $request->get('hide_item_id'); } else { $hide_item_id = null; } $vForum = new Valid_WhiteList('hide_forum', array(0, 1)); $vForum->required(); if ($request->valid($vForum)) { $hide_forum = $request->get('hide_forum'); } else { $hide_forum = null; } list($hide_now, $count_diff, $hide_url) = my_hide_url('forum', $group_id, $hide_item_id, $rows2, $hide_forum); $html_hdr = ($j ? '<tr class="boxitem"><td colspan="2">' : '') . $hide_url . '<A HREF="/forum/?group_id=' . $group_id . '">' . db_result($result, $j, 'group_name') . '</A> '; $html = ''; $count_new = max(0, $count_diff); for ($i = 0; $i < $rows2; $i++) { if (!$hide_now) { $group_forum_id = db_result($result2, $i, 'group_forum_id'); $html .= ' <TR class="' . util_get_alt_row_color($i) . '"><TD WIDTH="99%">' . ' - <A HREF="/forum/forum.php?forum_id=' . $group_forum_id . '">' . stripslashes(db_result($result2, $i, 'forum_name')) . '</A></TD>' . '<TD ALIGN="center"><A HREF="/my/stop_monitor.php?forum_id=' . $group_forum_id . '" onClick="return confirm(\'' . $GLOBALS['Language']->getText('my_index', 'stop_forum') . '\')">' . '<IMG SRC="' . util_get_image_theme("ic/trash.png") . '" HEIGHT="16" WIDTH="16" ' . 'BORDER=0 ALT="' . $GLOBALS['Language']->getText('my_index', 'stop_monitor') . '"></A></TD></TR>'; } } $html_hdr .= my_item_count($rows2, $count_new) . '</td></tr>'; $html_my_monitored_forums .= $html_hdr . $html; } $html_my_monitored_forums .= '</table>'; } return $html_my_monitored_forums; }
private function getUGroupIdInRequest($request) { $vUgroupId = new Valid_UInt('ugroup_id'); $vUgroupId->required(); if ($request->valid($vUgroupId)) { $ugroupId = $request->get('ugroup_id'); } else { $ugroupId = null; } return $ugroupId; }
function initDisplay() { $request =& HTTPRequest::instance(); // // User may request a specific table id $vVersion = new Valid_UInt('version'); $vVersion->required(); if ($request->valid($vVersion)) { $this->version = $request->get('version'); } $this->atf =& Docman_ApprovalTableFactoriesFactory::getFromItem($this->item, $this->version); $this->table =& $this->atf->getTable(); }
public function update() { $vChildren = new Valid_UInt('children'); $vChildren->required(); if ($this->request->validArray($vChildren)) { $this->dao->updateChildren($this->tracker->getId(), $this->request->get('children')); } else { if ($this->request->exist('children')) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_hierarchy', 'controller_bad_request')); } else { $this->dao->deleteAllChildren($this->tracker->getId()); } } $this->redirect(array('tracker' => $this->tracker->getId(), 'func' => 'admin-hierarchy')); }
function testUInt() { $v = new Valid_UInt(); $v->disableFeedback(); $this->assertTrue($v->validate('0')); $this->assertTrue($v->validate('1')); $this->assertTrue($v->validate('2147483647')); $this->assertFalse($v->validate('-1')); // With a value lower than -2^31 it may imply a int overflow that may // generate a positive int (in this case: 2^31-1). $this->assertFalse($v->validate('-2147483649')); $this->assertFalse($v->validate('0.5')); $this->assertFalse($v->validate('toto')); }
function getContent() { $folder_or_document = is_a($this->item, 'Docman_Folder') ? 'folder' : (is_a($this->item, 'Docman_File') ? 'file' : 'document'); $item_type = $this->_controller->_getItemFactory()->getItemTypeForItem($this->item); $vVersion = new Valid_UInt('version'); $vVersion->required(); if ($this->_controller->request->valid($vVersion)) { $version = $this->_controller->request->get('version'); $label = $this->_controller->request->get('label'); } else { $version = false; } $content = ''; $content .= '<dl><dt>' . $GLOBALS['Language']->getText('plugin_docman', 'details_actions_delete') . '</dt><dd>'; $content .= '<form action="' . $this->url . '" method="POST">'; $content .= '<div class="docman_confirm_delete">'; if ($version !== false) { $content .= $GLOBALS['Language']->getText('plugin_docman', 'details_delete_warning_version', array($this->hp->purify($this->item->getTitle(), CODENDI_PURIFIER_CONVERT_HTML), $version)); } else { $content .= $GLOBALS['Language']->getText('plugin_docman', 'details_delete_warning_' . $folder_or_document, $this->hp->purify($this->item->getTitle(), CODENDI_PURIFIER_CONVERT_HTML)); } if ($item_type == PLUGIN_DOCMAN_ITEM_TYPE_WIKI) { $content .= $this->getWikiDeleteInfo(); } $content .= '<div class="docman_confirm_delete_buttons">'; if ($this->token) { $content .= '<input type="hidden" name="token" value="' . $this->token . '" />'; } $content .= ' <input type="hidden" name="section" value="actions" />'; if ($version !== false) { $content .= ' <input type="hidden" name="action" value="deleteVersion" />'; $content .= ' <input type="hidden" name="version" value="' . $version . '" />'; } else { $content .= ' <input type="hidden" name="action" value="delete" />'; } $content .= ' <input type="hidden" name="id" value="' . $this->item->getId() . '" />'; $content .= ' <input type="submit" tabindex="2" name="confirm" value="' . $GLOBALS['Language']->getText('plugin_docman', 'details_delete_confirm') . '" />'; $content .= ' <input type="submit" tabindex="1" name="cancel" value="' . $GLOBALS['Language']->getText('plugin_docman', 'details_delete_cancel') . '" />'; $content .= '</div>'; $content .= '</div>'; $content .= '</form>'; $content .= '</dd></dl>'; return $content; }
function getContent() { $html = ''; $request = HTTPRequest::instance(); $um = UserManager::instance(); $user = $um->getCurrentUser(); $vFunc = new Valid_WhiteList('docman_func', array('show_docman')); $vFunc->required(); if ($request->valid($vFunc)) { $func = $request->get('docman_func'); } else { $func = ''; } $vDocmanId = new Valid_UInt('docman_id'); $vDocmanId->required(); if ($request->valid($vDocmanId)) { $docman_id = $request->get('docman_id'); } else { $docman_id = ''; } $html .= '<form method="post" action="?">'; $html .= '<label>' . $GLOBALS['Language']->getText('plugin_docman', 'widget_my_docman_search_label') . '</label>'; $html .= '<input type="hidden" name="docman_func" value="show_docman" />'; $html .= '<input type="text" name="docman_id" value="' . $docman_id . '" id="docman_id" />'; $html .= ' '; $html .= '<input type="submit" value="' . $GLOBALS['Language']->getText('plugin_docman', 'widget_my_docman_search_btn') . '"/>'; $html .= '</form>'; if ($func == 'show_docman' && $docman_id) { $res = $this->returnAllowedGroupId($docman_id, $user); if ($res) { $dPm = Docman_PermissionsManager::instance($res['group_id']); $itemPerm = $dPm->userCanAccess($user, $docman_id); if ($itemPerm) { $html .= '<p><a href="/plugins/docman/?group_id=' . $res['group_id'] . '&action=details&id=' . $docman_id . '§ion=properties">Show "' . $res['title'] . '" Properties</a></p>'; return $html; } } $html .= '<p>' . $GLOBALS['Language']->getText('plugin_docman', 'perm_denied') . '</p>'; } return $html; }
/** * Validate the HTTP request for the user members pane * * @param Integer $groupId Id of the project * @param HTTPRequest $request HTTP request * * @return Array */ public function validateRequest($groupId, $request) { $userDao = new UserDao(); $res = $userDao->firstUsernamesLetters(); $allowedBeginValues = array(); foreach ($res as $data) { $allowedBeginValues[] = $data['capital']; } $result['allowed_begin_values'] = $allowedBeginValues; $validBegin = new Valid_WhiteList('begin', $allowedBeginValues); $validBegin->required(); $validInProject = new Valid_UInt('in_project'); $validInProject->required(); $result['offset'] = $request->exist('browse') ? 0 : $request->getValidated('offset', 'uint', 0); $result['number_per_page'] = $request->exist('number_per_page') ? $request->getValidated('number_per_page', 'uint', 0) : 15; $result['search'] = $request->getValidated('search', 'string', ''); $result['begin'] = $request->getValidated('begin', $validBegin, ''); $result['in_project'] = $request->getValidated('in_project', $validInProject, $groupId); $result['user'] = $request->get('user'); $result['add_user_name'] = $request->get('add_user_name'); return $result; }
if ($request->valid($vForumName) && $request->valid($vDescription) && $request->valid($vIsPublic) && $request->valid($vMonitored)) { $forum_name = $request->get('forum_name'); $is_public = $request->get('is_public'); $description = $request->get('description'); $is_monitored = $request->get('is_monitored'); $fid = forum_create_forum($group_id, $forum_name, $is_public, 1, $description); if ($is_monitored) { forum_add_monitor($fid, user_getid()); } } } else { if ($request->existAndNonEmpty('change_status')) { /* Change a forum to public/private */ $vGrpForum = new Valid_UInt('group_forum_id'); $vGrpForum->required(); if ($request->valid($vForumName) && $request->valid($vDescription) && $request->valid($vIsPublic) && $request->valid($vGrpForum)) { $forum_name = $request->get('forum_name'); $is_public = $request->get('is_public'); $description = $request->get('description'); $group_forum_id = $request->get('group_forum_id'); $sql = "UPDATE forum_group_list SET is_public=" . db_ei($is_public) . ",forum_name='" . db_es(htmlspecialchars($forum_name)) . "'," . "description='" . db_es(htmlspecialchars($description)) . "' " . "WHERE group_forum_id=" . db_ei($group_forum_id) . " AND group_id=" . db_ei($group_id); $result = db_query($sql); if (!$result || db_affected_rows($result) < 1) { $feedback .= ' ' . $Language->getText('forum_admin_index', 'upd_err') . ' '; } else { $feedback .= ' ' . $Language->getText('forum_admin_index', 'upd_success') . ' '; } } }
private function inconsistentArtifactsIdsAreValid(array $artifact_ids) { $validator = new Valid_UInt(); $validator->required(); $artifact_factory = Tracker_ArtifactFactory::instance(); foreach ($artifact_ids as $artifact_id) { if (!($validator->validate($artifact_id) && $artifact_factory->getArtifactById($artifact_id))) { return false; } } return true; }
function updatePreferences(&$request) { $request->valid(new Valid_String('cancel')); $nbShow = new Valid_UInt('nb_svn_commits'); $nbShow->required(); if (!$request->exist('cancel')) { if ($request->valid($nbShow)) { $this->_nb_svn_commits = $request->get('nb_svn_commits'); } else { $this->_nb_svn_commits = self::NB_COMMITS_TO_DISPLAY; } user_set_preference('my_latests_svn_commits_nb_display', $this->_nb_svn_commits); } return true; }
/** * Checks whether a planning tracker id is present in the parameters, and is * a valid positive integer. * * @param PlanningParameters $planning_parameters The validated parameters. * * @return bool */ private function planningTrackerIdIsPresentAndIsAPositiveInteger(PlanningParameters $planning_parameters) { $planning_tracker_id = new Valid_UInt(); $planning_tracker_id->required(); return $planning_tracker_id->validate($planning_parameters->planning_tracker_id); }
/** * Perform wiki attachment removal. */ function deleteAttachments() { $request = HTTPRequest::instance(); if ($request->isPost() && $request->exist('attachments_to_delete')) { $args = $request->get('attachments_to_delete'); $deleteStatus = true; $um = UserManager::instance(); $user = $um->getCurrentUser(); foreach ($args as $id) { $valid = new Valid_UInt('repo_id'); $valid->required(); if ($valid->validate($id)) { $wa = new WikiAttachment(); $wa->initWithId($id); if ($wa->validate() && $wa->gid == $_REQUEST['group_id'] && $wa->isAutorized($user->getId())) { if (!$wa->deleteAttachment()) { $deleteStatus = false; } } else { $deleteStatus = false; } } else { $deleteStatus = false; } } if ($deleteStatus) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('wiki_actions_wikiserviceadmin', 'delete_attachment_success')); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('wiki_actions_wikiserviceadmin', 'delete_attachment_failure')); } } }
} $vRelative = new Valid_WhiteList('relative', array('true')); $vRelative->required(); if ($request->valid($vRelative)) { $relative = true; } else { $relative = false; } $vOrder = new Valid_WhiteList('order', array('start_size', 'end_size', 'evolution', 'evolution_rate')); $vOrder->required(); if ($request->valid($vOrder)) { $order = $request->get('order'); } else { $order = 'end_size'; } $vOffset = new Valid_UInt('offset'); $vOffset->required(); if ($request->valid($vOffset)) { $offset = $request->get('offset'); } else { $offset = 0; } $title = 'Disk usage'; $GLOBALS['HTML']->includeCalendarScripts(); $GLOBALS['HTML']->header(array('title' => $title)); echo '<h1>' . $title . '</h1>'; echo ' <table> <tr> <th align="center">Service/Projects</th> <th align="center">Users</th>
<?php // // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright (c) Enalean, 2015. All rights reserved // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // require_once 'pre.php'; require_once 'bookmarks.php'; require_once 'my_utils.php'; $request = HTTPRequest::instance(); $vId = new Valid_UInt('bookmark_id'); $vId->setErrorMessage('bookmark_id is required'); $vId->required(); if (!$request->valid($vId)) { $GLOBALS['Response']->redirect('/my'); } else { $bookmark_id = (int) $request->get('bookmark_id'); } $vUrl = new Valid_String('bookmark_url'); $vUrl->setErrorMessage('Url is required'); $vUrl->required(); $vTitle = new Valid_String('bookmark_title'); $vTitle->setErrorMessage('Title is required'); $vTitle->required(); $bookmark_url_id = '/my/bookmark_edit.php?bookmark_id=' . $bookmark_id; $csrf_token = new CSRFSynchronizerToken($bookmark_url_id); if ($request->isPost() && $request->valid($vUrl) && $request->valid($vTitle)) { $csrf_token->check(); $bookmark_url = $request->get('bookmark_url');
/** * Validate request values * * @param HTTPRequest $request request containing form values * * @return Array */ function validateRequest($request) { $status = true; $invalid = array(); $valid = new Valid_String('request_summary'); $valid->required(); $summary = trim($request->get('request_summary')); if ($request->valid($valid) && strlen($summary) < self::MAX_SUMMARY_LENGTH && $summary != '') { $params['summary'] = $summary; } else { $status = false; $invalid[] = $GLOBALS['Language']->getText('plugin_requesthelp', 'summary'); } $valid = new Valid_Text('request_description'); $valid->required(); $description = trim($request->get('request_description')); $defaultDescription = $GLOBALS['Language']->getText('plugin_requesthelp', 'requesthelp_default_description'); if ($request->valid($valid) && strlen($description) < self::MAX_DESCRIPTION_LENGTH && $description != '' && $description != $defaultDescription) { $params['description'] = $description; } else { $status = false; $invalid[] = 'Description'; } $valid = new Valid_UInt('type'); $valid->required(); if ($request->valid($valid)) { $requestType = $request->get('type'); $params['type'] = $requestType; switch ($requestType) { case RequestHelp::TYPE_SUPPORT: $params['text_type'] = $this->_getPluginProperty('support_request'); break; case RequestHelp::TYPE_ENHANCEMENT: $params['text_type'] = $this->_getPluginProperty('enhancement_request'); break; default: $status = false; $invalid[] = 'Type'; break; } } else { $status = false; $invalid[] = 'Type'; } $valid = new Valid_UInt('severity'); $valid->required(); if ($request->valid($valid)) { $severity = $request->get('severity'); $params['severity'] = $severity; switch ($severity) { case RequestHelp::SEVERITY_MINOR: $params['text_severity'] = 'Minor'; break; case RequestHelp::SEVERITY_SERIOUS: $params['text_severity'] = 'Serious'; break; case RequestHelp::SEVERITY_CRITICAL: $params['text_severity'] = 'Critical'; break; default: $status = false; $invalid[] = $GLOBALS['Language']->getText('plugin_requesthelp', 'severity'); break; } } else { $status = false; $invalid[] = $GLOBALS['Language']->getText('plugin_requesthelp', 'severity'); } $cc = array(); $mails = array_map('trim', preg_split('/[,;]/', $request->get('cc'))); $rule = new Rule_Email(); $um = $this->_getUserManager(); $invalidCc = array(); foreach ($mails as $mail) { if ($rule->isValid($mail)) { $cc[] = $mail; } else { if (trim($mail) != '') { $user = $um->findUser($mail); if ($user) { $mail = $user->getUserName(); if ($mail) { $cc[] = $mail; } else { $invalidCc[] = $mail; } } else { $invalidCc[] = $mail; } } } } if (!empty($invalidCc)) { $c = $this->getController(); $c->addWarn($GLOBALS['Language']->getText('plugin_requesthelp', 'requesthelp_invalid_cc', implode(", ", $invalidCc))); } $params['cc'] = implode(";", $cc); return array('status' => $status, 'params' => $params, 'invalid' => $invalid); }
function plugin_forumml_show_message($p, $hp, $msg, $id_parent, $purgeCache) { $body = $msg['body']; $request = HTTPRequest::instance(); // Is "ready to display" body already in cache or not $bodyIsCached = false; if (!empty($msg['cached_html']) && !$purgeCache) { $bodyIsCached = true; } if (PEAR::isError($from_info = Mail_RFC822::parseAddressList($msg['sender'], $GLOBALS['sys_default_domain'])) || !isset($from_info[0]) || !$from_info[0]->personal) { $from_info = $hp->purify($msg['sender'], CODENDI_PURIFIER_CONVERT_HTML); } else { $from_info = '<abbr title="' . $hp->purify($from_info[0]->mailbox . '@' . $from_info[0]->host, CODENDI_PURIFIER_CONVERT_HTML) . '">' . $hp->purify($from_info[0]->personal, CODENDI_PURIFIER_CONVERT_HTML) . '</abbr>'; } echo '<div class="plugin_forumml_message">'; // specific thread echo '<div class="plugin_forumml_message_header boxitemalt" id="plugin_forumml_message_' . $msg['id_message'] . '">'; echo '<div class="plugin_forumml_message_header_subject">' . $hp->purify($msg['subject'], CODENDI_PURIFIER_CONVERT_HTML) . '</div>'; echo '<a href="#' . $msg['id_message'] . '" title="message #' . $msg['id_message'] . '">'; echo '<img src="' . $p->getThemePath() . '/images/ic/comment.png" id="' . $msg['id_message'] . '" style="vertical-align:middle" alt="#' . $msg['id_message'] . '" />'; echo '</a>'; echo ' <span class="plugin_forumml_message_header_from">' . $from_info . '</span>'; echo ' <span class="plugin_forumml_message_header_date">' . $GLOBALS['Language']->getText('plugin_forumml', 'show_message_date', array($msg['date'])) . '</span>'; echo ' <a href="#" id="plugin_forumml_toogle_msg_' . $msg['id_message'] . '" class="plugin_forumml_toggle_font">' . $GLOBALS['Language']->getText('plugin_forumml', 'toggle_font') . '</a>'; // get CC $cc = trim($msg['cc']); if ($cc) { if (PEAR::isError($cc_info = Mail_RFC822::parseAddressList($cc, $GLOBALS['sys_default_domain']))) { $ccs = $hp->purify($cc, CODENDI_PURIFIER_CONVERT_HTML); } else { $ccs = array(); foreach ($cc_info as $c) { if (!$c->personal) { $ccs[] = $hp->purify($c->mailbox . '@' . $c->host, CODENDI_PURIFIER_CONVERT_HTML); } else { $ccs[] = '<abbr title="' . $hp->purify($c->mailbox . '@' . $c->host, CODENDI_PURIFIER_CONVERT_HTML) . '">' . $hp->purify($c->personal, CODENDI_PURIFIER_CONVERT_HTML) . '</abbr>'; } } $ccs = implode(', ', $ccs); } print '<div class="plugin_forumml_message_header_cc">' . $GLOBALS['Language']->getText('plugin_forumml', 'show_message_cc') . ' ' . $ccs . '</div>'; } // Message content if (strpos($msg['content_type'], 'multipart/') !== false) { $content_type = $msg['msg_type']; } else { $content_type = $msg['content_type']; } $is_html = strpos($content_type, "text/html") !== false; // get attached files if (count($msg['attachments'])) { print '<div class="plugin_forumml_message_header_attachments">'; $first = true; foreach ($msg['attachments'] as $attachment) { // Special case, this is an HTML email if (preg_match('/.html$/i', $attachment['file_name'])) { // By default, the first html attachment replaces the default body (text) if ($first) { if (!$bodyIsCached && is_file($attachment['file_path'])) { $body = file_get_contents($attachment['file_path']); // Make sure that the body is utf8 if (!mb_detect_encoding($body, 'UTF-8', true)) { $body = mb_convert_encoding($body, 'UTF-8'); } $is_html = true; } continue; } else { $flink = $attachment['file_name']; } } else { $flink = $attachment['file_name']; } if (!$first) { echo ', '; } echo "<img src='" . $p->getThemePath() . "/images/ic/attach.png'/> <a href='upload.php?group_id=" . $request->get('group_id') . "&list=" . $request->get('list') . "&id=" . $attachment['id_attachment'] . "&topic=" . $id_parent . "'>" . $flink . "</a>"; $first = false; } echo '</div>'; } echo '</div>'; print '<div id="plugin_forumml_message_content_' . $msg['id_message'] . '" class="plugin_forumml_message_content_std">'; $body = str_replace("\r\n", "\n", $body); // If there is no cached html of if user requested to regenerate the cache, do it, otherwise use cached HTML. if (!$bodyIsCached) { // Purify message body, according to the content-type if ($is_html) { // Update attachment links $body = plugin_forumml_replace_attachment($msg['id_message'], $request->get('group_id'), $request->get('list'), $id_parent, $body); // Use CODENDI_PURIFIER_FULL for html mails $msg['cached_html'] = $hp->purify($body, CODENDI_PURIFIER_FULL, $request->get('group_id')); } else { // CODENDI_PURIFIER_FORUMML level : no basic html markups, no forms, no javascript, // Allowed: url + automagic links + <blockquote> $purified_body = $hp->purify($body, CODENDI_PURIFIER_CONVERT_HTML, $request->get('group_id')); $purified_body = str_replace('>', '>', $purified_body); $tab_body = ''; $level = 0; $current_level = 0; $search_for_quotes = false; $maxi = strlen($purified_body); for ($i = 0; $i < $maxi; ++$i) { if ($search_for_quotes) { if ($purified_body[$i] == ">") { ++$current_level; if ($level < $current_level) { $tab_body .= '<blockquote class="grep">'; ++$level; } } else { $search_for_quotes = false; if ($level > $current_level) { $tab_body .= '</blockquote>'; --$level; } if ($purified_body[$i] == "\n" && $i < $maxi - 1) { $search_for_quotes = true; $current_level = 0; } $tab_body .= $purified_body[$i]; } } else { if ($purified_body[$i] == "\n" && $i < $maxi - 1) { $search_for_quotes = true; $current_level = 0; } $tab_body .= $purified_body[$i]; } } $purified_body = str_replace('>', '>', $purified_body); $msg['cached_html'] = nl2br($tab_body); } db_query('UPDATE plugin_forumml_message SET cached_html="' . db_es($msg['cached_html']) . '" WHERE id_message=' . $msg['id_message']); } echo $msg['cached_html']; echo '</div>'; // Reply echo '<div class="plugin_forumml_message_footer">'; // If you click on 'Reply', load reply form $vMess = new Valid_UInt('id_mess'); $vMess->required(); if ($request->valid($vMess) && $request->get('id_mess') == $msg['id_message']) { $vReply = new Valid_WhiteList('reply', array(0, 1)); $vReply->required(); if ($request->valid($vReply) && $request->get('reply') == 1) { if ($is_html) { $body = $hp->purify($body, CODENDI_PURIFIER_STRIP_HTML); } else { $body = $hp->purify($body, CODENDI_PURIFIER_CONVERT_HTML); } plugin_forumml_reply($hp, $msg['subject'], $msg['id_message'], $id_parent, $body, $msg['sender']); } } else { print "<a href='message.php?group_id=" . $request->get('group_id') . "&topic=" . $id_parent . "&id_mess=" . $msg['id_message'] . "&reply=1&list=" . $request->get('list') . "#reply-" . $msg['id_message'] . "'>\n <img src='" . $p->getThemePath() . "/images/ic/comment_add.png'/>\n " . $GLOBALS['Language']->getText('plugin_forumml', 'reply') . "\n </a>"; } echo '</div>'; echo '</div>'; }
// // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // require_once 'pre.php'; require '../forum/forum_utils.php'; $request =& HTTPRequest::instance(); if (user_isloggedin()) { /* User obviously has to be logged in to monitor a thread */ $vForumId = new Valid_UInt('forum_id'); $vForumId->required(); if ($request->valid($vForumId)) { $forum_id = $request->get('forum_id'); // Check permissions if (!forum_utils_access_allowed($forum_id)) { exit_error($Language->getText('global', 'error'), $Language->getText('forum_forum', 'forum_restricted')); } //If the forum is associated to a private news, non-allowed users shouldn't be able to monitor this forum // but they should be able to disable monitoring news that have been set from public to private $qry = "SELECT * FROM news_bytes WHERE forum_id=" . db_ei($forum_id); $res = db_query($qry); if (db_numrows($res) > 0) { if (!forum_utils_news_access($forum_id) && !user_monitor_forum($forum_id, user_getid())) { exit_error($Language->getText('global', 'error'), $Language->getText('news_admin_index', 'permission_denied')); }
/** * Display form to fill a request * * @param Array $params params of the hook * * @return Void */ function displayForm($params = null) { $um = UserManager::instance(); $user = $um->getCurrentUser(); $ignoreLabs = $this->getController()->getPlugin()->getProperty('ignore_labs'); if ($user->isLoggedIn() && ($ignoreLabs || $user->useLabFeatures())) { $type = RequestHelp::TYPE_SUPPORT; $severity = RequestHelp::SEVERITY_MINOR; $summary = ''; $description = $GLOBALS['Language']->getText('plugin_requesthelp', 'requesthelp_default_description'); $cc = ''; if (is_array($params)) { $valid = new Valid_UInt(); if (isset($params['type']) && $valid->validate($params['type'])) { $type = $params['type']; } if (isset($params['severity']) && $valid->validate($params['severity'])) { $severity = $params['severity']; } $valid = new Valid_String(); if (isset($params['summary']) && $valid->validate($params['summary'])) { $summary = $params['summary']; } $valid = new Valid_Text(); if (isset($params['description']) && $valid->validate($params['description'])) { $description = $params['description']; } $valid = new Valid_String(); if (isset($params['cc']) && $valid->validate($params['cc'])) { $cc = $params['cc']; } } $p = PluginManager::instance()->getPluginByName('requesthelp'); echo '<fieldset class="requesthelp_fieldset"> <legend><b>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'requesthelp_explain_label') . '</b></legend> <form name="request" class="requesthelp_cssform" action="' . $p->getPluginPath() . '/" method="post" enctype="multipart/form-data"> <table> <tr>'; echo '<td><b><a class="tooltip" href="#" title="' . $GLOBALS['Language']->getText('plugin_requesthelp', 'tooltip_type') . '">Type:</a></b> <span class="highlight"><big>*</big></b></span></td><td><select name="type"><option value="' . RequestHelp::TYPE_SUPPORT . '" '; if ($type == RequestHelp::TYPE_SUPPORT) { echo 'selected'; } echo '>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'Support_request') . '</option> <option value="' . RequestHelp::TYPE_ENHANCEMENT . '" '; if ($type == RequestHelp::TYPE_ENHANCEMENT) { echo 'selected'; } echo '>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'Enhancement_request') . '</option> </select>'; echo '</td><td align="right"><b><a class="tooltip" href="#" title="' . $GLOBALS['Language']->getText('plugin_requesthelp', 'tooltip_severity') . '">' . $GLOBALS['Language']->getText('plugin_requesthelp', 'severity') . ':</a></b> <span class="highlight"><big>*</big></b></span> <select name="severity"> <option value="' . RequestHelp::SEVERITY_MINOR . '" '; if ($severity == RequestHelp::SEVERITY_MINOR) { echo 'selected'; } echo '>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'Minor') . '</option> <option value="' . RequestHelp::SEVERITY_SERIOUS . '" '; if ($severity == RequestHelp::SEVERITY_SERIOUS) { echo 'selected'; } echo '>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'Serious') . '</option> <option value="' . RequestHelp::SEVERITY_CRITICAL . '" '; if ($severity == RequestHelp::SEVERITY_CRITICAL) { echo 'selected'; } echo '>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'Critical') . '</option> </select> </td> </tr>'; echo '<tr><td><b><a class="tooltip" href="#" title="' . $GLOBALS['Language']->getText('plugin_requesthelp', 'tooltip_summary') . '">' . $GLOBALS['Language']->getText('plugin_requesthelp', 'summary') . ':</a></b> <span class="highlight"><big>*</big></span></td> <td colspan="3"><input type="text" name="request_summary" value="' . $summary . '" /></td></tr>'; echo '<tr><td><b><a class="tooltip" href="#" title="' . $GLOBALS['Language']->getText('plugin_requesthelp', 'tooltip_description') . '"><span class="requesthelp_totop">Description:</span></a></b> <span class="highlight"><span class="requesthelp_totop"><big>*</big></b></span></span></td><td colspan="3"><textarea id="request_description" name="request_description">' . $description . '</textarea></td></tr> <tr><td></td><td colspan="3"><i><b><u>Note</u>: </b>' . $GLOBALS['Language']->getText('plugin_requesthelp', 'requesthelp_cc_note') . '</i></td></tr> <tr><td><label>CC :</label></td><td colspan="3"><input id="requesthelp_cc" type="text" name="cc" value="' . $cc . '" /></td></tr> <tr><td><input name="action" type="hidden" value="submit_ticket" /></td><td><input name="submit" type="submit" value="Submit" /></td></tr> </table> </form> </fieldset>'; $js = "\$('request_description').defaultValueActsAsHint();\n options = new Array();\n options['defaultValueActsAsHint'] = false;\n new UserAutoCompleter('requesthelp_cc', '" . util_get_dir_image_theme() . "', true, options);"; $GLOBALS['Response']->includeFooterJavascriptSnippet($js); } }
if (!$project || !is_object($project) || $project->isError()) { exit_no_group(); } //if the project isn't active, require you to be a member of the super-admin group if ($project->getStatus() != 'A') { session_require(array('group' => 1)); } $vFunc = new Valid_WhiteList('func', array('member_req_notif_group', 'member_req_notif_message')); $vFunc->required(); if ($request->isPost() && $request->valid($vFunc)) { /* updating the database */ switch ($request->get('func')) { case 'member_req_notif_group': $vUGroups = new Valid_UInt('ugroups'); $vUGroups->required(); if ($request->validArray($vUGroups)) { $ugroups = $request->get('ugroups'); // Remove ugroups that are empty or contain no project admins $result = ugroup_filter_ugroups_by_project_admin($group_id, $ugroups); $nonAdmins = $result['non_admins']; $validUgroups = $result['ugroups']; if (empty($validUgroups)) { // If no valid ugroups the default one is project admins ugroup $validUgroups = array($GLOBALS['UGROUP_PROJECT_ADMIN']); $GLOBALS['Response']->addFeedback('error', $Language->getText('project_admin_index', 'member_request_delegation_ugroups_all_invalid')); } else { // If some selected ugroups are not valid display them to the user. $diff = array_diff($ugroups, $validUgroups); if (!empty($diff)) {
*/ $vPath = new Valid_String('_path'); $vPath->required(); if ($request->valid($vPath)) { $_path = $request->get('_path'); } else { $_path = ''; } // MV: This comes from src/www/svn/index.php, it seems that user can // specify a rev_id here $vRevId1 = new Valid_UInt('rev_id'); $vRevId1->required(); if ($request->valid($vRevId1)) { $_rev_id = $request->get('rev_id'); } else { $vRevId2 = new Valid_UInt('_rev_id'); $vRevId2->required(); if ($request->valid($vRevId2)) { $_rev_id = $request->get('_rev_id'); } else { $_rev_id = ''; } } $vCommiter = new Valid_String('_commiter'); $vCommiter->required(); if ($request->valid($vCommiter)) { $_commiter = $request->get('_commiter'); } else { $_commiter = ''; } $vSrch = new Valid_String('_srch');
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); }
* along with Codendi; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ require_once 'pre.php'; require_once 'www/file/file_utils.php'; $vGroupId = new Valid_GroupId(); $vGroupId->required(); if ($request->valid($vGroupId)) { $group_id = $request->get('group_id'); } else { exit_no_group(); } if (!user_isloggedin() || !user_ismember($group_id, 'R2')) { exit_permission_denied(); } $vProcId = new Valid_UInt('proc_id'); $vProcId->required(); if ($request->valid($vProcId)) { $proc_id = $request->get('proc_id'); } else { $GLOBALS['Response']->redirect('manageprocessors.php?group_id=' . $group_id); } file_utils_admin_header(array('title' => $Language->getText('file_admin_manageprocessors', 'update_proc'), 'help' => 'ManageProcessorsList.html')); $sql = "SELECT name,rank FROM frs_processor WHERE group_id=" . db_ei($group_id) . " AND processor_id=" . db_ei($proc_id); $result = db_query($sql); $name = db_result($result, 0, 'name'); $rank = db_result($result, 0, 'rank'); if (db_numrows($result) < 1) { #invalid processor id $feedback .= " " . $Language->getText('file_admin_manageprocessors', 'invalid_procid'); file_utils_footer(array());
/** * Update preferences * * @param Array $request HTTP request * * @return Boolean */ function updatePreferences($request) { $request->valid(new Valid_String('cancel')); $vOffset = new Valid_UInt('plugin_git_user_pushes_offset'); $vOffset->required(); $vDays = new Valid_UInt('plugin_git_user_pushes_past_days'); $vDays->required(); if (!$request->exist('cancel')) { if ($request->valid($vOffset)) { $this->offset = $request->get('plugin_git_user_pushes_offset'); } else { $this->offset = 5; } if ($request->valid($vDays)) { $this->pastDays = $request->get('plugin_git_user_pushes_past_days'); } else { $this->pastDays = 30; } user_set_preference('plugin_git_user_pushes_offset', $this->offset); user_set_preference('plugin_git_user_pushes_past_days', $this->pastDays); } return true; }
/** * Validate date Reminder Id. * * @param HTTPRequest $request HTTP request * * @return Integer */ public function validateReminderId(HTTPRequest $request) { $validReminderId = new Valid_UInt('reminder_id'); $validReminderId->required(); if ($request->valid($validReminderId)) { return $request->get('reminder_id'); } else { $errorMessage = $GLOBALS['Language']->getText('project_admin_utils', 'tracker_date_reminder_invalid_reminder', array($request->get('reminder_id'))); throw new Tracker_DateReminderException($errorMessage); } }
function updatePreferences(&$request) { $done = false; $vContentId = new Valid_UInt('content_id'); $vContentId->required(); if (($chart = $request->get('chart')) && $request->valid($vContentId)) { $vId = new Valid_Uint('chart_id'); if ($request->validInArray('chart', $vId)) { $id = " chart_id = " . db_escape_int($chart['chart_id']) . " "; } else { $id = ''; } $vTitle = new Valid_String('title'); if ($request->validInArray('chart', $vTitle)) { $title = " title = '" . db_escape_string($chart['title']) . "' "; } else { $title = ''; } if ($id || $title) { $sql = "UPDATE plugin_graphontrackersv5_widget_chart SET " . $title . ", " . $id . " WHERE owner_id = " . $this->owner_id . " AND owner_type = '" . $this->owner_type . "' AND id = " . (int) $request->get('content_id'); $res = db_query($sql); $done = true; } } return $done; }
<?php require_once 'pre.php'; $valid = new Valid_UInt('tracker_id'); $valid->required(); if ($request->valid($valid)) { if (user_get_preference('tracker_comment_invertorder_' . $request->get('tracker_id'))) { user_del_preference('tracker_comment_invertorder_' . $request->get('tracker_id')); } else { user_set_preference('tracker_comment_invertorder_' . $request->get('tracker_id'), '1'); } }
* Codendi is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Codendi is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * 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 Codendi. If not, see <http://www.gnu.org/licenses/>. */ require_once 'pre.php'; $request = HTTPRequest::instance(); $vGroupId = new Valid_UInt('group_id'); $vGroupId->required(); if ($request->valid($vGroupId)) { $group_id = $request->get('group_id'); } else { exit_no_group(); } $pm = ProjectManager::instance(); $group = $pm->getProject($group_id); if (!$group || !is_object($group) || $group->isError()) { exit_no_group(); } $vExport = new Valid_WhiteList('export', array('user_groups', 'user_groups_format')); $vExport->required(); if ($request->valid($vExport)) { $export = $request->get('export');
function updatePreferences($request) { $done = false; $vContentId = new Valid_UInt('content_id'); $vContentId->required(); if (($rss = $request->get('rss')) && $request->valid($vContentId)) { $vUrl = new Valid_String('url'); if ($request->validInArray('rss', $vUrl)) { $url = " url = '" . db_escape_string($rss['url']) . "' "; } else { $url = ''; } $vTitle = new Valid_String('title'); if ($request->validInArray('rss', $vTitle)) { $title = " title = '" . db_escape_string($rss['title']) . "' "; } else { $title = ''; } if ($url || $title) { $sql = "UPDATE widget_rss SET " . $title . ", " . $url . " WHERE owner_id = " . $this->owner_id . " AND owner_type = '" . $this->owner_type . "' AND id = " . (int) $request->get('content_id'); $res = db_query($sql); $done = true; } } return $done; }