Commit b2a33bee authored by Ad Schellevis's avatar Ad Schellevis

(legacy) refactor system_groupmanager_addprivs.php

parent 10df2a3d
...@@ -32,189 +32,136 @@ function cpusercmp($a, $b) ...@@ -32,189 +32,136 @@ function cpusercmp($a, $b)
return strcasecmp($a['name'], $b['name']); return strcasecmp($a['name'], $b['name']);
} }
function admin_groups_sort()
{
global $config;
if (!is_array($config['system']['group'])) {
return;
}
usort($config['system']['group'], "cpusercmp");
}
require_once("guiconfig.inc"); require_once("guiconfig.inc");
$pgtitle = array(gettext('System'), gettext('Groups'), gettext('Privileges'));
if (is_numericint($_GET['groupid'])) {
$groupid = $_GET['groupid'];
}
if (isset($_POST['groupid']) && is_numericint($_POST['groupid'])) {
$groupid = $_POST['groupid'];
}
$a_group = & $config['system']['group'][$groupid];
if (!is_array($a_group)) {
redirectHeader("system_groupmanager.php?id={$groupid}");
exit;
}
if (!is_array($a_group['priv'])) { if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$a_group['priv'] = array(); if (isset($config['system']['group'][$_GET['groupid']])) {
} $groupid = $_GET['groupid'];
$a_group = & $config['system']['group'][$groupid];
} else {
redirectHeader("system_groupmanager.php");
exit;
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($config['system']['group'][$_POST['groupid']])) {
$groupid = $_POST['groupid'];
$a_group = & $config['system']['group'][$groupid];
if ($_POST) { $input_errors = array();
unset($input_errors); $pconfig = $_POST;
$pconfig = $_POST;
/* input validation */ /* input validation */
$reqdfields = explode(" ", "sysprivs"); $reqdfields = explode(" ", "sysprivs");
$reqdfieldsn = array(gettext("Selected priveleges")); $reqdfieldsn = array(gettext("Selected priveleges"));
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors); do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
if (!$input_errors) { if (count($input_errors) == 0) {
if (!is_array($pconfig['sysprivs'])) { if (!is_array($pconfig['sysprivs'])) {
$pconfig['sysprivs'] = array(); $pconfig['sysprivs'] = array();
} }
if (!count($a_group['priv'])) { if (!isset($a_group['priv']) || !count($a_group['priv'])) {
$a_group['priv'] = $pconfig['sysprivs']; $a_group['priv'] = $pconfig['sysprivs'];
} else { } else {
$a_group['priv'] = array_merge($a_group['priv'], $pconfig['sysprivs']); $a_group['priv'] = array_merge($a_group['priv'], $pconfig['sysprivs']);
} }
if (is_array($a_group['member'])) { if (is_array($a_group['member'])) {
foreach ($a_group['member'] as $uid) { foreach ($a_group['member'] as $uid) {
$user = getUserEntryByUID($uid); $user = getUserEntryByUID($uid);
if ($user) { if ($user) {
local_user_set($user); local_user_set($user);
}
} }
} }
}
admin_groups_sort(); if (isset($config['system']['group']) && is_array($config['system']['group'])) {
usort($config['system']['group'], "cpusercmp");
$retval = write_config(); }
$savemsg = get_std_save_message();
redirectHeader("system_groupmanager.php?act=edit&id={$groupid}"); write_config();
redirectHeader("system_groupmanager.php?act=edit&groupid={$groupid}");
exit;
}
} else {
redirectHeader("system_groupmanager.php");
exit; exit;
} }
} }
include("head.inc"); $pgtitle = array(gettext('System'), gettext('Groups'), gettext('Privileges'));
?>
<body>
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
//<![CDATA[
<?php
if (is_array($priv_list)) {
$id = 0;
$jdescs = "var descs = new Array();\n";
foreach ($priv_list as $pname => $pdata) {
if (in_array($pname, $a_group['priv'])) {
continue;
}
$desc = addslashes($pdata['descr']);
$jdescs .= "descs[{$id}] = '{$desc}';\n";
$id++;
}
echo $jdescs; if (!isset($a_group['priv']) || !is_array($a_group['priv'])) {
$a_group['priv'] = array();
} }
include("head.inc");
?> ?>
function update_description() {
var index = document.iform.sysprivs.selectedIndex;
document.getElementById("pdesc").innerHTML = descs[index];
}
//]]> <body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
<?php include("fbegin.inc"); ?>
<script type="text/javascript">
$( document ).ready(function() {
$("#sysprivs").change(function(){
$("#pdesc").html($(this).find(':selected').data('descr'));
});
});
</script> </script>
<section class="page-content-main"> <section class="page-content-main">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<?php <?php
if (isset($input_errors) && count($input_errors) > 0) { if (isset($input_errors) && count($input_errors) > 0) {
print_input_errors($input_errors); print_input_errors($input_errors);
} }
if (isset($savemsg)) { ?>
print_info_box($savemsg); <section class="col-xs-12">
} <div class="tab-content content-box col-xs-12">
?> <form method="post" name="iform">
<section class="col-xs-12"> <table class="table table-striped">
<div class="tab-content content-box col-xs-12"> <tr>
<td width="22%"><?=gettext("System Privileges");?></td>
<form action="system_groupmanager_addprivs.php" method="post" name="iform" id="iform"> <td width="78%">
<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area" class="table table-striped"> <select name="sysprivs[]" id="sysprivs" class="formselect" multiple="multiple" size="35">
<tr> <?php
<td width="22%" valign="top" class="vncellreq"><?=gettext("System Privileges");?><br /><a href='#' onClick="selectAll();"><?= gettext('Select all') ?></a></td> foreach ($priv_list as $pname => $pdata) :
<td width="78%" class="vtable"> if (in_array($pname, $a_user['priv'])) {
<select name="sysprivs[]" id="sysprivs" class="formselect" onchange="update_description();" multiple="multiple" size="35"> continue;
<?php }
foreach ($priv_list as $pname => $pdata) :
if (in_array($pname, $a_group['priv'])) {
continue;
}
?>
<option value="<?=$pname;
?>"><?=$pdata['name'];?></option>
<?php
endforeach; ?>
</select>
<br />
<?=gettext("Hold down CTRL (pc)/COMMAND (mac) key to select multiple items");?>
</td>
<script type="text/javascript">
//<![CDATA[
function selectAll() {
var options = jQuery('select#sysprivs option');
var len = options.length;
for (var i = 0; i < len; i++) {
options[i].selected = true;
}
}
//selectAll();
//]]>
</script>
</tr>
<tr height="60">
<td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
<td width="78%" valign="top" class="vtable" id="pdesc">
<em><?=gettext("Select a privilege from the list above for a description");?></em>
</td>
</tr>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
<input id="submitt" name="Submit" type="submit" class="formbtn btn btn-primary" value="<?=gettext("Save");?>" />
<input id="cancelbutton" class="formbtn btn btn-default" type="button" value="<?=gettext("Cancel");?>" onclick="history.back()" />
<?php if (isset($groupid)) :
?> ?>
<input name="groupid" type="hidden" value="<?=htmlspecialchars($groupid);?>" /> <option data-descr="<?=!empty($pdata['descr']) ? $pdata['descr'] : "";?>" value="<?=$pname;?>">
<?php <?=$pdata['name'];?>
endif; ?> </option>
</td> <?php
</tr> endforeach; ?>
</table> </select>
</form> <br />
</div> <?=gettext("Hold down CTRL (pc)/COMMAND (mac) key to select multiple items");?>
</section> </td>
</div> </tr>
</div> <tr>
<td><?=gettext("Description");?></td>
<td id="pdesc">
<em><?=gettext("Select a privilege from the list above for a description"); ?></em>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input type="submit" class="btn btn-primary" value="<?=gettext("Save");?>" />
<input class="btn btn-default" type="button" value="<?=gettext("Cancel");?>" onclick="history.back()" />
<input name="groupid" type="hidden" value="<?=$groupid;?>" />
</td>
</tr>
</table>
</form>
</div>
</section>
</div>
</div>
</section> </section>
<?php include("foot.inc"); ?> <?php include("foot.inc"); ?>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment