[Fusionforge-commits] r8716 - trunk/gforge/www/project/admin

Alain Peyrat aljeux at libremir.placard.fr.eu.org
Sat Feb 6 21:15:00 CET 2010


Author: aljeux
Date: 2010-02-06 21:15:00 +0100 (Sat, 06 Feb 2010)
New Revision: 8716

Added:
   trunk/gforge/www/project/admin/tools.php
   trunk/gforge/www/project/admin/users.php
Modified:
   trunk/gforge/www/project/admin/index.php
   trunk/gforge/www/project/admin/project_admin_utils.php
Log:
Split main project admin page in three pages: info, users, tools

Modified: trunk/gforge/www/project/admin/index.php
===================================================================
--- trunk/gforge/www/project/admin/index.php	2010-02-06 19:55:30 UTC (rev 8715)
+++ trunk/gforge/www/project/admin/index.php	2010-02-06 20:15:00 UTC (rev 8716)
@@ -27,14 +27,11 @@
  * 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.'project/admin/project_admin_utils.php';
-require_once $gfwww.'include/role_utils.php';
-require_once $gfcommon.'include/account.php';
-require_once $gfcommon.'include/GroupJoinRequest.class.php';
 
+
 $group_id = getIntFromRequest('group_id');
 session_require(array('group'=>$group_id,'admin_flags'=>'A'));
 
@@ -57,134 +54,17 @@
 	exit_permission_denied();
 }
 
-if (getStringFromRequest('submit')) {
-	if (getStringFromRequest('adduser')) {
-		/*
-			add user to this project
-		 */
-		$form_unix_name = getStringFromRequest('form_unix_name');
-		$user_object = &user_get_object_by_name($form_unix_name);
-		if (!$user_object) {
-			$feedback = sprintf(_('Failed to find user %s'), $form_unix_name);
-		} else {
-			$user_id = $user_object->getID();
-			$role_id = getIntFromRequest('role_id');
-			if (!$group->addUser($form_unix_name,$role_id)) {
-				$feedback = $group->getErrorMessage();
-			} else {
-				$feedback = _('User Added Successfully');
-
-				//plugin webcal
-				//change assistant for webcal
-				$params[0] = getIntFromRequest('user_id');
-				$params[1] = getIntFromRequest('group_id');
-				plugin_hook('change_cal_permission',$params);
-				$group_id = getIntFromRequest('group_id');
-
-				//if the user have requested to join this group
-				//we should remove him from the request list
-				//since it has already been added
-				$gjr=new GroupJoinRequest($group,$user_id);
-				if ($gjr || is_object($gjr) || !$gjr->isError()) {
-					$gjr->delete(true);
-				}
-			}
-		}
-	} else if (getStringFromRequest('rmuser')) {
-		/*
-			remove a user from this group
-		*/
-		$user_id = getIntFromRequest('user_id');
-		if (!$group->removeUser($user_id)) {
-			$feedback = $group->getErrorMessage();
-		} else {
-			$feedback = _('User Removed Successfully');
-			//plugin webcal
-			//change assistant for webcal
-			$params[0] = getIntFromRequest('user_id');
-			$params[1] = getIntFromRequest('group_id');
-			plugin_hook('change_cal_permission',$params);
-			$group_id = getIntFromRequest('group_id');
-		}
-	} else if (getStringFromRequest('updateuser')) {
-		/*
-			Adjust User Role
-		*/
-		$user_id = getIntFromRequest('user_id');
-		$role_id = getIntFromRequest('role_id');
-		if (!$group->updateUser($user_id,$role_id)) {
-			$feedback = $group->getErrorMessage();
-		} else {
-			$feedback = _('User updated successfully');
-			//plugin webcal
-			//change assistant for webcal
-			$params[0] = getIntFromRequest('user_id');
-			$params[1] = getIntFromRequest('group_id');
-			plugin_hook('change_cal_permission',$params);
-			$group_id = getIntFromRequest('group_id');
-			
-		}
-	} elseif (getStringFromRequest('acceptpending')) {
-		/*
-			add user to this project
-		*/
-		$form_userid = getIntFromRequest('form_userid');
-		$form_unix_name = getStringFromRequest('form_unix_name');
-		$role_id = getIntFromRequest('role_id');
-		if (!$group->addUser($form_unix_name,$role_id)) {
-			$feedback = $group->getErrorMessage();
-		} else {
-			$gjr=new GroupJoinRequest($group,$form_userid);
-			if (!$gjr || !is_object($gjr) || $gjr->isError()) {
-				$feedback = 'Error Getting GroupJoinRequest';
-			} else {
-				$gjr->send_accept_mail();
-				$gjr->delete(true);
-				$feedback = _('User Added Successfully');
-			}
-		}
-	} elseif (getStringFromRequest('rejectpending')) {
-		/*
-			reject adding user to this project
-		*/
-		$form_userid = getIntFromRequest('form_userid');
-		$gjr=new GroupJoinRequest($group,$form_userid);
-		if (!$gjr || !is_object($gjr) || $gjr->isError()) {
-			$feedback = 'Error Getting GroupJoinRequest';
-		} else {
-			if (!$gjr->reject()) {
-				exit_error('Error',$gjr->getErrorMessage());
-			} else {
-				$feedback = 'Rejected';
-			}
-		}
-	} 
-}
-
 $group->clearError();
 
 $adminheadertitle=sprintf(_('Project Admin: %1$s'), $group->getPublicName() );
 project_admin_header(array('title'=>$adminheadertitle, 'group'=>$group->getID()));
