Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
 /**
  * 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();
     }
 }
Ejemplo n.º 3
0
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'));
     }
 }
Ejemplo n.º 5
0
 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') . '&amp;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();
     }
 }
Ejemplo n.º 8
0
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>';
}
Ejemplo n.º 9
0
 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>&nbsp;</p>";
/*
Ejemplo n.º 11
0
    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();
    }
}
Ejemplo n.º 12
0
 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%');
 }
Ejemplo n.º 13
0
 private function isInDebugMode()
 {
     return ForgeConfig::get('DEBUG_MODE') && (ForgeConfig::get('DEBUG_DISPLAY_FOR_ALL') || user_ismember(1, 'A'));
 }
Ejemplo n.º 14
0
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();
 }
Ejemplo n.º 16
0
   /**
    * 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>&nbsp;|&nbsp;</li>';
       if (UserManager::instance()->getCurrentUser()->isLoggedIn()) {
           print '<li><a href="javascript:help_window(\'' . $this->wikiLink . '&pagename=' . $attatch_page . '&pv=1\')">' . $attatch_menu . '</a>&nbsp;|&nbsp;</li>';
           print '<li><a href="' . $this->wikiLink . '&pagename=' . $preferences_page . '">' . $preferences_menu . '</a>&nbsp;|&nbsp;</li>';
       }
       if (user_ismember($this->gid, 'W2')) {
           print '<li><a href="' . $this->wikiAdminLink . '">' . $GLOBALS['Language']->getText('wiki_views_wikiserviceviews', 'menuadmin') . '</a>&nbsp;|&nbsp;</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">&nbsp;' . $GLOBALS['Language']->getText('global', 'printer_version') . '</A> ) 
         </li>';
       }
       print '
    </td>
   </tr>
 </table>';
   }
Ejemplo n.º 17
0
// 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')));
Ejemplo n.º 18
0
<?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') . ' ';
                }
Ejemplo n.º 19
0
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);
}
Ejemplo n.º 20
0
 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&nbsp;Page');
     if ($sys_use_trove) {
         $TABS_TITLES[] = _('Project&nbsp;Tree');
     }
     if ($sys_use_snippet) {
         $TABS_TITLES[] = _('Code&nbsp;Snippets');
     }
     if ($sys_use_people) {
         $TABS_TITLES[] = _('Project&nbsp;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%');
 }
Ejemplo n.º 21
0
 /**
  * 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;
 }
Ejemplo n.º 22
0
        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);
Ejemplo n.º 23
0
<?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");
Ejemplo n.º 24
0
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');
Ejemplo n.º 25
0
$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;
Ejemplo n.º 26
0
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>* ' : '&nbsp; ') . 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 '&nbsp;';
    }
    echo '</TD><TD>&nbsp;</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 '&nbsp;';
    }
    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>';
}
Ejemplo n.º 27
0
        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');
Ejemplo n.º 28
0
 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');
     }
Ejemplo n.º 29
0
<?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) {
            /*
Ejemplo n.º 30
0
<?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');