[evolvis-commits] r12040: Fix regex pattern used to generate user descriptive names. ↵ ↵ Eliminate war =?UTF-8?Q?nings=20in=20svn=2Dstatus?=. =?UTF-8?Q?php=E2=86=B5=20=E2=86=B5=20Add=20scmsvn?=/cronjobs/update_users. php which just updates the subversion access/ password files for systems where repository creation is handled offline. =?UTF-8?Q?=E2=86=B5=20=E2=86=B5=20Replace=20gforg?==?UTF-8?Q?e?=/images/t. png and t2.png with versions compatible with Internet Explorer. ↵ ↵ Fix missing b =?UTF-8?Q?racket=20in=20massadd?=.php. ↵ ↵ Fix a number =?UTF-8?Q?of=20instances=20where=20=24P?==?UTF-8?Q?HP=5FSELF=20wasn?=' t converted to getStringFromServer('PHP_SELF'). ↵ ↵ Fix viewvc display to compensate f =?UTF-8?Q?or=20an=20Internet=20Explor?==?UTF-8?Q?er=20display=20bug?=. ↵ ↵ Fix handling of PATH_INFO so that it works with cgi as =?UTF-8?Q?well=20as=20mod=5Fphp?=. ↵ ↵ Add a bunch of missing rbac_edit e =?UTF-8?Q?ntries=20used=20by=20roleed?==?UTF-8?Q?it?=.php. ↵ ↵ Fix error che =?UTF-8?Q?ck=20in=20tracker?=/admin/ind. php↵ ↵ Fix variou?==?UTF-8?Q?s warnings . ↵ ↵ Fix MySQL sup =?UTF-8?Q?port=20for=20remove=20user=20?==?UTF-8?Q?from=20group?=. ↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 18:34:31 CET 2011


Author: mirabilos
Date: 2011-02-24 18:34:30 +0100 (Thu, 24 Feb 2011)
New Revision: 12040

Added:
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/update_users.php
Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/common/include/Group.class
   trunk/gforge_base/evolvisforge-5.1/gforge/common/include/GroupJoinRequest.class
   trunk/gforge_base/evolvisforge-5.1/gforge/common/include/PluginManager.class
   trunk/gforge_base/evolvisforge-5.1/gforge/common/include/cron_utils.php
   trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/fckeditor/common/fckeditorPlugin.class
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmcvs/cronjobs/usergroup.php
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/create_svn.php
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/svn-stats.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t.png
   trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t2.png
   trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
   trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_summary.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massadd.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massfinish.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/roleedit.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/project/request.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/scm_utils.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/viewvc_utils.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/snippet/package.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t.png
   trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t2.png
   trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/Theme.class
   trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t.png
   trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t2.png
   trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/ind.php
Log:
Fix regex pattern used to generate user descriptive names.

Eliminate warnings in svn-status.php

Add scmsvn/cronjobs/update_users.php which just updates the subversion access/password files for systems where repository creation is handled offline.

Replace gforge/images/t.png and t2.png with versions compatible with Internet Explorer.

Fix missing bracket in massadd.php.

Fix a number of instances where $PHP_SELF wasn't converted to getStringFromServer('PHP_SELF').

Fix viewvc display to compensate for an Internet Explorer display bug.

Fix handling of PATH_INFO so that it works with cgi as well as mod_php.

Add a bunch of missing rbac_edit entries used by roleedit.php.

Fix error check in tracker/admin/ind.php

Fix various warnings.

