gforge-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gforge-commits] gforge/www/project/admin database.php, 1.8, 1.9 editgro


From: tperdue
Subject: [Gforge-commits] gforge/www/project/admin database.php, 1.8, 1.9 editgroupinfo.php, 1.19, 1.20 index.php, 1.19, 1.20 massadd.php, NONE, 1.1 massfinish.php, NONE, 1.1 project_admin_utils.php, 1.14, 1.15 rmuser.php, 1.5, NONE roleedit.php, NONE, 1.1 userpermedit.php, 1.10, NONE userperms.php, 1.6, NONE vhost.php, 1.7, 1.8
Date: Wed, 04 Aug 2004 11:18:58 -0500

Update of /cvsroot/gforge/gforge/www/project/admin
In directory db.perdue.net:/home/tperdue/share/dev.gforge.org/www/project/admin

Modified Files:
        database.php editgroupinfo.php index.php 
        project_admin_utils.php vhost.php 
Added Files:
        massadd.php massfinish.php roleedit.php 
Removed Files:
        rmuser.php userpermedit.php userperms.php 
Log Message:
RBAC, DELETION, AND FORUM EMAIL GATEWAY

Index: database.php
===================================================================
RCS file: /cvsroot/gforge/gforge/www/project/admin/database.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- database.php        25 Mar 2004 19:25:21 -0000      1.8
+++ database.php        4 Aug 2004 16:18:42 -0000       1.9
@@ -17,7 +17,6 @@
 
 
 require_once('pre.php');
