mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-17 01:54:49 +00:00
(legacy) refactor system_groupmanager_addprivs.php
This commit is contained in:
parent
10df2a3d0e
commit
b2a33beeab
@ -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");
|
||||
|
||||
|
||||
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];
|
||||
|
||||
$input_errors = array();
|
||||
$pconfig = $_POST;
|
||||
|
||||
/* input validation */
|
||||
$reqdfields = explode(" ", "sysprivs");
|
||||
$reqdfieldsn = array(gettext("Selected priveleges"));
|
||||
|
||||
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
|
||||
|
||||
if (count($input_errors) == 0) {
|
||||
if (!is_array($pconfig['sysprivs'])) {
|
||||
$pconfig['sysprivs'] = array();
|
||||
}
|
||||
|
||||
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 (isset($config['system']['group']) && is_array($config['system']['group'])) {
|
||||
usort($config['system']['group'], "cpusercmp");
|
||||
}
|
||||
|
||||
write_config();
|
||||
redirectHeader("system_groupmanager.php?act=edit&groupid={$groupid}");
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
redirectHeader("system_groupmanager.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$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 (!isset($a_group['priv']) || !is_array($a_group['priv'])) {
|
||||
$a_group['priv'] = array();
|
||||
}
|
||||
|
||||
if ($_POST) {
|
||||
unset($input_errors);
|
||||
$pconfig = $_POST;
|
||||
|
||||
/* input validation */
|
||||
$reqdfields = explode(" ", "sysprivs");
|
||||
$reqdfieldsn = array(gettext("Selected priveleges"));
|
||||
|
||||
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
|
||||
|
||||
if (!$input_errors) {
|
||||
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 (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();
|
||||
|
||||
redirectHeader("system_groupmanager.php?act=edit&id={$groupid}");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
include("head.inc");
|
||||
?>
|
||||
|
||||
<body>
|
||||
|
||||
<body link="#0000CC" vlink="#0000CC" alink="#0000CC" >
|
||||
<?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;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
function update_description() {
|
||||
var index = document.iform.sysprivs.selectedIndex;
|
||||
document.getElementById("pdesc").innerHTML = descs[index];
|
||||
}
|
||||
|
||||
//]]>
|
||||
$( 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"> </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);
|
||||
}
|
||||
?>
|
||||
<input name="groupid" type="hidden" value="<?=htmlspecialchars($groupid);?>" />
|
||||
<?php
|
||||
endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<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;
|
||||
}
|
||||
?>
|
||||
<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> </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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user