-
-/*
-	Show top box listing trove and other info
-*/
-
 ?>
 
-<table width="100%" cellpadding="2" cellspacing="2" border="0">
-	<tr valign="top">
-		<td width="50%">
-
 <?php echo $HTML->boxTop(_('Misc. Project Information'));  ?>
 
-&nbsp;
-<br />
-<?php echo _('Short Description:&nbsp;') ?><?php echo $group->getDescription(); ?>
-<p><?php echo _('Homepage Link:&nbsp;') ?><strong><?php echo $group->getHomepage(); ?></strong></p>
 
 <?php
-	global $sys_use_shell, $sys_use_trove;
+	global $sys_use_shell;
 	if ($sys_use_shell) {
 ?> 
 <p><?php echo _('Group shell (SSH) server:&nbsp;') ?><strong><?php echo $group->getUnixName().'.'.$GLOBALS['sys_default_domain']; ?></strong></p>
@@ -194,185 +74,195 @@
 	} //end of use_shell condition
 ?> 
 
-<?php	if($sys_use_scm) { ?>
-	<p>[ <?php echo util_make_link ('/tarballs.php?group_id='.$group_id,_('Download Your Nightly SCM Tree Tarball')) ?> ]</p>
-<?php	} ?>
-
-<?php if ($GLOBALS['sys_use_project_tags']) { ?>
-	<p>
-	<?php echo _('Tags') ?>:&nbsp;
-	<?php echo $group->getTags(); ?>
-	</p>
-<?php } ?>
-
-<?php	if($sys_use_trove) { ?>
-<p>
-<h4><?php echo _('Trove Categorization:&nbsp;') ?><?php echo util_make_link ('/project/admin/group_trove.php?group_id='. $group->getID(),'['._('Edit').']'); ?></h4>
-</p>
-        <?php } //end of use_trove condition
-?>
-
 <?php
-echo $HTML->boxMiddle(_('Tool Admin').'');
+// If this was a submission, make updates
+if (getStringFromRequest('submit')) {
+	$form_group_name = getStringFromRequest('form_group_name');
+	$form_shortdesc = getStringFromRequest('form_shortdesc');
+	$form_homepage = getStringFromRequest('form_homepage');
+	$logo_image_id = getIntFromRequest('logo_image_id');
+	$use_mail = getStringFromRequest('use_mail');
+	$use_survey = getStringFromRequest('use_survey');
+	$use_forum = getStringFromRequest('use_forum');
+	$use_pm = getStringFromRequest('use_pm');
+	$use_scm = getStringFromRequest('use_scm');
+	$use_news = getStringFromRequest('use_news');
+	$use_docman = getStringFromRequest('use_docman');
+	$use_ftp = getStringFromRequest('use_ftp');
+	$use_tracker = getStringFromRequest('use_tracker');
+	$use_frs = getStringFromRequest('use_frs');
+	$use_stats = getStringFromRequest('use_stats');
+	$tags = getStringFromRequest('form_tags');
+	$is_public = getIntFromRequest('is_public');
+	$new_doc_address = getStringFromRequest('new_doc_address');
+	$send_all_docs = getStringFromRequest('send_all_docs');
 
-if($sys_use_tracker) { ?>
-	<?php echo util_make_link ('/tracker/admin/?group_id='. $group->getID(), _('Tracker admin')) ?><br />
-<?php }
-if($sys_use_docman) { ?>
-	<?php echo util_make_link ('/docman/admin/?group_id='. $group->getID(),_('Doc manager admin')) ?><br />
-<?php }
-if($sys_use_mail) { ?>
-	<?php echo util_make_link ('/mail/admin/?group_id='. $group->getID(),_('Mail admin')) ?><br />
-<?php }
-if($sys_use_news) { ?>
-	<?php echo util_make_link ('/news/admin/?group_id='. $group->getID(),_('News admin')) ?></a><br />
-<?php }
-if($sys_use_pm) { ?>
-	<?php echo util_make_link ('/pm/admin/?group_id='. $group->getID(),_('Task manager admin')) ?></a><br />
-<?php }
-if($sys_use_forum) { ?>
-	<?php echo util_make_link ('/forum/admin/?group_id='. $group->getID(),_('Forum admin')) ?></a><br />
-<?php }
-if($sys_use_frs) { ?>
-	<?php echo util_make_link ('/frs/admin/?group_id='. $group->getID(),_('FRS admin')) ?></a><br />
-<?php }
-if($sys_use_scm) { ?>
-	<?php echo util_make_link ('/scm/admin/?group_id='. $group->getID(),_('SCM admin')) ?></a><br />
-<?php }
+	$res = $group->update(
+		session_get_user(),
+		$form_group_name,
+		$form_homepage,
+		$form_shortdesc,
+		$use_mail,
+		$use_survey,
+		$use_forum,
+		$use_pm,
+		1,
+		$use_scm,
+		$use_news,
+		$use_docman,
+		$new_doc_address,
+		$send_all_docs,
+		100,
+		$use_ftp,
+		$use_tracker,
+		$use_frs,
+		$use_stats,
+		$tags,
+		$is_public
+	);
+	
+	//100 $logo_image_id
 
-$hook_params = array () ;
-$hook_params['group_id'] = $group_id ;
-plugin_hook ("project_admin_plugins", $hook_params) ;
+	if (!$res) {
+		$feedback .= $group->getErrorMessage();
+	} else {
+		$feedback .= _('Project information updated');
+	}
+}
 
