3 * Project Admin Main Page
5 * This page contains administrative information for the project as well
6 * as allows to manage it. This page should be accessible to all project
7 * members, but only admins may perform most functions.
9 * Copyright 2004 GForge, LLC
12 * @author Tim Perdue tim@gforge.org
14 * This file is part of GForge.
16 * GForge is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation; either version 2 of the License, or
19 * (at your option) any later version.
21 * GForge is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
26 * You should have received a copy of the GNU General Public License
27 * along with GForge; if not, write to the Free Software
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 require_once('pre.php');
33 require_once('www/project/admin/project_admin_utils.php');
34 require_once('www/include/role_utils.php');
35 require_once('common/include/account.php');
37 // get current information
38 $group =& group_get_object($group_id);
39 if (!$group || !is_object($group)) {
40 exit_error('Error','Could Not Get Group');
41 } elseif ($group->isError()) {
42 exit_error('Error',$group->getErrorMessage());
45 $perm =& $group->getPermission( session_get_user() );
46 if (!$perm || !is_object($perm)) {
47 exit_error('Error','Could Not Get Permission');
48 } elseif ($perm->isError()) {
49 exit_error('Error',$perm->getErrorMessage());
52 if (!$perm->isAdmin()) {
53 exit_permission_denied();
59 add user to this project
61 if (!$group->addUser($form_unix_name,$role_id)) {
62 $feedback .= $group->getErrorMessage();
64 $feedback = $Language->getText('project_admin','user_added');
68 remove a user from this group
70 if (!$group->removeUser($user_id)) {
71 $feedback .= $group->getErrorMessage();
73 $feedback = $Language->getText('project_admin','user_removed');
75 } else if ($updateuser) {
79 if (!$group->updateUser($user_id,$role_id)) {
80 $feedback .= 'Foo'.$group->getErrorMessage();
82 $feedback = $Language->getText('project_admin','user_updated');
89 project_admin_header(array('title'=>$Language->getText('project_admin','title', array($group->getPublicName())),'group'=>$group->getID(),'pagename'=>'project_admin','sectionvals'=>array($group->getPublicName())));
92 Show top box listing trove and other info
97 <table width="100%" cellpadding="2" cellspacing="2" border="0">
101 <?php echo $HTML->boxTop($Language->getText('project_admin','project_information')); ?>
105 <?php echo $Language->getText('project_admin','short_description') ?><?php echo $group->getDescription(); ?>
106 <p><?php echo $Language->getText('project_admin','homepage_link') ?><strong><?php echo $group->getHomepage(); ?></strong></p>
107 <p><?php echo $Language->getText('project_admin','shell_server') ?><strong><?php echo $group->getUnixName().'.'.$GLOBALS['sys_default_domain']; ?></strong></p>
108 <p><?php echo $Language->getText('project_admin','shell_server_group_directory') ?><br/><strong><?php echo account_group_homedir($group->getUnixName()); ?></strong></p>
109 <p><?php echo $Language->getText('project_admin','www_directory') ?><br /><strong><?php echo account_group_homedir($group->getUnixName()).'/htdocs'; ?></p>
112 <a href="/tarballs.php?group_id=<?php echo $group_id; ?>">[ <?php echo $Language->getText('project_admin','download_tarball') ?>]</a></p>
116 <h4><?php echo $Language->getText('project_admin','trove_categorization') ?><a href="/project/admin/group_trove.php?group_id=<?php echo $group->getID(); ?>">[<?php echo $Language->getText('general','edit') ?>]</a></h4>
119 echo $HTML->boxMiddle($Language->getText('project_admin','tool_admin').'');
121 if($sys_use_tracker) { ?>
122 <a href="/tracker/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','tracker_admin') ?></a><br />
124 if($sys_use_docman) { ?>
125 <a href="/docman/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','docmanager_admin') ?></a><br />
127 if($sys_use_mail) { ?>
128 <a href="/mail/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','mail_admin') ?></a><br />
130 if($sys_use_news) { ?>
131 <a href="/news/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','news_admin') ?></a><br />
134 <a href="/pm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','task_manager_admin') ?></a><br />
136 if($sys_use_forum) { ?>
137 <a href="/forum/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','forum_admin') ?></a><br />
139 if($sys_use_frs) { ?>
140 <a href="/frs/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','frs_admin') ?></a><br />
142 if($sys_use_scm) { ?>
143 <a href="/scm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','scm_admin') ?></a><br />
146 $hook_params = array () ;
147 $hook_params['group_id'] = $group_id ;
148 plugin_hook ("project_admin_plugins", $hook_params) ;
151 echo $HTML->boxBottom();
160 echo $HTML->boxTop($Language->getText('project_admin','group_members'));
164 Show the members of this project
168 $res_memb = db_query("SELECT users.realname,users.user_id,
169 users.user_name,user_group.admin_flags,user_group.role_id
170 FROM users,user_group
171 WHERE users.user_id=user_group.user_id
172 AND user_group.group_id='$group_id' ORDER BY user_id");
175 <table width="100% border="2">
176 <tr><td><strong>'.$Language->getText('project_admin','unix_name').'</strong></td>
177 <td><strong>'.$Language->getText('rbac_edit','role').'</strong></td>
178 <td><strong>'.$Language->getText('rbac_edit','update').'</strong></td>
179 <td><strong>'.$Language->getText('rbac_edit','remove').'</strong></td></tr>';
181 while ($row_memb=db_fetch_array($res_memb)) {
184 <form action="'.$PHP_SELF.'" method="post">
185 <input type="hidden" name="submit" value="y" />
186 <input type="hidden" name="user_id" value="'.$row_memb['user_id'].'" />
187 <input type="hidden" name="group_id" value="'. $group_id .'" />
188 <td>'.$row_memb['realname'].'</td>
189 <td>'.role_box($group_id,'role_id',$row_memb['role_id']).'</td>
190 <td><input type="submit" name="updateuser" value="'.$Language->getText('rbac_edit','update').'"></td>
191 <td><input type="submit" name="rmuser" value="'.$Language->getText('rbac_edit','remove').'"></td>
195 <tr><td>'.$Language->getText('rbac_edit','observerusername').'</td>
197 <form action="roleedit.php?group_id='. $group_id .'&role_id=observer" method="POST">
198 <td colspan="2"><input type="submit" name="edit" value="'.$Language->getText('rbac_edit','observer').'"></td></form></tr>';
205 <form action="<?php echo $PHP_SELF.'?group_id='.$group_id; ?>" method="post">
206 <input type="hidden" name="submit" value="y" />
207 <tr><td><input type="text" name="form_unix_name" size="10" value="" /></td>
208 <td><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?></td>
209 <td colspan="2"><input type="submit" name="adduser" value="<?php echo $Language->getText('project_admin','add_user') ?>" /></td>
212 <tr><td colspan="4"><a href="massadd.php?group_id=<?php echo $group_id; ?>"><?php echo $Language->getText('project_admin','addfromlist'); ?></a></td></tr>
222 // RBAC Editing Functions
224 echo $HTML->boxMiddle($Language->getText('rbac_edit','editroles'));
225 echo '<form action="roleedit.php?group_id='. $group_id .'" method="POST">';
226 echo role_box($group_id,'role_id','');
227 echo '<input type="submit" name="edit" value="'.$Language->getText('rbac_edit','editrole').'"></form>';
229 echo '<p><a href="roleedit.php?group_id='.$group_id.'">'.$Language->getText('rbac_edit','addrole').'</a>';
231 echo $HTML->boxBottom();?>
240 project_admin_footer(array());