-require_once('common/include/vars.php');
 require_once('www/project/admin/project_admin_utils.php');
 
 if (!$sys_use_project_database) {

Index: editgroupinfo.php
===================================================================
RCS file: /cvsroot/gforge/gforge/www/project/admin/editgroupinfo.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- editgroupinfo.php   22 Jul 2004 18:41:36 -0000      1.19
+++ editgroupinfo.php   4 Aug 2004 16:18:42 -0000       1.20
@@ -14,7 +14,6 @@
 
 
 require_once('pre.php');
-require_once('common/include/vars.php');
 require_once('www/project/admin/project_admin_utils.php');
 
 session_require(array('group'=>$group_id,'admin_flags'=>'A'));

Index: index.php
===================================================================
RCS file: /cvsroot/gforge/gforge/www/project/admin/index.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- index.php   16 May 2004 16:54:54 -0000      1.19
+++ index.php   4 Aug 2004 16:18:42 -0000       1.20
@@ -1,68 +1,87 @@
 <?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.
-  *
-  * SourceForge: Breaking Down the Barriers to Open Source Development
-  * Copyright 1999-2001 (c) VA Linux Systems
-  * http://sourceforge.net
-  *
-  * @version   $Id$
-  *
-  */
+ * 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$
+ * @author Tim Perdue address@hidden
+ *
+ * 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('pre.php');
 require_once('www/project/admin/project_admin_utils.php');
+require_once('www/include/role_utils.php');
 require_once('common/include/account.php');
 
-session_require(array('group'=>$group_id));
-
 // get current information
 $group =& group_get_object($group_id);
-exit_assert_object($group,'Group');
+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() );
-exit_assert_object($perm,'Permission');
-
-// only site admin get access inactive projects
-if (!$group->isActive() && !$perm->isSuperUser()) {
-       exit_error('Permission denied', 'Group is inactive.');
+if (!$perm || !is_object($perm)) {
+       exit_error('Error','Could Not Get Permission');
+} elseif ($perm->isError()) {
+       exit_error('Error',$perm->getErrorMessage());
 }
 
-$is_admin = $perm->isAdmin();
+if (!$perm->isAdmin()) {
+       exit_permission_denied();
+}
 
-// Only admin can make modifications via this page
-if ($is_admin && $func) {
-       /*
-               updating the database
-       */
-       if ($func=='adduser') {
+if ($submit) {
+       if ($adduser) {
                /*
                        add user to this project
                */
-
-               if (!$group->addUser($form_unix_name)) {
+               if (!$group->addUser($form_unix_name,$role_id)) {
                        $feedback .= $group->getErrorMessage();
                } else {
                        $feedback = 
$Language->getText('project_admin','user_added');
                }
-
-       } else if ($func=='rmuser') {
+       } else if ($rmuser) {
                /*
                        remove a user from this group
                */
-               if (!$group->removeUser($rm_id)) {
+               if (!$group->removeUser($user_id)) {
                        $feedback .= $group->getErrorMessage();
                } else {
                        $feedback = 
$Language->getText('project_admin','user_removed');
                }
+       } else if ($updateuser) {
+               /*
+                       Adjust User Role
+               */
+               if (!$group->updateUser($user_id,$role_id)) {
+                       $feedback .= 'Foo'.$group->getErrorMessage();
+               } else {
+                       $feedback = 
$Language->getText('project_admin','user_updated');
+               }
        }
-
 }
 
 $group->clearError();
@@ -76,7 +95,8 @@
 ?>
 
 <table width="100%" cellpadding="2" cellspacing="2" border="0">
-<tr valign="top"><td width="50%">
+       <tr valign="top">
+               <td width="50%">
 
 <?php echo 
$HTML->boxTop($Language->getText('project_admin','project_information'));  ?>
 
@@ -90,134 +110,114 @@
 
 <p align="center">
 <a href="/tarballs.php?group_id=<?php echo $group_id; ?>">[ <?php echo 
$Language->getText('project_admin','download_tarball') ?>]</a></p>
-<p>&nbsp;</p>
+</p>
 <hr />
-<p>&nbsp;</p>
-<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>
 <p>
+<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>
+</p>
+<?php
+echo $HTML->boxMiddle($Language->getText('project_admin','tool_admin').'');
+
+?>
+
+<a href="/tracker/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','tracker_admin') ?></a><br />
+<a href="/docman/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','docmanager_admin') ?></a><br />
+<a href="/mail/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','mail_admin') ?></a><br />
+<a href="/news/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','news_admin') ?></a><br />
+<a href="/pm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','task_manager_admin') ?></a><br />
+<a href="/forum/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','forum_admin') ?></a><br />
+<a href="/frs/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','frs_admin') ?></a><br />
+<a href="/scm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','scm_admin') ?></a><br />
 <?php
+$hook_params = array () ;
+$hook_params['group_id'] = $group_id ;
+plugin_hook ("project_admin_plugins", $hook_params) ;
+
+
 echo $HTML->boxBottom(); 
 
-echo '
-</td><td>&nbsp;</td><td width="50%">';
+?>
+               </td>
+               <td>&nbsp;</td>
+               <td width="50%">
 
+<?php
 
-echo $HTML->boxTop($Language->getText('project_admin','group_members'));
+               echo 
$HTML->boxTop($Language->getText('project_admin','group_members'));
 
-/*
+               /*
 
-       Show the members of this project
+                       Show the members of this project
 
-*/
+               */
 
-$res_memb = db_query("SELECT 
users.realname,users.user_id,users.user_name,user_group.admin_flags ".
-               "FROM users,user_group ".
-               "WHERE users.user_id=user_group.user_id ".
-               "AND user_group.group_id='$group_id'");
+               $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 user_id");
 
-print '<table width="100% border="0">';
+               echo '
+               <table width="100% border="2">
+                       
<tr><td><strong>'.$Language->getText('project_admin','unix_name').'</strong></td>
+                       
<td><strong>'.$Language->getText('rbac_edit','role').'</strong></td>
+                       
<td><strong>'.$Language->getText('rbac_edit','update').'</strong></td>
+                       
<td><strong>'.$Language->getText('rbac_edit','remove').'</strong></td></tr>';
 
 while ($row_memb=db_fetch_array($res_memb)) {
 
-       if (stristr($row_memb['admin_flags'], 'A')) {
-               $img="trash-x.png";
-       } else {
-               $img="trash.png";
-       }
-       if ($is_admin) {
-               $button='<input type="image" name="DELETE" 
src="'.$HTML->imgroot.'/ic/'.$img.'" height="16" width="16" border="0" />';
-       } else {
-               $button='&nbsp;';
-       }
-       print '
-               <form action="rmuser.php" method="post"><input type="hidden" 
name="func" value="rmuser" />'.
-               '<input type="hidden" name="return_to" value="'.$REQUEST_URI.'" 
/>'.
-               '<input type="hidden" name="rm_id" 
value="'.$row_memb['user_id'].'" />'.
-               '<input type="hidden" name="group_id" value="'. $group_id .'" 
/>'.
-               '<tr><td align="center">'.$button.'</td></form>'.
-               '<td><a 
href="/users/'.$row_memb['user_name'].'/">'.$row_memb['realname'].'</a></td></tr>';
+               echo '
+                       <form action="'.$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'].'</td>
+                       
<td>'.role_box($group_id,'role_id',$row_memb['role_id']).'</td>
+                       <td><input type="submit" name="updateuser" 
value="'.$Language->getText('rbac_edit','update').'"></td>
+                       <td><input type="submit" name="rmuser" 
value="'.$Language->getText('rbac_edit','remove').'"></td>
+                       </tr></form>';
 }
-print '</table>';
+               echo '
+                       
<tr><td>'.$Language->getText('rbac_edit','observerusername').'</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="'.$Language->getText('rbac_edit','observer').'"></td></form></tr>';
 
 /*
        Add member form
 */
 
-if ($is_admin) {
-
-       // After adding user, we go to the permission page for one
-?>
-       <hr size="1" />
-       <form action="userpermedit.php?group_id=<?php echo $group->getID(); ?>" 
method="post">
-       <input type="hidden" name="func" value="adduser" />
-       <table width="100%" border="0">
-       <tr><td><strong><?php echo 
$Language->getText('project_admin','unix_name') ?>:</strong></td><td><input 
type="text" name="form_unix_name" size="10" value="" /></td></tr>
-       <tr><td colspan="2" align="center"><input type="submit" name="submit" 
value="<?php echo $Language->getText('project_admin','add_user') ?>" 
/></td></tr></form>
-       </table>
-
-       <hr size="1" />
-       <div align="center">
-       <a href="/project/admin/userperms.php?group_id=<?php echo 
$group->getID(); ?>">[<?php echo 
$Language->getText('project_admin','edit_member_permissions') ?>]</a>
-       </div>
-       </td></tr>
-
-<?php
-}
 ?>
- 
+                       <form action="<?php echo 
$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 $Language->getText('project_admin','add_user') ?>" /></td>
+                       </tr></form>
 
+                       <tr><td colspan="4"><a href="massadd.php?group_id=<?php 
echo $group_id; ?>"><?php echo 
$Language->getText('project_admin','addfromlist'); ?></a></td></tr>
+               </table>
+<!--   </td></tr>
 </td>
 <td width="50%">
 &nbsp;
-</td>
-<?php echo $HTML->boxBottom();?>
-</tr>
-
-<tr valign="top"><td width="50%">
-
-<?php
-
-/*
-       Tool admin pages
-*/
-
-echo $HTML->boxTop($Language->getText('project_admin','tool_admin').'');
-
-?>
-
-<br />
-<a href="/tracker/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','tracker_admin') ?></a><br />
-<a href="/docman/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','docmanager_admin') ?></a><br />
-<a href="/mail/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','mail_admin') ?></a><br />
-<a href="/news/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','news_admin') ?></a><br />
-<a href="/pm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','task_manager_admin') ?></a><br />
-<a href="/forum/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','forum_admin') ?></a><br />
-<a href="/frs/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','frs_admin') ?></a><br />
-<a href="/scm/admin/?group_id=<?php echo $group->getID(); ?>"><?php echo 
$Language->getText('project_admin','scm_admin') ?></a><br />
-
-<?php echo $HTML->boxBottom(); ?>
-
-
-
+</td>-->
+<?php 
 
-</td>
-</tr>
+//
+//     RBAC Editing Functions
+//
+echo $HTML->boxMiddle($Language->getText('rbac_edit','editroles'));
+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="'.$Language->getText('rbac_edit','editrole').'"></form>';
 
-<tr>
-<td>
-<?php
+echo '<p><a 
href="roleedit.php?group_id='.$group_id.'">'.$Language->getText('rbac_edit','addrole').'</a>';
 
-if (plugin_hook_listeners ("project_admin_plugins") > 0) {
-       echo $HTML->boxTop($Language->getText('project_admin','plugins_admin'));
-       $hook_params = array () ;
-       $hook_params['group_id'] = $group_id ;
-       plugin_hook ("project_admin_plugins", $hook_params) ;
+echo $HTML->boxBottom();?>
 
-       echo $HTML->boxBottom();
-}
-?>
-</td>
-</tr>
+               </td>
+       </tr>
 
 </table>
 
@@ -225,9 +225,4 @@
 
 project_admin_footer(array());
 
-// Local Variables:
-// mode: php
-// c-file-style: "bsd"
-// End:
-
 ?>

--- NEW FILE: massadd.php ---
<?php
/**
 * Role Editing Page
 *
 * Copyright 2004 (c) GForge LLC
 *
 * @version   $Id: massadd.php,v 1.1 2004/08/04 16:18:42 tperdue Exp $
 * @author Tim Perdue address@hidden
 * @date 2004-03-16
 *
 * 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('pre.php');
require_once('www/project/admin/project_admin_utils.php');
require_once('www/include/role_utils.php');

session_require(array('group'=>$group_id,'admin_flags'=>'A'));

$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());
}

if (!$sw) {
        $sw='A';
}

$res=db_query("SELECT user_id,user_name,lastname,firstname FROM users 
        WHERE status='A' and type_id='1' and lastname ILIKE '$sw%' ORDER BY 
lastname,firstname ASC");

if (!$accumulated_ids) {
        $accumulated_ids=array();
} else {
        $accumulated_ids =& explode(',',$accumulated_ids);
}

if (count($newids) > 0) {
        if (count($accumulated_ids) > 0) {
                $accumulated_ids =& array_merge($accumulated_ids,$newids);
        } else {
                $accumulated_ids=$newids;
        }
}
if ($finished) {
        header("Location: 
massfinish.php?group_id=$group_id&accumulated_ids=".implode(',',$accumulated_ids));
}

project_admin_header(array('title'=>$Language->getText('rbac_edit','pgtitle'),'group'=>$group_id));

echo '
<h2>'.$Language->getText('project_admin','addfromlist').'</h2>
<p>
'.$Language->getText('project_admin','addfromlist1').'
<p>
<form action="'.$PHP_SELF.'?group_id='.$group_id.'" method="post">
<input type="hidden" name="accumulated_ids" value="'. 
implode(',',$accumulated_ids) .'">';

$abc_array = 
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
echo "Choose the <strong>First Letter</strong> of the name of the person you 
wish to add.<p>";
for ($i=0; $i<count($abc_array); $i++) {
    if ($sw == $abc_array[$i]) {
        echo '<strong>'.$abc_array[$i].'</strong>&nbsp;';
    } else {
        echo '<input type="submit" name="sw" value="'.$abc_array[$i].'">&nbsp;';
    }
}

if (!$res || db_numrows($res) < 1) {
        echo "No Matching Users Found";
} else {

        $titles[]=$Language->getText('project_admin','userrealname');
        $titles[]=$Language->getText('project_admin','unix_name');
        $titles[]=$Language->getText('project_admin','add_user');

        echo $HTML->listTableTop($titles);

        //
        //      Everything is built on the multi-dimensial arrays in the Role 
object
        //
        for ($i=0; $i<db_numrows($res); $i++) {

                echo '<tr '. $HTML->boxGetAltRowStyle($i) . '>
                        <td>'.db_result($res,$i,'lastname').', 
'.db_result($res,$i,'firstname').'</td>
                        <td>'.db_result($res,$i,'user_name').'</td>
                        <td><input type="checkbox" name="newids[]" value="'. 
db_result($res,$i,'user_id') .'"></td></tr>';

        }

        echo $HTML->listTableBottom();

}

echo '<input type="submit" name="finished" value="Finished">
</form>';

project_admin_footer(array());

?>

--- NEW FILE: massfinish.php ---
<?php
/**
 * Finish Mass-adding users.
 *
 * Copyright 2004 (c) GForge LLC
 *
 * @version   $Id: massfinish.php,v 1.1 2004/08/04 16:18:42 tperdue Exp $
 * @author Tim Perdue address@hidden
 * @date 2004-03-16
 *
 * 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('pre.php');
require_once('www/project/admin/project_admin_utils.php');
require_once('www/include/role_utils.php');

session_require(array('group'=>$group_id,'admin_flags'=>'A'));

$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());
}

if ($finished) {
        $keys=array_keys($addrole);
        for ($i=0; $i<count($keys); $i++) {
                $group->addUser($keys[$i],$addrole[$keys[$i]]);
        }
        Header("Location: index.php?group_id=$group_id&feedback=Successful");
}

if (!$accumulated_ids) {
        exit_error('Error','No IDs Were Passed');
} else {
        $arr=explode(',',$accumulated_ids);
        $res=db_query("SELECT user_id,user_name,realname FROM users
                WHERE status='A' and type_id='1' and user_id IN ('". 
implode('\',\'',$arr) ."') 
                ORDER BY realname ASC");
}

project_admin_header(array('title'=>$Language->getText('rbac_edit','pgtitle'),'group'=>$group_id));

echo '
<h2>'.$Language->getText('project_admin','addfromlist').'</h2>
<p>
'.$Language->getText('project_admin','addfromlist2').'
<p>
<form action="'.$PHP_SELF.'?group_id='.$group_id.'" method="post">';

if (!$res || db_numrows($res) < 1) {
        echo "No Matching Users Found";
} else {

        $titles[]=$Language->getText('project_admin','userrealname');
        $titles[]=$Language->getText('project_admin','unix_name');
        $titles[]=$Language->getText('rbac_edit','role');

        echo $HTML->listTableTop($titles);

        //
        //      Everything is built on the multi-dimensial arrays in the Role 
object
        //
        for ($i=0; $i<db_numrows($res); $i++) {

                echo '<tr '. $HTML->boxGetAltRowStyle($i) . '>
                        <td>'.db_result($res,$i,'realname').'</td>
                        <td>'.db_result($res,$i,'user_name').'</td>
                        <td>'.role_box($group_id,'addrole['. 
db_result($res,$i,'user_id') .']','').'</td></tr>';

        }

        echo $HTML->listTableBottom();

}

echo '<input type="submit" name="finished" value="Add All">
</form>';

project_admin_footer(array());

?>

Index: project_admin_utils.php
===================================================================
RCS file: /cvsroot/gforge/gforge/www/project/admin/project_admin_utils.php,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- project_admin_utils.php     26 Mar 2004 10:43:49 -0000      1.14
+++ project_admin_utils.php     4 Aug 2004 16:18:42 -0000       1.15
@@ -47,7 +47,6 @@
        $links = array();
        
        $labels[] = $Language->getText('project_admin_utils','admin');
-       $labels[] = 
$Language->getText('project_admin_utils','user_permissions');
        $labels[] = 
$Language->getText('project_admin_utils','edit_public_info');
        $labels[] = $Language->getText('project_admin_utils','project_history');
        if($GLOBALS['sys_use_people']) {
@@ -66,7 +65,6 @@
        $labels[] = $Language->getText('project_admin_utils','stats');
        
        $links[] = '/project/admin/?group_id='.$group_id;
-       $links[] = '/project/admin/userperms.php?group_id='.$group_id;
        $links[] = '/project/admin/editgroupinfo.php?group_id='.$group_id;
        $links[] = '/project/admin/history.php?group_id='.$group_id;
        if($GLOBALS['sys_use_people']) {

--- rmuser.php DELETED ---

--- NEW FILE: roleedit.php ---
<?php
/**
 * Role Editing Page
 *
 * Copyright 2004 (c) GForge LLC
 *
 * @version   $Id: roleedit.php,v 1.1 2004/08/04 16:18:42 tperdue Exp $
 * @author Tim Perdue address@hidden
 * @date 2004-03-16
 *
 * 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('pre.php');
require_once('www/project/admin/project_admin_utils.php');
require_once('common/include/Role.class');
require_once('common/include/RoleObserver.class');

session_require(array('group'=>$group_id,'admin_flags'=>'A'));

//
//      The observer is a special role, which is actually
//      just controlling the is_public/allow anon flags
//
//      Get observer role instead of regular role
//
if ($role_id=='observer') {
        $role = new RoleObserver(group_get_object($group_id));
        if (!$role || !is_object($role)) {
                exit_error('Error','Could Not Get RoleObserver');
        } elseif ($role->isError()) {
                exit_error('Error',$role->getErrorMessage());
        }

        if ($submit) {
                if (!$role->update($data)) {
                        $feedback .= $role->getErrorMessage();
                } else {
                        $feedback .= ' Successfully Updated Role ';
                }
        }
} else {
        $role = new Role(group_get_object($group_id),$role_id);
        if (!$role || !is_object($role)) {
                exit_error('Error','Could Not Get Role');
        } elseif ($role->isError()) {
                exit_error('Error',$role->getErrorMessage());
        }

        if ($submit) {
                if (!$role_id) {
                        $role_id=$role->create($role_name,$data);
                        if (!$role_id) {
                                $feedback .= $role->getErrorMessage();
                        } else {
                                $feedback .= ' Successfully Created New Role ';
                        }
                } else {
                        if (!$role->update($role_name,$data)) {
                                $feedback .= $role->getErrorMessage();
                        } else {
                                $feedback .= ' Successfully Updated Role ';
                        }
                }
        }
}

project_admin_header(array('title'=>$Language->getText('rbac_edit','pgtitle'),'group'=>$group_id));

//
//      If observer role, show title
//
if ($role_id=='observer') {
        echo '<h2>'.$Language->getText('rbac_edit','observer').'</h2>';
        echo $Language->getText('rbac_edit','observerintro');
} else {
        if (!$role_id) {
                echo '<h2>'.$Language->getText('rbac_edit','newrole').'</h2>';
        } else {
                echo '<h2>'.$Language->getText('rbac_edit','pgtitle').'</h2>';
        }
        echo $Language->getText('rbac_edit','intro');

}

echo '
<p>
<form action="'.$PHP_SELF.'?group_id='.$group_id.'&role_id='. $role_id .'" 
method="post">';

if ($role_id != 'observer') {
        echo 
'<strong>'.$Language->getText('rbac_edit','rolename').'</strong><br />
        <input type="text" name="role_name" value="'.$role->getName().'">
        <p>';
}

$titles[]=$Language->getText('rbac_edit','title1');
$titles[]=$Language->getText('rbac_edit','title2');
$titles[]=$Language->getText('rbac_edit','title3');

echo $HTML->listTableTop($titles);

//
//      Get the keys for this role and interate to build page
//
//      Everything is built on the multi-dimensial arrays in the Role object
//
$keys = array_keys($role->role_values);
for ($i=0; $i<count($keys); $i++) {


//
//      Handle forum settings for all roles
//
        if ($keys[$i] == 'forum' || $keys[$i] == 'forumpublic' || $keys[$i] == 
'forumanon') {

                if ($keys[$i] == 'forumanon') {
                        //skip as we have special case below
                } else {
                        $res=db_query("SELECT 
group_forum_id,forum_name,is_public,allow_anonymous 
                                FROM forum_group_list WHERE 
group_id='$group_id'");
                        for ($q=0; $q<db_numrows($res); $q++) {
                                //
                                //      Special cases - when going through the 
keys, we want to show trackeranon
                                //      on the same line as tracker public
                                //
                                if ($keys[$i] == 'forumpublic') {
                                        $txt=' &nbsp; 
'.html_build_select_box_from_assoc(
                                        $role->getRoleVals('forumanon'),
                                        
"data[forumanon][".db_result($res,$q,'group_forum_id')."]",
                                        
$role->getVal('forumanon',db_result($res,$q,'group_forum_id')),
                                        false, false );
                                } else {
                                        $txt='';
                                }
                                echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
                                
<td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
                                <td>'.db_result($res,$q,'forum_name').'</td>
                                <td>'.html_build_select_box_from_assoc(
                                        $role->getRoleVals($keys[$i]), 
                                        
"data[".$keys[$i]."][".db_result($res,$q,'group_forum_id')."]", 
                                        
$role->getVal($keys[$i],db_result($res,$q,'group_forum_id')), 
                                        false, false ). $txt .'</td></tr>';
                        }
                }
//
//      Handle task mgr settings for all roles
//
        } elseif ($keys[$i] == 'pm' || $keys[$i] == 'pmpublic') {

                $res=db_query("SELECT group_project_id,project_name,is_public 
                        FROM project_group_list WHERE group_id='$group_id'");
                for ($q=0; $q<db_numrows($res); $q++) {
                        echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
                        <td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
                        <td>'.db_result($res,$q,'project_name').'</td>
                        <td>'.html_build_select_box_from_assoc(
                                $role->getRoleVals($keys[$i]), 
                                
"data[".$keys[$i]."][".db_result($res,$q,'group_project_id')."]", 
                                
$role->getVal($keys[$i],db_result($res,$q,'group_project_id')), 
                                false, false ).'</td></tr>';
                }

//
//      Handle tracker settings for all roles
//
        } elseif ($keys[$i] == 'tracker' || $keys[$i] == 'trackerpublic' || 
$keys[$i] == 'trackeranon') {

                if ($keys[$i] == 'trackeranon') {
                        //skip as we have special case below
                } else {
                        $res=db_query("SELECT 
group_artifact_id,name,is_public,allow_anon
                                FROM artifact_group_list WHERE 
group_id='$group_id'");
                        for ($q=0; $q<db_numrows($res); $q++) {
                                //
                                //      Special cases - when going through the 
keys, we want to show trackeranon
                                //      on the same line as tracker public
                                //
                                if ($keys[$i] == 'trackerpublic') {
                                        $txt = ' &nbsp; 
'.html_build_select_box_from_assoc(
                                        $role->getRoleVals('trackeranon'),
                                        
"data[trackeranon][".db_result($res,$q,'group_artifact_id')."]",
                                        
$role->getVal('trackeranon',db_result($res,$q,'group_artifact_id')),
                                        false, false );
                                } else {
                                        $txt='';
                                }
                                echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
                                
<td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
                                <td>'.db_result($res,$q,'name').'</td>
                                <td>'.html_build_select_box_from_assoc(
                                        $role->getRoleVals($keys[$i]), 
                                        
"data[".$keys[$i]."][".db_result($res,$q,'group_artifact_id')."]", 
                                        
$role->getVal($keys[$i],db_result($res,$q,'group_artifact_id')), 
                                        false, false ). $txt .'</td></tr>';
                        }
                }

//
//      File release system - each package can be public/private
//
        } elseif ($keys[$i] == 'frspackage') {

                $res=db_query("SELECT package_id,name,is_public 
                        FROM frs_package WHERE group_id='$group_id'");
                for ($q=0; $q<db_numrows($res); $q++) {
                        echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
                        <td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
                        <td>'.db_result($res,$q,'name').'</td>
                        <td>'.html_build_select_box_from_assoc(
                                $role->getRoleVals($keys[$i]), 
                                
"data[".$keys[$i]."][".db_result($res,$q,'package_id')."]", 
                                
$role->getVal($keys[$i],db_result($res,$q,'package_id')), 
                                false, false ).'</td></tr>';
                }

//
//      Handle all other settings for all roles
//
        } else {

                echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
                
<td><strong>'.$Language->getText('rbac_edit',$keys[$i]).'</strong></td>
                <td>-</td>
                
<td>'.html_build_select_box_from_assoc($role->getRoleVals($keys[$i]), 
"data[".$keys[$i]."][0]", $role->getVal($keys[$i],0), false, false ).'</td>
                </tr>';

        }

}

echo $HTML->listTableBottom();

echo '<input type="submit" name="submit" value="Submit">
</form>';

project_admin_footer(array());

?>

--- userpermedit.php DELETED ---

--- userperms.php DELETED ---

Index: vhost.php
===================================================================
RCS file: /cvsroot/gforge/gforge/www/project/admin/vhost.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- vhost.php   25 Mar 2004 19:25:22 -0000      1.7
+++ vhost.php   4 Aug 2004 16:18:43 -0000       1.8
@@ -13,7 +13,6 @@
 
 
 require_once('pre.php');
-require_once('common/include/vars.php');
 require_once('www/project/admin/project_admin_utils.php');
 
 if (!$sys_use_project_vhost) {





reply via email to

[Prev in Thread] Current Thread [Next in Thread]