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)
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");
$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'])) {
$a_group['priv'] = array();
}
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
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) {
unset($input_errors);
$pconfig = $_POST;
$input_errors = array();
$pconfig = $_POST;
/* input validation */
$reqdfields = explode(" ", "sysprivs");
$reqdfieldsn = array(gettext("Selected priveleges"));
/* input validation */
$reqdfields = explode(" ", "sysprivs");
$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 (!is_array($pconfig['sysprivs'])) {
$pconfig['sysprivs'] = array();
}
if (count($input_errors) == 0) {
if (!is_array($pconfig['sysprivs'])) {
$pconfig['sysprivs'] = array();
}
if (!count($a_group['priv'])) {
$a_group['priv'] = $pconfig['sysprivs'];
} else {
$a_group['priv'] = array_merge($a_group['priv'], $pconfig['sysprivs']);
}
if (!isset($a_group['priv']) || !count($a_group['priv'])) {
$a_group['priv'] = $pconfig['sysprivs'];
} else {
$a_group['priv'] = array_merge($a_group['priv'], $pconfig['sysprivs']);
}
if (is_array($a_group['member'])) {
foreach ($a_group['member'] as $uid) {
$user = getUserEntryByUID($uid);
if ($user) {
local_user_set($user);
if (is_array($a_group['member'])) {
foreach ($a_group['member'] as $uid) {
$user = getUserEntryByUID($uid);
if ($user) {
local_user_set($user);
}
}
}
}
admin_groups_sort();
$retval = write_config();
$savemsg = get_std_save_message();
if (isset($config['system']['group']) && is_array($config['system']['group'])) {
usort($config['system']['group'], "cpusercmp");
}
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;
}
}
include("head.inc");
?>
<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++;
}
$pgtitle = array(gettext('System'), gettext('Groups'), gettext('Privileges'));
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>
<section class="page-content-main">
<div class="container-fluid">
<div class="row">
<?php
if (isset($input_errors) && count($input_errors) > 0) {
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 action="system_groupmanager_addprivs.php" method="post" name="iform" id="iform">
<table width="100%" border="0" cellpadding="6" cellspacing="0" summary="main area" class="table table-striped">
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("System Privileges");?><br /><a href='#' onClick="selectAll();"><?= gettext('Select all') ?></a></td>
<td width="78%" class="vtable">
<select name="sysprivs[]" id="sysprivs" class="formselect" onchange="update_description();" multiple="multiple" size="35">
<?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)) :
<div class="container-fluid">
<div class="row">
<?php
if (isset($input_errors) && count($input_errors) > 0) {
print_input_errors($input_errors);
}
?>
<section class="col-xs-12">
<div class="tab-content content-box col-xs-12">
<form method="post" name="iform">
<table class="table table-striped">
<tr>
<td width="22%"><?=gettext("System Privileges");?></td>
<td width="78%">
<select name="sysprivs[]" id="sysprivs" class="formselect" multiple="multiple" size="35">
<?php
foreach ($priv_list as $pname => $pdata) :
if (in_array($pname, $a_user['priv'])) {
continue;
}
?>
<input name="groupid" type="hidden" value="<?=htmlspecialchars($groupid);?>" />
<?php
endif; ?>
</td>
</tr>
</table>
</form>
</div>
</section>
</div>
</div>
<option data-descr="<?=!empty($pdata['descr']) ? $pdata['descr'] : "";?>" value="<?=$pname;?>">
<?=$pdata['name'];?>
</option>
<?php
endforeach; ?>
</select>
<br />
<?=gettext("Hold down CTRL (pc)/COMMAND (mac) key to select multiple items");?>
</td>
</tr>
<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>
<?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