+?>
 
-echo $HTML->boxBottom(); 
+<form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post">
 
-?>
-		</td>
-		<td>&nbsp;</td>
-		<td width="50%">
+<input type="hidden" name="group_id" value="<?php echo $group->getID(); ?>" />
 
-<?php
+<p>
+<?php echo _('Descriptive Project Name') ?>:<br />
+<input type="text" name="form_group_name" value="<?php echo $group->getPublicName(); ?>" size="40" maxlength="40" />
+</p>
 
-		echo $HTML->boxTop(_('Group Members'));
+<p>
+<?php echo _('Short Description (255 Character Max, HTML will be stripped from this description)') ?>:<br />
+<textarea cols="80" rows="3" name="form_shortdesc">
+<?php echo $group->getDescription(); ?>
+</textarea>
+</p>
 
-		/*
+<p>
+<?php echo _('Tags (use comma as separator)') ?>:<br />
+<input type="text" name="form_tags" size="100" value="<?php echo $group->getTags(); ?>" />
+</p>
 
-			Show the members of this project
+<p><?php echo _('Trove Categorization:&nbsp;') ?><a href="/project/admin/group_trove.php?group_id=<?php echo $group->getID(); ?>">[<?php echo _('Edit') ?>]</a></p>
 
-		*/
+<p>
+<?php echo _('Homepage Link') ?>:<br />
+<input type="text" name="form_homepage" size="100" value="<?php echo $group->getHomePage(); ?>" />
+</p>
 
-		$res_memb = db_query_params ('SELECT users.realname,users.user_id,users.status,
-			users.user_name,user_group.admin_flags,user_group.role_id
-			FROM users,user_group 
-			WHERE users.user_id=user_group.user_id 
-			AND user_group.group_id=$1 ORDER BY users.lastname,users.firstname',
-			array($group_id));
+<?php
+	if ($sys_use_private_project) {
+		echo '<p>' ;
+		echo _('Visibility: ');
+		echo html_build_select_box_from_arrays(
+               array('0','1'),
+               array(  _('Private'), _('Public') ),
+               'is_public', $group->isPublic(), false);
+	} else {
+		echo "<input type=hidden name=\"is_public\" value=\"1\">";
+	}
+?>
 
-		echo '
-		<table width="100%" border="0">
-			<tr><td><strong>'._('Unix name').'</strong></td>
-			<td><strong>'._('Role').'</strong></td>
-			<td><strong>'._('Update').'</strong></td>
-			<td><strong>'._('Remove').'</strong></td></tr>';
+<?php
+// This function is used to render checkboxes below
+function c($v) {
+        if ($v) {
+                return 'checked="checked"';
+        } else {
+                return '';
+        }
+}
+?>
 