Fix MySQL support for remove user from group.


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/include/Group.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/include/Group.class	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/include/Group.class	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1698,7 +1698,7 @@
 	 *	@return	boolean	success.
 	 */ 
 	function removeUser($user_id) {
-		global $Language,$SYS;
+		global $Language,$SYS,$sys_database_type;
 
 		if ($user_id==user_getid()) {
 			//users can remove themselves
@@ -1784,16 +1784,30 @@
 			//	first have to purge any assignments that would cause 
 			//	conflict with existing assignment to 100
 			//
-			$res=db_query("DELETE FROM project_assigned_to
-				WHERE project_task_id IN (SELECT pt.project_task_id 
-				FROM project_task pt, project_group_list pgl, project_assigned_to pat 
-				WHERE pt.group_project_id = pgl.group_project_id 
-				AND pat.project_task_id=pt.project_task_id
-				AND pt.status_id='1' AND pgl.group_id='".$this->getID()."'
-				AND pat.assigned_to_id='$user_id') 
-				AND assigned_to_id='100'");
+			if ($sys_database_type == 'mysql') {
+				$res=db_mquery("
+					SELECT pt.project_task_id 
+					FROM project_task pt, project_group_list pgl, project_assigned_to pat 
+					WHERE pt.group_project_id = pgl.group_project_id 
+					AND pat.project_task_id=pt.project_task_id
+					AND pt.status_id='1' AND pgl.group_id='".$this->getID()."'
+					AND pat.assigned_to_id='$user_id' INTO @task_list;
+					DELETE FROM project_assigned_to WHERE project_task_id IN ( @task_list ) AND assigned_to_id='100'");
+				if ($res) {
+					$res = db_next_result();
+				}
+			} else {
+				$res=db_query("DELETE FROM project_assigned_to
+					WHERE project_task_id IN (SELECT pt.project_task_id 
+					FROM project_task pt, project_group_list pgl, project_assigned_to pat 
+					WHERE pt.group_project_id = pgl.group_project_id 
+					AND pat.project_task_id=pt.project_task_id
+					AND pt.status_id='1' AND pgl.group_id='".$this->getID()."'
+					AND pat.assigned_to_id='$user_id') 
+					AND assigned_to_id='100'");
+			}
 			if (!$res) {
-				$this->setError('ERROR: DB: project_assigned_to 1'.db_error());
+				$this->setError('ERROR: DB: project_assigned_to 1 - '.db_error());
 				db_rollback();
 				return false;
 			}
@@ -1804,7 +1818,7 @@
 				AND pt.status_id='1' AND pgl.group_id='".$this->getID()."') 
 				AND assigned_to_id='$user_id'");
 			if (!$res) {
-				$this->setError('ERROR: DB: project_assigned_to.'.db_error());
+				$this->setError('ERROR: DB: project_assigned_to 2 - '.db_error());
 				db_rollback();
 				return false;
 			}
@@ -1820,7 +1834,6 @@
 			}
 			//audit trail
 			$this->addHistory('removed user',$user_id);
-
 		}
 		db_commit();
 		return true;

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/include/GroupJoinRequest.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/include/GroupJoinRequest.class	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/include/GroupJoinRequest.class	2011-02-24 17:34:30 UTC (rev 12040)
@@ -95,7 +95,7 @@
 		$this->Group =& $Group;
 		if ($user_id) {
 			if (!$arr || !is_array($arr)) {
-				if (!$this->fetchData($group_id,$user_id)) {
+				if (!$this->fetchData($Group->getID(),$user_id)) {
 					return false;
 				}
 			} else {

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/include/PluginManager.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/include/PluginManager.class	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/include/PluginManager.class	2011-02-24 17:34:30 UTC (rev 12040)
@@ -67,7 +67,7 @@
 	 * @return a plugin object
 	 */
 	function GetPluginObject ($pluginname) {
-		return $this->plugins_objects [$pluginname] ;
+		return @$this->plugins_objects [$pluginname] ;
 	}
 
 	/**

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/include/cron_utils.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/include/cron_utils.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/include/cron_utils.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -30,6 +30,7 @@
 $cron_arr[23]='backup_site.php';
 $cron_arr[24]='svn-stats.php';
 $cron_arr[25]='homedirs.php';
+$cron_arr[26]='update_users.php';
 
 function cron_entry($job,$output) {
 	$sql="INSERT INTO cron_history (rundate,job,output) 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1048,7 +1048,7 @@
 				AND project_task_id='".$this->getID()."'";
 
 			$res=db_query($sql);
-			if (!$res || db_affected_rows($res) < 1) {
+			if (!$res) {
 				$this->setError('Error On ProjectTask::update-5: '.db_error().$sql);
 				db_rollback();
 				return false;

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/fckeditor/common/fckeditorPlugin.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/fckeditor/common/fckeditorPlugin.class	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/fckeditor/common/fckeditorPlugin.class	2011-02-24 17:34:30 UTC (rev 12040)
@@ -67,7 +67,7 @@
 			echo "</tr>";
 		} elseif ($hookname == "groupisactivecheckboxpost") {
 			$group = &group_get_object($group_id);
-			if ( getStringFromRequest(use_fckeditorplugin) == 1 ) {
+			if ( getStringFromRequest('use_fckeditorplugin') == 1 ) {
 				$group->setPluginUse ( $this->name );
 			} else {
 				$group->setPluginUse ( $this->name, false );

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmcvs/cronjobs/usergroup.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmcvs/cronjobs/usergroup.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmcvs/cronjobs/usergroup.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -68,7 +68,7 @@
 $gforge_lines = array();
 
 // user description is something like "MyGForge user"
-$user_description = preg_replace('/[^[:alnum:] -_]/', '', $sys_name);
+$user_description = preg_replace('/[^[:alnum:] _-]/', '', $sys_name);
 $user_description .= " user";
 
 for ($i=0; $i < count($gforge_users); $i++) {

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/create_svn.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/create_svn.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/create_svn.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,7 +1,7 @@
 #! /usr/bin/php4 -f
 <?php
 /**
- * create_docman.php 
+ * create_svn.php 
  *
  * Francisco Gimeno <kikov at fco-gimeno.com>
  *
@@ -132,7 +132,7 @@
 		} else {
 			passthru ("[ ! -d $svn/".$row["unix_group_name"]." ] &&  $svn_path/svnadmin create $repos_type $svn/".$row["unix_group_name"]);
 			$cmd = 'chown -R '.$file_owner.' '.$svn.'/'.$row["unix_group_name"];
-			passthru($cmd); // svn dir owned by apache or viewcvs doesn´t work 
+			passthru($cmd); // svn dir owned by apache or viewcvs doesn't work 
 			if ($project->usesPlugin('svncommitemail')) {
  				check_svn_mail($row["unix_group_name"], $svn."/".$row["unix_group_name"]);
 			}

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/svn-stats.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/svn-stats.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/svn-stats.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -58,7 +58,7 @@
   debug ("endelement $name") ;
 	global $time_ok, $last_tag, $commits, $date_key;
 	if ($name == "LOGENTRY" && $time_ok) {
-		$commits[$date_key]++;
+		@$commits[$date_key]++;
 	}
 	$last_tag = "";
 }
@@ -144,19 +144,19 @@
 		case "PATH":
 			if ($time_ok && $date_key) {
 				if ($attrs['ACTION'] == "M") {
-					$updates[$date_key]++;
+					@$updates[$date_key]++;
 					if ($last_user) {
-						$usr_updates[$date_key][$last_user]++;
+						@$usr_updates[$date_key][$last_user]++;
 					}
 				} elseif ($attrs['ACTION'] == "A") {
-					$adds[$date_key]++;
+					@$adds[$date_key]++;
 					if ($last_user) {
-						$usr_adds[$date_key][$last_user]++;
+						@$usr_adds[$date_key][$last_user]++;
 					}
 				} elseif ($attrs['ACTION'] == "D") {
-					$deletes[$date_key]++;
+					@$deletes[$date_key]++;
 					if ($last_user) {
-						$usr_deletes[$date_key][$last_user]++;
+						@$usr_deletes[$date_key][$last_user]++;
 					}
 				}
 			}
@@ -180,7 +180,7 @@
 
 $pluginid = get_plugin_id($pluginname);
 
-if ($ARGV[1] && $ARGV[2] && $ARGV[3]) {
+if (@$ARGV[1] && @$ARGV[2] && @$ARGV[3]) {
 	//$ARGV[1] = Year
 	//$ARGV[2] = Month
 	//$ARGV[3] = Day
@@ -190,7 +190,7 @@
 	$day_end = $day_begin + 86400;
  
 	$rollback = process_day($day_begin, $day_end);
-} else if ($ARGV[1]=='all' && !$ARGV[2] && !$ARGV[3]) { 
+} else if (@$ARGV[1]=='all' && @!$ARGV[2] && @!$ARGV[3]) { 
 	// Do ALL the days
 	debug('Processing all days');
 	$rollback = process_day();
@@ -360,8 +360,8 @@
 				'$d',
 				'$groups[0]',
 				'0',
-				'" . ($updates[$key] ? $updates[$key] : 0) . "',
-				'" . ($adds[$key] ? $adds[$key] : 0) . "')";
+				'" . (@$updates[$key] ? $updates[$key] : 0) . "',
+				'" . (@$adds[$key] ? $adds[$key] : 0) . "')";
 
 			debug($ins_grp_sql);
 			if (!db_query($ins_grp_sql)) {
@@ -392,8 +392,8 @@
 					'$d',
 					'$groups[0]',
 					'$user_id',
-					'" . ($usr_updates{$key}{$user_name}?$usr_updates{$key}{$user_name}:0)  . "',
-					'" . ($usr_adds{$key}{$user_name}?$usr_adds{$key}{$user_name}:0)  . "')";
+					'" . (@$usr_updates{$key}{$user_name}?$usr_updates{$key}{$user_name}:0)  . "',
+					'" . (@$usr_adds{$key}{$user_name}?$usr_adds{$key}{$user_name}:0)  . "')";
 
 					debug($usr_sql);
 

Added: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/update_users.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/update_users.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/scmsvn/cronjobs/update_users.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -0,0 +1,134 @@
+#! /usr/bin/php4 -f
+<?php
+/*
+ * update_users.php 
+ *
+ * Robert Nelson <robertn at the-nelsons.org>
+ *
+ *
+ * 	This script creates/updates the users and passwords associated
+ *	with the gforge subversion repositories.
+ *
+ * @version   $Id
+ */
+
+require ('squal_pre.php');
+require_once('common/include/cron_utils.php');
+
+//	Where is the SVN repository?
+$svn=$svndir_prefix;
+
+//the name of the access_file
+$access_file = "$svn/%s.access";
+$password_file = "$svn/%s.passwd";
+$access_root = "/";
+$per_group_access = True;
+
+$err = "Creating accounts for subversion repositories at ". $svn."\n";
+
+if (empty($svn) || util_is_root_dir($svn)) {
+	$err .=  "Error! svndir_prefix Is Not Set Or Points To The Root Directory!";
+	echo $err;
+	cron_entry(26,$err);
+	exit;
+}
+
+$res = db_query("SELECT is_public,enable_anonscm,unix_group_name,groups.group_id 
+	FROM groups, plugins, group_plugin 
+	WHERE groups.status != 'P' 
+	AND groups.group_id=group_plugin.group_id
+	AND group_plugin.plugin_id=plugins.plugin_id
+	AND plugins.plugin_name='scmsvn'");
+
+if (!$res) {
+	$err .=  "Error! Database Query Failed: ".db_error();
+	echo $err;
+	cron_entry(26,$err);
+	exit;
+}
+
+// The content of the access file used by svn authz apache2 module
+$access_file_content = '';
+
+while ( $group_row =& db_fetch_array($res) ) {	
+	$access_file_content .= add2AccessFile($group_row['group_id']);
+	if ($per_group_access) {
+		writeAccessFile(sprintf($access_file, $group_row['unix_group_name']), $access_file_content);
+		$access_file_content = '';
+
+		// Now generate the contents for the password file
+		$res = db_query('SELECT user_name,unix_pw FROM users NATURAL JOIN user_group WHERE group_id=\''.$group_row['group_id'].'\'');
+		if (!$res) {
+			$err .=  "Error! Database Query Failed: ".db_error();
+			echo $err;
+			cron_entry(26,$err);
+			exit;
+		}
+
+		$password_file_content = '';
+		while ( $user_row =& db_fetch_array($res) ) {
+			if (!empty($user_row['unix_pw']))
+				$password_file_content .= $user_row['user_name'].':'.$user_row['unix_pw']."\n";
+		}
+		writePasswordFile(sprintf($password_file, $group_row['unix_group_name']), $password_file_content);
+	}
+}
+
+if (!$per_group_access) {
+	// Now generate the contents for the password file
+	$password_file_contents = '';
+	$res = db_query("SELECT * FROM users WHERE user_id IN (SELECT DISTINCT user_id FROM user_group ug, group_plugin gp, plugins p
+		WHERE ug.group_id=gp.group_id AND gp.plugin_id=p.plugin_id AND p.plugin_name='scmsvn')");
+	if (!$res) {
+		$err .=  "Error! Database Query Failed: ".db_error();
+		echo $err;
+		cron_entry(26,$err);
+		exit;
+	}
+
+	while ( $row =& db_fetch_array($res) ) {
+		if (!empty($row["unix_pw"]))
+			$password_file_contents .= $row["user_name"].":".$row["unix_pw"]."\n";
+	}
+
+	writeAccessFile($access_file, $access_file_content);
+	writePasswordFile($password_file, $password_file_contents);
+}
+
+function add2AccessFile($group_id) {
+	$result = "";
+	$project = &group_get_object($group_id);
+	$result = "[". $project->getUnixName(). ":/]\n";
+	$users = &$project->getMembers();
+	foreach($users as $user ) {
+		$perm = &$project->getPermission($user);
+		if ( $perm->isCVSWriter() ) {
+			$result.= $user->getUnixName() . "= rw\n";
+		} else if ( $perm->isCVSReader() ) {
+			$result.= $user->getUnixName() . "= r\n";
+		}
+	}
+	if ( $project->enableAnonSCM() ) {
+		$result.="anonsvn= r\n";
+		$result.="* = r\n";
+
+	}
+	$result.="\n";
+	return $result;
+}
+
+function writeAccessFile($fileName, $access_file_content) {
+	$myFile= fopen( $fileName, "w" );
+	fwrite ( $myFile, $access_file_content );
+	fclose($myFile);
+}
+
+function writePasswordFile($fileName, $password_file_contents) {
+	$myFile = fopen( $fileName, "w" );
+	fwrite ( $myFile, $password_file_contents );
+	fwrite ( $myFile, 'anonsvn:$apr1$Kfr69/..$J08mbyNpD81y42x7xlFDm.'."\n");
+	fclose($myFile);
+}
+
+cron_entry(26,$err);
+?>

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t.png	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t.png	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,4 +1,5 @@
 ‰PNG
 
    
-IHDR         ó˜·G   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDATxÚc````b``¢æ̘?00ÿ £`î°X Á|9_‹þ    IEND®B`‚
\ No newline at end of file
+IHDR         ´8Í—   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   &IDAT×c` Á
+&@D ˆ¡`ÂNÀ%àŠá  ™$ámF¬4    IEND®B`‚
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t2.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t2.png	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/images/t2.png	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,4 +1,5 @@
 ‰PNG
 
    
-IHDR         ó˜·G   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDATxÚc` ‚Ææöþù{0’sÙÁR@@e »¨ñ ¬œV    IEND®B`‚
\ No newline at end of file
+IHDR         ´8Í—   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDAT×c`€  f¬ BD„	FÁ
+'À\°D	+\Ø    å¼Á^&–ý    IEND®B`‚
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1833,6 +1833,16 @@
 rbac_edit	remove	Remove
 rbac_edit	role	Role
 rbac_edit	webcal	Webcalendar
+rbac_edit	projectadmin	Project Administration
+rbac_edit	frs	File Release System
+rbac_edit	scm	Source Code Management
+rbac_edit	docman	Document Management
+rbac_edit	forumadmin	Forum Administration
+rbac_edit	forum	Forum
+rbac_edit	trackeradmin	Tracker Administration
+rbac_edit	tracker	Tracker
+rbac_edit	pmadmin	Task Administration
+rbac_edit	pm	Task
 reporting	add	Add
 reporting	administrative	Administrative
 reporting	area	Areas

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_summary.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_summary.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/project_summary.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -102,7 +102,6 @@
 	}
 
 	$project =& group_get_object($group_id);
-	// ################## forums
 
 	if (!$project || !is_object($project)) {
 		return 'Could Not Create Project Object';

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massadd.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massadd.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massadd.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -50,6 +50,7 @@
 	$sql.="WHERE status='A' and type_id='1' and lastname LIKE '$sw%' ";
 } else {
 	$sql.="WHERE status='A' and type_id='1' and lastname ILIKE '$sw%' ";
+}
 $res=db_query($sql);
 
 $accumulated_ids = getStringFromRequest('accumulated_ids');

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massfinish.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massfinish.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/massfinish.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -53,7 +53,6 @@
 			$params[1] = $group_id;
 			plugin_hook('change_cal_permission',$params);
 	}
-	$group_id = getIntFromRequest('group_id');
 	Header("Location: index.php?group_id=$group_id&feedback=Successful");
 }
 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/roleedit.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/roleedit.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/project/admin/roleedit.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -109,7 +109,7 @@
 
 echo '
 <p>
-<form action="'.$PHP_SELF.'?group_id='.$group_id.'&role_id='. $role_id .'" method="post">';
+<form action="'.getStringFromServer('PHP_SELF').'?group_id='.$group_id.'&role_id='. $role_id .'" method="post">';
 
 if ($role_id != 'observer') {
 	echo '<strong>'._('Role Name').'</strong><br />
@@ -128,6 +128,7 @@
 //
 //	Everything is built on the multi-dimensial arrays in the Role object
 //
+$j = 0;
 $keys = array_keys($role->role_values);
 for ($i=0; $i<count($keys); $i++) {
 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/project/request.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/project/request.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/project/request.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -57,7 +57,7 @@
 
 ?>
 <p><?php echo _('You can request to join a project by clicking the submit button. An administrator will be emailed to approve or deny your request.'); ?></p>
-<form action="<?php echo "$PHP_SELF?group_id=$group_id"; ?>" method="post">
+<form action="<?php echo getStringFromServer('PHP_SELF')."?group_id=$group_id"; ?>" method="post">
 <p>
 <?php echo _('If you want, you can send a comment to the administrator:'); ?><br>
 <textarea name="comments" rows="15" cols="60"></textarea>

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/scm_utils.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/scm_utils.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/scm_utils.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -62,9 +62,11 @@
 			);
 		}
 	}
+	echo '<div style="width:99%">';
 }
 
 function scm_footer() {
+	echo '</div>';
 	site_project_footer(array());
 }
 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/viewvc_utils.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/viewvc_utils.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/scm/include/viewvc_utils.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -57,14 +57,18 @@
 	$viewcvs_path = $GLOBALS['sys_urlroot'].'/scm/viewvc';
 	
 	// this is very important ...
-	if (getStringFromServer('PATH_INFO') == '') {
-		$path = '/';
-	} else {
-		$path = getStringFromServer('PATH_INFO');
+	$path = getStringFromServer('PATH_INFO');
+	if ($path == '') {
+		$path = getStringFromServer('ORIG_PATH_INFO');
+	}
+
+	if ($path != '') {
 		// hack: path must always end with /
-		if (strrpos($path,'/') != (strlen($path)-1)) {
+		if ($path[strlen($path)-1] != '/') {
 			$path .= '/';
 		}
+	} else {
+		$path = '/';
 	}
 	
 	if ($repos_type == "cvs") {

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/snippet/package.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/snippet/package.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/snippet/package.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -119,7 +119,7 @@
 	?>
 	</p><?php echo _('<p>You can group together existing snippets into a package using this interface. Before creating your package, make sure all your snippets are in place and you have made a note of the snippet ID\'s.</p><ol><li>Create the package using this form.</li><li><strong>Then</strong> use the "Add Snippets to Package" link to add files to your package.</li></ol><p><span class="important">Note:</span> You can submit a new version of an existing package by browsing the library and using the link on the existing package. You should only use this page if you are submitting an entirely new package.'); ?></p>
 	<p/>
-	<form action="<?php echo $PHP_SELF; ?>" method="post">
+	<form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post">
 	<input type="hidden" name="form_key" value="<?php echo form_generate_key(); ?>"/>
 	<input type="hidden" name="post_changes" value="y" />
 	<input type="hidden" name="changes" value="First Posted Version" />

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/Theme.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/Theme.class	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/Theme.class	2011-02-24 17:34:30 UTC (rev 12040)
@@ -773,7 +773,7 @@
         global $Language;
          // display the searchmask
         print '
-        <form name="advancedsearch" action="'.$PHP_SELF.'" method="post">
+        <form name="advancedsearch" action="'.getStringFromServer('PHP_SELF').'" method="post">
         <input type="hidden" name="search" value="1"/>
         <input type="hidden" name="group_id" value="'.$group_id.'"/>
         <div align="center"><br />

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t.png	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t.png	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,4 +1,5 @@
 ‰PNG
 
    
-IHDR         ó˜·G   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDATxÚc````b``¢æ̘?00ÿ £`î°X Á|9_‹þ    IEND®B`‚
\ No newline at end of file
+IHDR         ´8Í—   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   &IDAT×c` Á
+&@D ˆ¡`ÂNÀ%àŠá  ™$ámF¬4    IEND®B`‚
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t2.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t2.png	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge/images/t2.png	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,4 +1,5 @@
 ‰PNG
 
    
-IHDR         ó˜·G   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDATxÚc` ‚Ææöþù{0’sÙÁR@@e »¨ñ ¬œV    IEND®B`‚
\ No newline at end of file
+IHDR         ´8Í—   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDAT×c`€  f¬ BD„	FÁ
+'À\°D	+\Ø    å¼Á^&–ý    IEND®B`‚
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t.png	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t.png	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,4 +1,5 @@
 ‰PNG
 
    
-IHDR         ó˜·G   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDATxÚc````b``¢æ̘?00ÿ £`î°X Á|9_‹þ    IEND®B`‚
\ No newline at end of file
+IHDR         ´8Í—   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   &IDAT×c` Á
+&@D ˆ¡`ÂNÀ%àŠá  ™$ámF¬4    IEND®B`‚
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t2.png
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t2.png	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/themes/gforge-classic/images/t2.png	2011-02-24 17:34:30 UTC (rev 12040)
@@ -1,4 +1,5 @@
 ‰PNG
 
    
-IHDR         ó˜·G   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDATxÚc` ‚Ææöþù{0’sÙÁR@@e »¨ñ ¬œV    IEND®B`‚
\ No newline at end of file
+IHDR         ´8Í—   	PLTEÀÀÀR!Œ   —w”ÿ   tRNS @æØf   bKGDf|d   tEXtSoftware gif2png 2.4.2£^G   *IDAT×c`€  f¬ BD„	FÁ
+'À\°D	+\Ø    å¼Á^&–ý    IEND®B`‚
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/ind.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/ind.php	2011-02-24 17:34:26 UTC (rev 12039)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/ind.php	2011-02-24 17:34:30 UTC (rev 12040)
@@ -53,7 +53,7 @@
 	//	Display existing artifact types
 	//
 	$atf = new ArtifactTypeFactory($group);
-	if (!$group || !is_object($group) || $group->isError()) {
+	if (!$atf || !is_object($atf) || $atf->isError()) {
 		exit_error('Error','Could Not Get ArtifactTypeFactory');
 	}
 



More information about the evolvis-commits mailing list