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 session_require(array('group'=>$group_id,'admin_flags'=>'A'));
39 // get current information
40 $group =& group_get_object($group_id);
41 if (!$group || !is_object($group)) {
42 exit_error('Error','Could Not Get Group');
43 } elseif ($group->isError()) {
44 exit_error('Error',$group->getErrorMessage());
47 $perm =& $group->getPermission( session_get_user() );
48 if (!$perm || !is_object($perm)) {
49 exit_error('Error','Could Not Get Permission');
50 } elseif ($perm->isError()) {
51 exit_error('Error',$perm->getErrorMessage());
54 if (!$perm->isAdmin()) {
55 exit_permission_denied();
61 add user to this project
63 if (!$group->addUser($form_unix_name,$role_id)) {
64 $feedback .= $group->getErrorMessage();
66 $feedback = $Language->getText('project_admin','user_added');
70 remove a user from this group
72 if (!$group->removeUser($user_id)) {
73 $feedback .= $group->getErrorMessage();
75 $feedback = $Language->getText('project_admin','user_removed');
77 } else if ($updateuser) {
81 if (!$group->updateUser($user_id,$role_id)) {
82 $feedback .= 'Foo'.$group->getErrorMessage();
84 $feedback = $Language->getText('project_admin','user_updated');
91 project_admin_header(array('title'=>$Language->getText('project_admin','title', array($group->getPublicName())),'group'=>$group->getID(),'pagename'=>'project_admin','sectionvals'=>array($group->getPublicName())));
94 Show top box listing trove and other info
99 <table width="100%" cellpadding="2" cellspacing="2" border="0">
103 <?php echo $HTML->boxTop($Language->getText('project_admin','project_information')); ?>
107 <?php echo $Language->getText('project_admin','short_description') ?><?php echo $group->getDescription(); ?>
108 <p><?php echo $Language->getText('project_admin','homepage_link') ?><strong><?php echo $group->getHomepage(); ?></strong></p>
109 <p><?php echo $Language->getText('project_admin','shell_server') ?><strong><?php echo $group->getUnixName().'.'.$GLOBALS['sys_default_domain']; ?></strong></p>
110 <p><?php echo $Language->getText('project_admin','shell_server_group_directory') ?><br/><strong><?php echo account_group_homedir($group->getUnixName()); ?></strong></p>
111 <p><?php echo $Language->getText('project_admin','www_directory') ?><br /><strong><?php echo account_group_homedir($group->getUnixName()).'/htdocs'; ?></p>
114 <a href="/tarballs.php?group_id=<?php echo $group_id; ?>">[ <?php echo $Language->getText('project_admin','download_tarball') ?>]</a></p>
118 <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>
121 echo $HTML->boxMiddle($Language->getText('project_admin','tool_admin').'');
123 if($sys_use_tracker) { ?>
124 <a href="/tracker/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','tracker_admin') ?></a><br />
126 if($sys_use_docman) { ?>
127 <a href="/docman/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','docmanager_admin') ?></a><br />
129 if($sys_use_mail) { ?>
130 <a href="/mail/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','mail_admin') ?></a><br />
132 if($sys_use_news) { ?>
133 <a href="/news/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','news_admin') ?></a><br />
136 <a href="/pm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','task_manager_admin') ?></a><br />
138 if($sys_use_forum) { ?>
139 <a href="/forum/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','forum_admin') ?></a><br />
141 if($sys_use_frs) { ?>
142 <a href="/frs/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','frs_admin') ?></a><br />
144 if($sys_use_scm) { ?>
145 <a href="/scm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo $Language->getText('project_admin','scm_admin') ?></a><br />
148 $hook_params = array () ;
149 $hook_params['group_id'] = $group_id ;
150 plugin_hook ("project_admin_plugins", $hook_params) ;
153 echo $HTML->boxBottom();
162 echo $HTML->boxTop($Language->getText('project_admin','group_members'));
166 Show the members of this project
170 $res_memb = db_query("SELECT users.realname,users.user_id,
171 users.user_name,user_group.admin_flags,user_group.role_id
172 FROM users,user_group
173 WHERE users.user_id=user_group.user_id
174 AND user_group.group_id='$group_id' ORDER BY user_id");
177 <table width="100% border="2">
178 <tr><td><strong>'.$Language->getText('project_admin','unix_name').'</strong></td>
179 <td><strong>'.$Language->getText('rbac_edit','role').'</strong></td>
180 <td><strong>'.$Language->getText('rbac_edit','update').'</strong></td>
181 <td><strong>'.$Language->getText('rbac_edit','remove').'</strong></td></tr>';
183 while ($row_memb=db_fetch_array($res_memb)) {
186 <form action="'.$PHP_SELF.'" method="post">
187 <input type="hidden" name="submit" value="y" />
188 <input type="hidden" name="user_id" value="'.$row_memb['user_id'].'" />
189 <input type="hidden" name="group_id" value="'. $group_id .'" />
190 <td>'.$row_memb['realname'].'</td>
191 <td>'.role_box($group_id,'role_id',$row_memb['role_id']).'</td>
192 <td><input type="submit" name="updateuser" value="'.$Language->getText('rbac_edit','update').'"></td>
193 <td><input type="submit" name="rmuser" value="'.$Language->getText('rbac_edit','remove').'"></td>
197 <tr><td>'.$Language->getText('rbac_edit','observerusername').'</td>
199 <form action="roleedit.php?group_id='. $group_id .'&role_id=observer" method="POST">
200 <td colspan="2"><input type="submit" name="edit" value="'.$Language->getText('rbac_edit','observer').'"></td></form></tr>';
207 <form action="<?php echo $PHP_SELF.'?group_id='.$group_id; ?>" method="post">
208 <input type="hidden" name="submit" value="y" />
209 <tr><td><input type="text" name="form_unix_name" size="10" value="" /></td>
210 <td><?php echo role_box($group_id,'role_id',$row_memb['role_id']); ?></td>
211 <td colspan="2"><input type="submit" name="adduser" value="<?php echo $Language->getText('project_admin','add_user') ?>" /></td>
214 <tr><td colspan="4"><a href="massadd.php?group_id=<?php echo $group_id; ?>"><?php echo $Language->getText('project_admin','addfromlist'); ?></a></td></tr>
224 // RBAC Editing Functions
226 echo $HTML->boxMiddle($Language->getText('rbac_edit','editroles'));
227 echo '<form action="roleedit.php?group_id='. $group_id .'" method="POST">';
228 echo role_box($group_id,'role_id','');
229 echo '<input type="submit" name="edit" value="'.$Language->getText('rbac_edit','editrole').'"></form>';
231 echo '<p><a href="roleedit.php?group_id='.$group_id.'">'.$Language->getText('rbac_edit','addrole').'</a>';
233 echo $HTML->boxBottom();?>
242 project_admin_footer(array());