*
* Copyright 2004 (c) GForge LLC
*
- * @version $Id$
* @author Tim Perdue tim@gforge.org
* @date 2004-03-16
*
* 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');
+require_once('../../env.inc.php');
+require_once $gfwww.'include/pre.php';
+require_once $gfwww.'project/admin/project_admin_utils.php';
+require_once $gfcommon.'include/Role.class.php';
+require_once $gfcommon.'include/RoleObserver.class.php';
+require_once $gfcommon.'include/rbac_texts.php';
+$group_id = getIntFromRequest('group_id');
session_require(array('group'=>$group_id,'admin_flags'=>'A'));
+$role_id = getStringFromRequest('role_id');
+$data = getStringFromRequest('data');
+
+$group = group_get_object($group_id);
+
//
// 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));
+ $role = new RoleObserver($group);
if (!$role || !is_object($role)) {
exit_error('Error','Could Not Get RoleObserver');
} elseif ($role->isError()) {
exit_error('Error',$role->getErrorMessage());
}
- if ($submit) {
+ if (getStringFromRequest('submit')) {
if (!$role->update($data)) {
- $feedback .= $role->getErrorMessage();
+ $feedback = $role->getErrorMessage();
} else {
- $feedback .= ' Successfully Updated Role ';
+ $feedback = _('Successfully Updated Role');
}
}
} else {
- $role = new Role(group_get_object($group_id),$role_id);
+ $role = new Role($group,$role_id);
if (!$role || !is_object($role)) {
- exit_error('Error','Could Not Get 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 ';
- }
+ if (getStringFromRequest('submit')) {
+ $role_name = trim(getStringFromRequest('role_name'));
+ if (!$role_name) {
+ $feedback .= ' Missing Role Name ';
} else {
- if (!$role->update($role_name,$data)) {
- $feedback .= $role->getErrorMessage();
+ if (!$role_id) {
+ $role_id=$role->create($role_name,$data);
+ if (!$role_id) {
+ $feedback .= $role->getErrorMessage();
+ } else {
+ $feedback = _('Successfully Created New Role');
+ }
} else {
- $feedback .= ' Successfully Updated Role ';
+ if (!$role->update($role_name,$data)) {
+ $feedback .= $role->getErrorMessage();
+ } else {
+ $feedback = _('Successfully Updated Role');
+ }
}
+ //plugin webcal
+ //change assistant for webcal
+ $params = getIntFromRequest('group_id');
+ plugin_hook('change_cal_permission_auto',$params);
}
}
}
-project_admin_header(array('title'=>$Language->getText('rbac_edit','pgtitle'),'group'=>$group_id));
+project_admin_header(array('title'=>_('Edit Role'),'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');
+ echo '<h1>'._('Edit Observer').'</h1>';
+ echo _('Use this page to edit the permissions and access levels of non-members of your project. Non-members includes users who are not logged in.');
} else {
if (!$role_id) {
- echo '<h2>'.$Language->getText('rbac_edit','newrole').'</h2>';
+ echo '<h1>'._('New Role').'</h1>';
} else {
- echo '<h2>'.$Language->getText('rbac_edit','pgtitle').'</h2>';
+ echo '<h1>'._('Edit Role').'</h1>';
}
- echo $Language->getText('rbac_edit','intro');
+ echo _('Use this page to edit your project\'s Roles. Note that each member has at least as much access as the Observer. For example, if the Observer can read CVS, so can any other role in the project.');
}
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>'.$Language->getText('rbac_edit','rolename').'</strong><br />
+ echo '<p><strong>'._('Role Name').'</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');
+$titles[]=_('Section');
+$titles[]=_('Subsection');
+$titles[]=_('Setting');
echo $HTML->listTableTop($titles);
//
// 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++) {
+ if ((!$group->usesForum() && ereg("forum", $keys[$i])) ||
+ (!$group->usesTracker() && ereg("tracker", $keys[$i])) ||
+ (!$group->usesPM() && ereg("pm", $keys[$i])) ||
+ (!$group->usesFRS() && ereg("frs", $keys[$i])) ||
+ (!$group->usesSCM() && ereg("scm", $keys[$i])) ||
+ (!$group->usesDocman() && ereg("docman", $keys[$i]))) {
+
+ //We don't display modules not used
//
// Handle forum settings for all roles
//
- if ($keys[$i] == 'forum' || $keys[$i] == 'forumpublic' || $keys[$i] == 'forumanon') {
+ } elseif ($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'");
+ $res=db_query_params ('SELECT group_forum_id,forum_name,is_public,allow_anonymous
+ FROM forum_group_list WHERE group_id=$1',
+ array($group_id));
for ($q=0; $q<db_numrows($res); $q++) {
//
// Special cases - when going through the keys, we want to show trackeranon
$txt='';
}
echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
- <td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
+ <td>'.$rbac_edit_section_names[$keys[$i]].'</td>
<td>'.db_result($res,$q,'forum_name').'</td>
<td>'.html_build_select_box_from_assoc(
$role->getRoleVals($keys[$i]),
//
} 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'");
+ $res=db_query_params ('SELECT group_project_id,project_name,is_public
+ FROM project_group_list WHERE group_id=$1',
+ array($group_id));
for ($q=0; $q<db_numrows($res); $q++) {
echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
- <td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
+ <td>'.$rbac_edit_section_names[$keys[$i]].'</td>
<td>'.db_result($res,$q,'project_name').'</td>
<td>'.html_build_select_box_from_assoc(
$role->getRoleVals($keys[$i]),
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'");
+ $res=db_query_params ('SELECT group_artifact_id,name,is_public,allow_anon
+ FROM artifact_group_list WHERE group_id=$1',
+ array($group_id));
for ($q=0; $q<db_numrows($res); $q++) {
//
// Special cases - when going through the keys, we want to show trackeranon
$txt='';
}
echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
- <td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
+ <td>'.$rbac_edit_section_names[$keys[$i]].'</td>
<td>'.db_result($res,$q,'name').'</td>
<td>'.html_build_select_box_from_assoc(
$role->getRoleVals($keys[$i]),
//
} elseif ($keys[$i] == 'frspackage') {
- $res=db_query("SELECT package_id,name,is_public
- FROM frs_package WHERE group_id='$group_id'");
+ $res=db_query_params ('SELECT package_id,name,is_public
+ FROM frs_package WHERE group_id=$1',
+ array($group_id));
for ($q=0; $q<db_numrows($res); $q++) {
echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
- <td>'.$Language->getText('rbac_edit',$keys[$i]).'</td>
+ <td>'.$rbac_edit_section_names[$keys[$i]].'</td>
<td>'.db_result($res,$q,'name').'</td>
<td>'.html_build_select_box_from_assoc(
$role->getRoleVals($keys[$i]),
} else {
echo '<tr '. $HTML->boxGetAltRowStyle($j++) . '>
- <td><strong>'.$Language->getText('rbac_edit',$keys[$i]).'</strong></td>
- <td>-</td>
+ <td colspan="2"><strong>'.$rbac_edit_section_names[$keys[$i]].'</strong></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="'.$Language->getText('general', 'submit').'">
+echo '<p><input type="submit" name="submit" value="'._('Submit').'" /></p>
</form>';
project_admin_footer(array());