-while ($row_memb=db_fetch_array($res_memb)) {
+<?php
+if($sys_use_mail) {
+?>
+<input type="hidden" name="use_mail" value="<?php echo ($group->usesMail() ? '1' : '0'); ?>" />
+<?php
+} 
 
-		if ($row_memb['status']=='P') {
-			$status = "<span class=\"pending\">"._("Pending (P)")."</span>";
-		} else if ($row_memb['status']=='S') {
-			$status = "<span class=\"suspended\">"._("Suspended (S)")."</span>";
-		} else {
-			$status = "";
-		}
+if($sys_use_survey) {
+?>
+<input type="hidden" name="use_survey" value="<?php echo ($group->usesSurvey() ? '1' : '0'); ?>" />
+<?php
+}
 
-		echo '
-			<form action="'.getStringFromServer('PHP_SELF').'" method="post">
-			<input type="hidden" name="submit" value="y" />
-			<input type="hidden" name="user_id" value="'.$row_memb['user_id'].'" />
-			<input type="hidden" name="group_id" value="'. $group_id .'" />
-			<td>'.$row_memb['realname'].' ('.$row_memb['user_name'].') '.$status.'</td>
-			<td>'.role_box($group_id,'role_id',$row_memb['role_id']).'</td>
-			<td><input type="submit" name="updateuser" value="'._('Update').'"></td>
-			<td><input type="submit" name="rmuser" value="'._('Remove').'"></td>
-			</tr></form>';
+if($sys_use_forum) {
+?>
+<input type="hidden" name="use_forum" value="<?php echo ($group->usesForum() ? '1' : '0'); ?>" />
+<?php
 }
-		echo '
-			<tr><td>'._('Observer').'</td>
-			<td></td>
-			<form action="roleedit.php?group_id='. $group_id .'&amp;role_id=observer" method="POST">
-			<td colspan="2"><input type="submit" name="edit" value="'._('Edit Observer').'"></td></form></tr>';
 
-/*
-	Add member form
-*/
+if($sys_use_pm) {
+?>
+<input type="hidden" name="use_pm" value="<?php echo ($group->usesPM() ? '1' : '0'); ?>" />
+<?php
+}
 
+if($sys_use_scm) {
 ?>
-			<form action="<?php echo getStringFromServer('PHP_SELF').'?group_id='.$group_id; ?>" method="post">
-			<input type="hidden" name="submit" value="y" />
-			<tr><td><input type="text" name="form_unix_name" size="10" value="" /></td>
-			<td><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?></td>
-			<td colspan="2"><input type="submit" name="adduser" value="<?php echo _('Add user') ?>" /></td>
-			</tr></form>
+<input type="hidden" name="use_scm" value="<?php echo ($group->usesSCM() ? '1' : '0'); ?>" />
+<?php
+}
 
-			<tr><td colspan="4"><a href="massadd.php?group_id=<?php echo $group_id; ?>"><?php echo _('Add Users From List'); ?></a></td></tr>
-		</table>
-<!--	</td></tr>
-</td>
-<td width="50%">
-&nbsp;
-</td>-->
-<?php 
-//
-//	Pending requests
-//
-echo $HTML->boxMiddle(_('Pending Requests'));
-$reqs =& get_group_join_requests($group);
-if (count($reqs) < 1) {
-	echo _('No Pending Requests');
-} else {
-	for ($i=0; $i<count($reqs); $i++) {
-		$user =& user_get_object($reqs[$i]->getUserId());
-		if (!$user || !is_object($user)) {
-			echo "Invalid User";
-		}
-		?>
-		<form action="<?php echo getStringFromServer('PHP_SELF').'?group_id='.$group_id; ?>" method="post">
-		<input type="hidden" name="submit" value="y" />
-		<input type="hidden" name="form_userid" value="<?php echo $user->getId(); ?>" />
-		<tr><td><input type="hidden" name="form_unix_name" value="<?php echo $user->getUnixName(); ?>" /><?php echo util_make_link_u ($user->getUnixName(),$user->getId(),$user->getRealName()); ?></td>
-		<td><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?>
-			<input type="submit" name="acceptpending" value="<?php echo _('Accept') ?>" />
-			<input type="submit" name="rejectpending" value="<?php echo _('Reject') ?>" /></td>
-			</tr></form>
-		
-		<?php
-	}
+if($sys_use_news) {
+?>
+<input type="hidden" name="use_news" value="<?php echo ($group->usesNews() ? '1' : '0'); ?>" />
+<?php
 }
 
+if($sys_use_docman) {
+?>
+<input type="hidden" name="use_docman" value="<?php echo ($group->usesDocman() ? '1' : '0'); ?>" />
+<?php
+}
 
-//
-//	RBAC Editing Functions
-//
-echo $HTML->boxMiddle(_('Edit Roles'));
-echo '<form action="roleedit.php?group_id='. $group_id .'" method="POST">';
-echo role_box($group_id,'role_id','');
-echo '<input type="submit" name="edit" value="'._('Edit Role').'"></form>';
+if($sys_use_ftp) {
+?>
+<input type="hidden" name="use_ftp" value="<?php echo ($group->usesFTP() ? '1' : '0'); ?>" />
+<?php
+}
 
-echo '<p><a href="roleedit.php?group_id='.$group_id.'">'._('Add Role').'</a>';
+if($sys_use_tracker) {
+?>
+<input type="hidden" name="use_tracker" value="<?php echo ($group->usesTracker() ? '1' : '0'); ?>" />
+<?php
+}
 
-//
-//	Project hierarchy functions
+if($sys_use_frs) {
+?>
+<input type="hidden" name="use_frs" value="<?php echo ($group->usesFRS() ? '1' : '0'); ?>" />
+<?php } ?>
 
-plugin_hook('admin_project_link',$group_id) ;
+<input type="hidden" name="use_stats" value="<?php echo ($group->usesStats() ? '1' : '0'); ?>" />
 
+<p>
+<?php echo _('If you wish, you can provide default email addresses to which new submissions will be sent') ?>.<br />
+<strong><?php echo _('New Document Submissions') ?>:</strong><br />
+<input type="text" name="new_doc_address" value="<?php echo $group->getDocEmailAddress(); ?>" size="40" maxlength="250" />
+<?php echo _('(send on all updates)') ?>
+<input type="checkbox" name="send_all_docs" value="1" <?php echo c($group->docEmailAll()); ?> />
+</p>
 
-echo $HTML->boxBottom();?>
+<p>
+<input type="submit" name="submit" value="<?php echo _('Update') ?>" />
+</p>
 
-		</td>
-	</tr>
+</form>
 
-</table>
+<?php
+echo $HTML->boxBottom(); 
+?>
 
 <?php
 

Modified: trunk/gforge/www/project/admin/project_admin_utils.php
===================================================================
--- trunk/gforge/www/project/admin/project_admin_utils.php	2010-02-06 19:55:30 UTC (rev 8715)
+++ trunk/gforge/www/project/admin/project_admin_utils.php	2010-02-06 20:15:00 UTC (rev 8716)
@@ -58,8 +58,9 @@
 	$labels = array();
 	$links = array();
 	
-	//$labels[] = _('Admin');
-	$labels[] = _('Edit Public Info');
+	$labels[] = _('Project Info');
+	$labels[] = _('Users');
+	$labels[] = _('Tools');
 	$labels[] = _('Project History');
 	if($GLOBALS['sys_use_people']) {
 		$labels[] = _('Post Jobs');
@@ -79,8 +80,9 @@
 	}
 	plugin_hook("quota_label_project_admin");
 	
-	//$links[] = '/project/admin/?group_id='.$group_id;
-	$links[] = '/project/admin/editgroupinfo.php?group_id='.$group_id;
+	$links[] = '/project/admin/?group_id='.$group_id;
+	$links[] = '/project/admin/users.php?group_id='.$group_id;
+	$links[] = '/project/admin/tools.php?group_id='.$group_id;
 	$links[] = '/project/admin/history.php?group_id='.$group_id;
 	if($GLOBALS['sys_use_people']) {
 		$links[] = '/people/createjob.php?group_id='.$group_id;
@@ -149,14 +151,15 @@
 		this group_id
 	*/
 
+	echo '<h1>'._('Project History').'</h1>';
+
 	$result=group_get_history($group_id);
 	$rows=db_numrows($result);
 	
 	if ($rows > 0) {
 	
-		echo '
-		<h3>'._('Group Change History').'</h3>
-		<p/>';
+		echo '<p>'._('This log will show who made significant changes to your project and when').'</p>';
+
 		$title_arr=array();
 		$title_arr[]=_('Field');
 		$title_arr[]=_('Old Value');
@@ -186,10 +189,9 @@
 		echo $GLOBALS['HTML']->listTableBottom();
 
 	} else {
-		echo '  
-		<h3>'._('No changes').'</h3>';
-	}	   
-}	   
+		echo '<p>'._('No changes').'</p>';
+	}
+}
 
 /*
 	prdb_namespace_seek - check that a projects' potential db name hasn't

Added: trunk/gforge/www/project/admin/tools.php
===================================================================
--- trunk/gforge/www/project/admin/tools.php	                        (rev 0)
+++ trunk/gforge/www/project/admin/tools.php	2010-02-06 20:15:00 UTC (rev 8716)
@@ -0,0 +1,333 @@
+<?php
+/**
+ * Project Admin page to edit tools information
+ *
+ * Portions Copyright 1999-2001 (c) VA Linux Systems
+ * The rest Copyright 2002-2004 (c) GForge Team
+ * http://gforge.org/
+ *
+ * This file is part of GForge.
+ *
+ * GForge is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with 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.'project/admin/project_admin_utils.php';
+
+$group_id = getIntFromRequest('group_id');
+session_require(array('group'=>$group_id,'admin_flags'=>'A'));
+
+$group =& group_get_object($group_id);
+if (!$group || !is_object($group)) {
+	exit_error(_('Error'), _('Error creating group object'));
+} else if ($group->isError()) {
+	exit_error(_('Error'), $group->getErrorMessage());
+}
+
+// If this was a submission, make updates
+if (getStringFromRequest('submit')) {
+	$form_group_name = getStringFromRequest('form_group_name');
+	$form_shortdesc = getStringFromRequest('form_shortdesc');
+	$form_homepage = getStringFromRequest('form_homepage');
+	$logo_image_id = getIntFromRequest('logo_image_id');
+	$use_mail = getStringFromRequest('use_mail');
+	$use_survey = getStringFromRequest('use_survey');
+	$use_forum = getStringFromRequest('use_forum');
+	$use_pm = getStringFromRequest('use_pm');
+	$use_scm = getStringFromRequest('use_scm');
+	$use_news = getStringFromRequest('use_news');
+	$use_docman = getStringFromRequest('use_docman');
+	$use_ftp = getStringFromRequest('use_ftp');
+	$use_tracker = getStringFromRequest('use_tracker');
+	$use_frs = getStringFromRequest('use_frs');
+	$use_stats = getStringFromRequest('use_stats');
+	$tags = getStringFromRequest('form_tags');
+	$new_doc_address = getStringFromRequest('new_doc_address');
+	$send_all_docs = getStringFromRequest('send_all_docs');
+
+	$res = $group->update(
+		session_get_user(),
+		$form_group_name,
+		$form_homepage,
+		$form_shortdesc,
+		$use_mail,
+		$use_survey,
+		$use_forum,
+		$use_pm,
+		1,
+		$use_scm,
+		$use_news,
+		$use_docman,
+		$new_doc_address,
+		$send_all_docs,
+		100,
+		$use_ftp,
+		$use_tracker,
+		$use_frs,
+		$use_stats,
+		$tags,
+		$group->isPublic()
+	);
+	
+	//100 $logo_image_id
+
+	if (!$res) {
+		$feedback .= $group->getErrorMessage();
+	} else {
+		$feedback .= _('Project information updated');
+	}
+
+	// This is done so plugins can enable/disable themselves from the project
+	$hookParams['group']=$group_id;
+	plugin_hook("groupisactivecheckboxpost",$hookParams);
+}
+
+project_admin_header(array('title'=>_('Edit Project Info'),'group'=>$group->getID()));
+
+echo '<table width="100%">';
+echo '<tr valign="top">';
+echo '<td width="50%">';
+
+echo $HTML->boxTop(_('Active Features').'');
+?>
+
+<form action="<?php echo getStringFromServer('PHP_SELF'); ?>" method="post">
+
+<input type="hidden" name="group_id" value="<?php echo $group->getID(); ?>" />
+<input type="hidden" name="form_group_name" value="<?php echo $group->getPublicName(); ?>" />
+<input type="hidden" name="form_shortdesc" value="<?php echo $group->getDescription(); ?>" />
+<input type="hidden" name="form_tags" size="100" value="<?php echo $group->getTags(); ?>" />
+<input type="hidden" name="form_homepage" size="100" value="<?php echo $group->getHomePage(); ?>" />
+
+<?php
+
+// This function is used to render checkboxes below
+function c($v) {
+	if ($v) {
+		return 'checked="checked"';
+	} else {
+		return '';
+	}
+}
+
+/*
+	Show the options that this project is using
+*/
+
+?>
+
+<table>
+<?php
+if($sys_use_forum) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_forum" value="1" <?php echo c($group->usesForum()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Forums') ?></strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_tracker) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_tracker" value="1" <?php echo c($group->usesTracker()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Trackers') ?></strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_mail) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_mail" value="1" <?php echo c($group->usesMail()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Mailing Lists') ?></strong>
+</td>
+</tr>
+<?php
+} 
+
+if($sys_use_pm) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_pm" value="1" <?php echo c($group->usesPM()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Task Manager') ?></strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_docman) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_docman" value="1" <?php echo c($group->usesDocman()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Documents') ?></strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_survey) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_survey" value="1" <?php echo c($group->usesSurvey()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Surveys') ?></strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_news) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_news" value="1" <?php echo c($group->usesNews()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use News') ?> </strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_scm) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_scm" value="1" <?php echo c($group->usesSCM()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Source Code') ?></strong>
+</td>
+</tr>
+<?php
+}
+
+if($sys_use_frs) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_frs" value="1" <?php echo c($group->usesFRS()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use File Release System') ?></strong>
+</td>
+</tr>
+<?php 
+} 
+
+if($sys_use_ftp) {
+?>
+<tr>
+<td>
+<input type="checkbox" name="use_ftp" value="1" <?php echo c($group->usesFTP()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use FTP') ?></strong>
+</td>
+</tr>
+<?php } ?>
+<tr>
+<td>
+<input type="checkbox" name="use_stats" value="1" <?php echo c($group->usesStats()); ?> />
+</td>
+<td>
+<strong><?php echo _('Use Statistics') ?></strong>
+</td>
+</tr>
+
+<?php 
+$hookParams['group']=$group_id;
+plugin_hook("groupisactivecheckbox",$hookParams);
+?>
+
+</table>
+
+<input type="hidden" name="new_doc_address" value="<?php echo $group->getDocEmailAddress(); ?>" />
+<input type="hidden" name="send_all_docs" value="1" <?php echo c($group->docEmailAll()); ?> />
+
+<input type="submit" name="submit" value="<?php echo _('Update') ?>" />
+</form>
+
+<br />
+
+<?php
+echo $HTML->boxBottom(); 
+echo '</td>';
+
+echo '<td>';
+echo $HTML->boxTop(_('Tool Admin').'');
+
+if($group->usesForum()) { ?>
+	<p><a href="/forum/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Forums Admin') ?></a></p>
+<?php }
+if($group->usesTracker()) { ?>
+	<p><a href="/tracker/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Trackers Admin') ?></a></p>
+<?php }
+if($group->usesMail()) { ?>
+	<p><a href="/mail/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Mailing Lists Admin') ?></a></p>
+<?php }
+if($group->usesPM()) { ?>
+	<p><a href="/pm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Task Manager Admin') ?></a></p>
+<?php }
+if($group->usesDocman()) { ?>
+	<p><a href="/docman/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Documents Admin') ?></a></p>
+<?php }
+if($group->usesSurvey()) { ?>
+	<p><a href="/survey/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Survey Admin') ?></a></p>
+<?php }
+if($group->usesNews()) { ?>
+	<p><a href="/news/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('News Admin') ?></a></p>
+<?php }
+if($group->usesSCM()) { ?>
+	<p><a href="/scm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('Source Code Admin') ?></a></p>
+<?php }
+if($group->usesFRS()) { ?>
+	<p><a href="/frs/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo _('File Release System Admin') ?></a></p>
+<?php }
+
+$hook_params = array () ;
+$hook_params['group_id'] = $group_id ;
+plugin_hook ("project_admin_plugins", $hook_params) ;
+
+echo $HTML->boxBottom(); 
+
+echo '</td>';
+echo '</tr>';
+echo '</table>';
+
+project_admin_footer(array());
+
+?>

Added: trunk/gforge/www/project/admin/users.php
===================================================================
--- trunk/gforge/www/project/admin/users.php	                        (rev 0)
+++ trunk/gforge/www/project/admin/users.php	2010-02-06 20:15:00 UTC (rev 8716)
@@ -0,0 +1,315 @@
+<?php
+/**
+ * Project Admin Main Page
+ *
+ * This page contains administrative information for the project as well
+ * as allows to manage it. This page should be accessible to all project
+ * members, but only admins may perform most functions.
+ *
+ * Copyright 2004 GForge, LLC
+ *
+ * @version   $Id: index.php 5829 2006-10-19 20:02:18Z federicot $
+ * @author Tim Perdue tim at gforge.org
+ *
+ * This file is part of GForge.
+ *
+ * GForge is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with 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.'project/admin/project_admin_utils.php';
+require_once $gfwww.'include/role_utils.php';
+require_once $gfcommon.'include/account.php';
+require_once $gfcommon.'include/GroupJoinRequest.class.php';
+
+$group_id = getIntFromRequest('group_id');
+$feedback = getStringFromRequest('feedback');
+session_require(array('group'=>$group_id,'admin_flags'=>'A'));
+
+// get current information
+$group =& group_get_object($group_id);
+if (!$group || !is_object($group)) {
+	exit_error('Error','Could Not Get Group');
+} elseif ($group->isError()) {
+	exit_error('Error',$group->getErrorMessage());
+}
+
+$perm =& $group->getPermission( session_get_user() );
+if (!$perm || !is_object($perm)) {
+	exit_error('Error','Could Not Get Permission');
+} elseif ($perm->isError()) {
+	exit_error('Error',$perm->getErrorMessage());
+}
+
+if (!$perm->isAdmin()) {
+	exit_permission_denied();
+}
+
+// Add hook to replace users managements by a plugin.
+$html_code = array();
+if (plugin_hook_listeners("project_admin_users") > 0) {
+	$hook_params = array () ;
+	$hook_params['group_id'] = $group_id ;
+	plugin_hook ("project_admin_users", $hook_params);
+}
+
+if (getStringFromRequest('submit')) {
+	if (getStringFromRequest('adduser')) {
+		/*
+			add user to this project
+			*/
+		$form_unix_name = getStringFromRequest('form_unix_name');
+		$user_object = &user_get_object_by_name($form_unix_name);
+		if ($user_object === false) {
+			$feedback .= _("<p>No Matching Users Found</p>");
+		} else {
+			$role_id = getIntFromRequest('role_id');
+			if (!$role_id) {
+				$feedback .= _("Role not selected");
+			} else {
+				$user_id = $user_object->getID();
+				if (!$group->addUser($form_unix_name,$role_id)) {
+					$error_msg = $group->getErrorMessage();
+				} else {
+					$feedback = _("User Added Successfully");
+					//if the user have requested to join this group
+					//we should remove him from the request list
+					//since it has already been added
+					$gjr=new GroupJoinRequest($group,$user_id);
+					if ($gjr || is_object($gjr) || !$gjr->isError()) {
+						$gjr->delete(true);
+					}
+				}
+			}
+		}
+	} else if (getStringFromRequest('rmuser')) {
+		/*
+			remove a user from this group
+			*/
+		$user_id = getIntFromRequest('user_id');
+		if (!$group->removeUser($user_id)) {
+			$error_msg = $group->getErrorMessage();
+		} else {
+			$feedback = _("User Removed Successfully");
+		}
+	} else if (getStringFromRequest('updateuser')) {
+		/*
+			Adjust User Role
+			*/
+		$user_id = getIntFromRequest('user_id');
+		$role_id = getIntFromRequest('role_id');
+		if (! $role_id) {
+			$error_msg = _("Role not selected");
+		}
+		else {
+			if (!$group->updateUser($user_id,$role_id)) {
+				$error_msg = $group->getErrorMessage();
+			} else {
+				$feedback = _("User Updated Successfully");
+			}
+		}
+	} elseif (getStringFromRequest('acceptpending')) {
+		/*
+			add user to this project
+			*/
+		$role_id = getIntFromRequest('role_id');
+		if (!$role_id) {
+			$feedback .= _("Role not selected");
+		} else {
+			$form_userid = getIntFromRequest('form_userid');
+			$form_unix_name = getStringFromRequest('form_unix_name');
+			if (!$group->addUser($form_unix_name,$role_id)) {
+				$error_msg = $group->getErrorMessage();
+			} else {
+				$gjr=new GroupJoinRequest($group,$form_userid);
+				if (!$gjr || !is_object($gjr) || $gjr->isError()) {
+					$error_msg = 'Error Getting GroupJoinRequest';
+				} else {
+					$gjr->delete(true);
+				}
+				$feedback = _("User Added Successfully");
+			}
+		}
+	} elseif (getStringFromRequest('rejectpending')) {
+		/*
+			reject adding user to this project
+			*/
+		$form_userid = getIntFromRequest('form_userid');
+		$gjr=new GroupJoinRequest($group,$form_userid);
+		if (!$gjr || !is_object($gjr) || $gjr->isError()) {
+			$feedback .= 'Error Getting GroupJoinRequest';
+		} else {
+			if (!$gjr->reject()) {
+				exit_error('Error',$gjr->getErrorMessage());
+			} else {
+				$feedback .= 'Rejected';
+			}
+		}
+	}
+}
+
+$group->clearError();
+
+project_admin_header(array('title'=>sprintf(_('Project Admin: %s'), $group->getPublicName()),'group'=>$group->getID()));
+
+/*
+ Show top box listing trove and other info
+ */
+
+?>
+
+<table width="100%" cellpadding="2" cellspacing="2">
+	<tr valign="top">
+		<td width="50%"><?php 
+		//
+		//	Pending requests
+		//
+		$reqs =& get_group_join_requests($group);
+		if (count($reqs) > 0) {
+			echo $HTML->boxTop(_("Pending Requests"));
+			for ($i=0; $i<count($reqs); $i++) {
+				$user =& user_get_object($reqs[$i]->getUserId());
+				if (!$user || !is_object($user)) {
+					echo "Invalid User";
+				}
+				?>
+		<form action="<?php echo $PHP_SELF.'?group_id='.$group_id; ?>"
+			method="post">
+		<table width="100%">
+			<tr>
+				<td style="white-space: nowrap;"><input type="hidden" name="submit"
+					value="y" /> <input type="hidden" name="form_userid"
+					value="<?php echo $user->getId(); ?>" /> <input type="hidden"
+					name="form_unix_name" value="<?php echo $user->getUnixName(); ?>" /><a
+					href="/users/<?php echo $user->getUnixName(); ?>"><?php echo $user->getRealName(); ?></a>
+				</td>
+				<td style="white-space: nowrap; text-align: right;"><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?>
+				<input type="submit" name="acceptpending"
+					value="<?php echo _("Accept") ?>" />
+				<input type="submit" name="rejectpending"
+					value="<?php echo _("Reject") ?>" />
+				</td>
+			</tr>
+		</table>
+		</form>
+
+		<?php
+			}
+			echo $HTML->boxBottom();
+		}
+
+		echo $HTML->boxTop(_("Add User"));
+
+		if (isset($html_code['add_user'])) {
+			echo $html_code['add_user'];
+		} else {
+
+			/*
+			 Add member form
+			 */
+			?>
+		<form
+			action="<?php echo getStringFromServer('PHP_SELF').'?group_id='.$group_id; ?>"
+			method="post">
+		<p><input type="hidden" name="submit" value="y" /> <input type="text"
+			name="form_unix_name" size="10" value="" /> <?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?>
+		<input type="submit" name="adduser"
+			value="<?php echo _("Add User") ?>" />
+		</p>
+		</form>
+		</td>
+	</tr>
+
+	<tr>
+		<td colspan="2"><a
+			href="massadd.php?group_id=<?php echo $group_id; ?>"><?php echo _("Add Users From List"); ?></a>
+
+			<?php
+		}
+		//
+		//      RBAC Editing Functions
+		//
+		echo $HTML->boxMiddle(_("Edit Roles"));
+
+		echo '
+        <form action="roleedit.php?group_id='. $group_id .'&amp;role_id=observer" method="post">
+        <p><input type="submit" name="edit" value="'._("Edit Observer").'" /></p>
+        </form></td></tr>';
+
+		echo '<tr><td colspan="2"><form action="roleedit.php?group_id='. $group_id .'" method="post">';
+		echo role_box($group_id,'role_id','');
+		echo '&nbsp;<input type="submit" name="edit" value="'._("Edit Role").'" /></form></td></tr>';
+
+		echo '<tr><td colspan="2">';
+		echo '<p><a href="roleedit.php?group_id='.$group_id.'">'._("Add Role").'</a>';
+		echo '</p>';
+
+		echo $HTML->boxBottom();
+
+		?></td>
+		<td><?php
+
+		echo $HTML->boxTop(_("Project Members"));
+
+		/*
+
+		Show the members of this project
+
+		*/
+
+		$res_memb = db_query("SELECT users.realname,users.user_id,
+			users.user_name,user_group.admin_flags,user_group.role_id
+			FROM users,user_group 
+			WHERE users.user_id=user_group.user_id 
+			AND user_group.group_id='$group_id' ORDER BY users.realname");
+
+		while ($row_memb=db_fetch_array($res_memb)) {
+
+			echo '
+		<form action="'.getStringFromServer('PHP_SELF').'" method="post">
+		<table width="100%">
+                        <tr>
+                        <td style="white-space: nowrap;">
+			  <input type="hidden" name="submit" value="y" />
+			  <input type="hidden" name="user_id" value="'.$row_memb['user_id'].'" />
+			  <input type="hidden" name="group_id" value="'. $group_id .'" />
+			  <a href="/users/'.$row_memb['user_name'].'">'.$row_memb['realname'].'</a>
+			</td>
+			<td style="white-space: nowrap; text-align: right;">';
+		if (! $row_memb['is_external']) {
+			echo role_box($group_id,'role_id',$row_memb['role_id']);
+		}
+		else {
+			echo external_role_box($group_id,'role_id',$row_memb['role_id']);
+		}
+		echo '<input type="submit" name="updateuser" value="'._("Update").'" />';
+		echo '<input type="submit" name="rmuser" value="'._("Remove").'" />
+                        </td>
+			</tr>
+		</table>
+                </form>';
+}
+echo $HTML->boxBottom(); 
+?></td>
+	</tr>
+
+</table>
+
+<?php
+
+project_admin_footer(array());
+
+?>




More information about the Fusionforge-commits mailing list