Commit 10df2a3d authored by Ad Schellevis's avatar Ad Schellevis

(legacy) refactor system_groupmanager.php

parent dbe073b1
...@@ -31,516 +31,513 @@ ...@@ -31,516 +31,513 @@
require_once("guiconfig.inc"); require_once("guiconfig.inc");
$pgtitle = array(gettext('System'), gettext('Groups'));
if (!isset($config['system']['group'])) { if (!isset($config['system']['group'])) {
$config['system']['group'] = array(); $config['system']['group'] = array();
} }
$a_group = &$config['system']['group']; $a_group = &$config['system']['group'];
unset($id); if ($_SERVER['REQUEST_METHOD'] === 'GET') {
if (isset($_POST['groupid']) && is_numericint($_POST['groupid'])) { if (isset($a_group[$_GET['groupid']])) {
$id = $_POST['groupid']; $id = $_GET['groupid'];
}
$act = (isset($_POST['act']) ? $_POST['act'] : '');
if ($act == "delgroup") {
if (!isset($id) || !isset($_POST['groupname']) || !isset($a_group[$id]) || ($_POST['groupname'] != $a_group[$id]['name'])) {
redirectHeader("system_groupmanager.php");
exit;
}
local_group_del($a_group[$id]);
$groupdeleted = $a_group[$id]['name'];
unset($a_group[$id]);
write_config();
$savemsg = gettext("Group")." {$groupdeleted} ".
gettext("successfully deleted")."<br />";
}
if ($act == "delpriv") {
if (!isset($id) || !isset($a_group[$id])) {
redirectHeader("system_groupmanager.php");
exit;
} }
if (isset($_GET['act']) && ($_GET['act'] == 'edit' || $_GET['act'] == 'new')) {
$privdeleted = $priv_list[$a_group[$id]['priv'][$_POST['privid']]]['name']; $act = $_GET['act'];
unset($a_group[$id]['priv'][$_POST['privid']]); } else {
$act = null;
if (is_array($a_group[$id]['member'])) {
foreach ($a_group[$id]['member'] as $uid) {
$user = getUserEntryByUID($uid);
if ($user) {
local_user_set($user);
}
}
} }
$pconfig = array();
write_config(); if ($act == "edit" && isset($id)) {
$act = "edit"; // read config
$savemsg = gettext("Privilege")." {$privdeleted} ".
gettext("successfully deleted")."<br />";
}
if ($act == "edit") {
if (isset($id) && isset($a_group[$id])) {
$pconfig['name'] = $a_group[$id]['name']; $pconfig['name'] = $a_group[$id]['name'];
$pconfig['gid'] = $a_group[$id]['gid']; $pconfig['gid'] = $a_group[$id]['gid'];
$pconfig['gtype'] = $a_group[$id]['scope']; $pconfig['scope'] = $a_group[$id]['scope'];
$pconfig['description'] = $a_group[$id]['description']; $pconfig['description'] = $a_group[$id]['description'];
$pconfig['members'] = $a_group[$id]['member']; $pconfig['members'] = isset($a_group[$id]['member']) ? $a_group[$id]['member'] : array();
$pconfig['priv'] = $a_group[$id]['priv']; $pconfig['priv'] = isset($a_group[$id]['priv']) ? $a_group[$id]['priv'] : array();
} elseif ($act != null) {
// init defaults
$pconfig['name'] = null;
$pconfig['gid'] = null;
$pconfig['scope'] = null;
$pconfig['description'] = null;
$pconfig['members'] = array();
$pconfig['priv'] = array();
} }
} } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($a_group[$_POST['groupid']])) {
if (isset($_POST['save'])) { $id = $_POST['groupid'];
unset($input_errors);
$pconfig = $_POST;
/* input validation */
$reqdfields = explode(" ", "groupname");
$reqdfieldsn = array(gettext("Group Name"));
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
if (preg_match("/[^a-zA-Z0-9\.\-_ ]/", $_POST['groupname'])) {
$input_errors[] = gettext("The group name contains invalid characters.");
} }
$pconfig = $_POST;
if (strlen($_POST['groupname']) > 16) { $act = (isset($pconfig['act']) ? $pconfig['act'] : '');
$input_errors[] = gettext("The group name is longer than 16 characters."); if (isset($id) && $act == "delgroup" && isset($pconfig['groupname']) && $pconfig['groupname'] == $a_group[$id]['name']) {
} // remove group
local_group_del($a_group[$id]);
if (!$input_errors && !(isset($id) && $a_group[$id])) { $groupdeleted = $a_group[$id]['name'];
/* make sure there are no dupes */ unset($a_group[$id]);
foreach ($a_group as $group) { write_config();
if ($group['name'] == $_POST['groupname']) { // reload page
$input_errors[] = gettext("Another entry with the same group name already exists."); redirectHeader("system_groupmanager.php");
break; exit;
} elseif (isset($id) && $act == "delpriv" && isset($a_group[$id]['priv']) && is_array($a_group[$id]['priv'])) {
// remove by privid
foreach ($a_group[$id]['priv'] as $key => $value) {
if ($value == $pconfig['privid']) {
unset($a_group[$id]['priv'][$key]);
} }
} }
if (isset($a_group[$id]['member']) && is_array($a_group[$id]['member'])) {
$sys_groups = file_get_contents('/etc/group'); foreach ($a_group[$id]['member'] as $uid) {
foreach (explode("\n", $sys_groups) as $line) { $user = getUserEntryByUID($uid);
if (explode(":", $line)[0] == $_POST['groupname']) { if ($user) {
$input_errors[] = gettext("That groupname is reserved by the system."); local_user_set($user);
}
} }
} }
} write_config();
// reload page
redirectHeader("system_groupmanager.php?act=edit&groupid={$id}");
exit;
} elseif (isset($pconfig['save'])) {
$input_errors = array();
if (!$input_errors) { /* input validation */
$group = array(); $reqdfields = explode(" ", "name");
if (isset($id) && $a_group[$id]) { $reqdfieldsn = array(gettext("Group Name"));
$group = $a_group[$id];
}
$group['name'] = $_POST['groupname']; do_input_validation($pconfig, $reqdfields, $reqdfieldsn, $input_errors);
$group['description'] = $_POST['description'];
if (empty($_POST['members'])) { if (preg_match("/[^a-zA-Z0-9\.\-_ ]/", $pconfig['name'])) {
unset($group['member']); $input_errors[] = gettext("The group name contains invalid characters.");
} else {
$group['member'] = $_POST['members'];
} }
if (isset($id) && $a_group[$id]) { if (strlen($pconfig['name']) > 16) {
$a_group[$id] = $group; $input_errors[] = gettext("The group name is longer than 16 characters.");
} else {
$group['gid'] = $config['system']['nextgid']++;
$a_group[] = $group;
} }
local_group_set($group); if (count($input_errors) == 0 && !isset($id)) {
/* make sure there are no dupes */
foreach ($a_group as $group) {
if ($group['name'] == $pconfig['name']) {
$input_errors[] = gettext("Another entry with the same group name already exists.");
break;
}
}
/* Refresh users in this group since their privileges may have changed. */ $sys_groups = file_get_contents('/etc/group');
if (is_array($group['member'])) { foreach (explode("\n", $sys_groups) as $line) {
$a_user = &$config['system']['user']; if (explode(":", $line)[0] == $pconfig['name']) {
foreach ($a_user as & $user) { $input_errors[] = gettext("That groupname is reserved by the system.");
if (in_array($user['uid'], $group['member'])) {
local_user_set($user);
} }
} }
} }
if (count($input_errors) == 0) {
$group = array();
if (isset($id) && $a_group[$id]) {
$group = $a_group[$id];
}
write_config(); $group['name'] = $pconfig['name'];
$group['description'] = $pconfig['description'];
if (empty($pconfig['members'])) {
unset($group['member']);
} else {
$group['member'] = $pconfig['members'];
}
header("Location: system_groupmanager.php"); if (isset($id) && $a_group[$id]) {
$a_group[$id] = $group;
} else {
$group['gid'] = $config['system']['nextgid']++;
$a_group[] = $group;
}
local_group_set($group);
/* Refresh users in this group since their privileges may have changed. */
if (is_array($group['member'])) {
$a_user = &$config['system']['user'];
foreach ($a_user as & $user) {
if (in_array($user['uid'], $group['member'])) {
local_user_set($user);
}
}
}
write_config();
header("Location: system_groupmanager.php");
exit;
} else {
// input errors, load page in edit mode
$act = 'edit';
}
} else {
// POST without a valid action, redirect to overview
redirectHeader("system_groupmanager.php");
exit; exit;
} }
} }
include("head.inc"); $pgtitle = array(gettext('System'), gettext('Groups'));
legacy_html_escape_form_data($pconfig);
legacy_html_escape_form_data($a_group);
include("head.inc");
?> ?>
<body> <body>
<?php include("fbegin.inc"); ?> <?php include("fbegin.inc"); ?>
<script type="text/javascript"> <script type="text/javascript">
//<![CDATA[ //<![CDATA[
function setall_selected(id) { function setall_selected(id) {
selbox = document.getElementById(id); selbox = document.getElementById(id);
count = selbox.options.length; count = selbox.options.length;
for (index = 0; index<count; index++) for (index = 0; index<count; index++) {
selbox.options[index].selected = true; selbox.options[index].selected = true;
}
} }
function clear_selected(id) { function clear_selected(id) {
selbox = document.getElementById(id); selbox = document.getElementById(id);
count = selbox.options.length; count = selbox.options.length;
for (index = 0; index<count; index++) for (index = 0; index<count; index++) {
selbox.options[index].selected = false; selbox.options[index].selected = false;
}
} }
function remove_selected(id) { function remove_selected(id) {
selbox = document.getElementById(id); selbox = document.getElementById(id);
index = selbox.options.length - 1; index = selbox.options.length - 1;
for (; index >= 0; index--) for (; index >= 0; index--) {
if (selbox.options[index].selected) if (selbox.options[index].selected) {
selbox.remove(index); selbox.remove(index);
}
}
} }
function copy_selected(srcid, dstid) { function copy_selected(srcid, dstid) {
src_selbox = document.getElementById(srcid); src_selbox = document.getElementById(srcid);
dst_selbox = document.getElementById(dstid); dst_selbox = document.getElementById(dstid);
count = dst_selbox.options.length; count = dst_selbox.options.length;
for (index = count - 1; index >= 0; index--) { for (index = count - 1; index >= 0; index--) {
if (dst_selbox.options[index].value == '') { if (dst_selbox.options[index].value == '') {
dst_selbox.remove(index); dst_selbox.remove(index);
} }
} }
count = src_selbox.options.length; count = src_selbox.options.length;
for (index = 0; index < count; index++) { for (index = 0; index < count; index++) {
if (src_selbox.options[index].selected) { if (src_selbox.options[index].selected) {
option = document.createElement('option'); option = document.createElement('option');
option.text = src_selbox.options[index].text; option.text = src_selbox.options[index].text;
option.value = src_selbox.options[index].value; option.value = src_selbox.options[index].value;
dst_selbox.add(option, null); dst_selbox.add(option, null);
} }
} }
} }
function move_selected(srcid, dstid) { function move_selected(srcid, dstid) {
copy_selected(srcid, dstid); copy_selected(srcid, dstid);
remove_selected(srcid); remove_selected(srcid);
} }
function presubmit() { function presubmit() {
clear_selected('notmembers'); clear_selected('notmembers');
setall_selected('members'); setall_selected('members');
} }
$( document ).ready(function() {
// delete privilege
$(".act-del-priv").click(function(event){
event.preventDefault();
var priv_name = $(this).data('privname');
var privid = $(this).data('privid');
BootstrapDialog.show({
type:BootstrapDialog.TYPE_INFO,
title: "<?= gettext("Group");?>",
message: "<?=gettext("Do you really want to delete this privilege?");?> " + "<br/>("+priv_name+")",
buttons: [{
label: "<?= gettext("No");?>",
action: function(dialogRef) {
dialogRef.close();
}}, {
label: "<?= gettext("Yes");?>",
action: function(dialogRef) {
$("#privid").val(privid);
$("#act").val("delpriv");
$("#iform").submit();
}
}]
});
});
// remove group
$(".act-del-group").click(function(event){
var groupid = $(this).data('groupid');
var groupname = $(this).data('groupname');
event.preventDefault();
BootstrapDialog.show({
type:BootstrapDialog.TYPE_INFO,
title: "<?= gettext("Group");?>",
message: '<?=gettext("Do you really want to delete this group?");?>' + '<br/>('+groupname+")",
buttons: [{
label: "<?= gettext("No");?>",
action: function(dialogRef) {
dialogRef.close();
}}, {
label: "<?= gettext("Yes");?>",
action: function(dialogRef) {
$("#groupid").val(groupid);
$("#groupname").val(groupname);
$("#act").val("delgroup");
$("#iform2").submit();
}
}]
});
});
});
//]]> //]]>
</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
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">
<?php
if ($act == "new" || $act == "edit") :
?>
<form action="system_groupmanager.php" method="post" name="iform" id="iform" onsubmit="presubmit()">
<input type="hidden" id="act" name="act" value="" />
<input type="hidden" id="groupid" name="groupid" value="<?=(isset($id) ? $id : '');?>" />
<input type="hidden" id="privid" name="privid" value="" />
<table class="table table-striped table-sort">
<?php
$ro = "";
if ($pconfig['gtype'] == "system") {
$ro = "readonly=\"readonly\"";
}
?>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Defined by");?></td>
<td width="78%" class="vtable">
<strong><?=strtoupper($pconfig['gtype']);?></strong>
<input name="gtype" type="hidden" value="<?=htmlspecialchars($pconfig['gtype'])?>"/>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Group name");?></td>
<td width="78%" class="vtable">
<input name="groupname" type="text" class="formfld group" id="groupname" size="20" maxlength="16" value="<?=htmlspecialchars($pconfig['name']);
?>" <?=$ro;?> />
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Description");?></td>
<td width="78%" class="vtable">
<input name="description" type="text" class="formfld unknown" id="description" size="20" value="<?=htmlspecialchars($pconfig['description']);?>" />
<br />
<?=gettext("Group description, for your own information only");?>
</td>
</tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("Group Memberships");?></td>
<td width="78%" class="vtable" align="center">
<table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="membership">
<tr>
<td align="center" width="50%">
<strong><?=gettext("Not Members");?></strong><br />
<br />
<select size="10" style="width: 75%" name="notmembers[]" class="formselect" id="notmembers" onchange="clear_selected('members')" multiple="multiple">
<?php
$rowIndex = 0;
foreach ($config['system']['user'] as $user) :
if (is_array($pconfig['members']) && in_array($user['uid'], $pconfig['members'])) {
continue;
}
$rowIndex++;
?>
<option value="<?=$user['uid'];
?>" <?=$selected;?>>
<?=htmlspecialchars($user['name']);?>
</option>
<?php <?php
endforeach; if (isset($input_errors) && count($input_errors) > 0) {
if ($rowIndex == 0) { print_input_errors($input_errors);
echo "<option></option>"; }
}
?>
</select>
<br />
</td>
<td>
<br />
<a href="javascript:move_selected('notmembers','members')" class="btn btn-default btn-xs">
<span class="glyphicon glyphicon-arrow-right"></span>
</a>
<br /><br />
<a href="javascript:move_selected('members','notmembers')" class="btn btn-default btn-xs">
<span class="glyphicon glyphicon-arrow-left"></span>
</a>
</td>
<td align="center" width="50%">
<strong><?=gettext("Members");?></strong><br />
<br />
<select size="10" style="width: 75%" name="members[]" class="formselect" id="members" onchange="clear_selected('notmembers')" multiple="multiple">
<?php
$rowIndex = 0;
foreach ($config['system']['user'] as $user) :
if (!(is_array($pconfig['members']) && in_array($user['uid'], $pconfig['members']))) {
continue;
}
$rowIndex++;
?>
<option value="<?=$user['uid'];?>">
<?=htmlspecialchars($user['name']);?>
</option>
<?php
endforeach;
if ($rowIndex == 0) {
echo "<option></option>";
}
?>
</select>
<br />
</td>
</tr>
</table>
<?=gettext("Hold down CTRL (pc)/COMMAND (mac) key to select multiple items");?>
</td>
</tr>
<?php
if ($act != "new") :
?>
<th colspan="2" valign="top" class="vncell"><?=gettext("Assigned Privileges");?></th>
<tr>
<td colspan="2" class="vtable">
<table class="tabcont table table-striped" width="100%" border="0" cellpadding="0" cellspacing="0" summary="privileges">
<tr>
<td width="40%" class="listhdrr"><b><?=gettext("Name");?></b></td>
<td width="60%" class="listhdrr"><b><?=gettext("Description");?></b></td>
<td class="list"></td>
</tr>
<?php
if (is_array($pconfig['priv'])) :
$i = 0;
foreach ($pconfig['priv'] as $priv) :
?>
<tr>
<td class="listr">
<?=htmlspecialchars($priv_list[$priv]['name']);?>
</td>
<td class="listbg">
<?=htmlspecialchars($priv_list[$priv]['descr']);?>
</td>
<td valign="middle" class="list nowrap">
<button type="submit" name="delpriv[]"
class="btn btn-default btn-xs"
onclick="document.getElementById('privid').value='<?=$i;?>';
document.getElementById('groupid').value='<?=$id;?>';
document.getElementById('act').value='<?php echo "delpriv";?>';
return confirm('<?=gettext("Do you really want to delete this privilege?");?>');"
title="<?=gettext("delete privilege");?>" data-toggle="tooltip" data-placement="left" ><span class="glyphicon glyphicon-remove"></span></button>
</td>
</tr>
<?php
$i++;
endforeach;
endif;
?>
<tr>
<td class="list" colspan="2"></td>
<td class="list">
<a href="system_groupmanager_addprivs.php?groupid=<?=htmlspecialchars($id)?>" class="btn btn-default btn-xs">
<span class="glyphicon glyphicon-plus"></span>
</a>
</td>
</tr>
</table>
</td>
</tr>
<?php
endif;
?>
<tr>
<td width="22%" valign="top">&nbsp;</td>
<td width="78%">
<input name="save" type="submit" class="btn btn-primary" value="<?=gettext("Save");?>" />
<input type="button" class="btn btn-default" value="<?=gettext("Cancel");?>" onclick="window.location.href='/system_groupmanager.php'" />
<?php if (isset($id) && $a_group[$id]) :
?> ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" /> <section class="col-xs-12">
<input name="gid" type="hidden" value="<?=htmlspecialchars($pconfig['gid']);?>" /> <div class="tab-content content-box col-xs-12 table-responsive">
<?php
endif; ?>
</td>
</tr>
</table>
</form>
<?php
else :
?>
<form action="system_groupmanager.php" method="post" name="iform2" id="iform2">
<input type="hidden" id="act" name="act" value="" />
<input type="hidden" id="groupid" name="groupid" value="<?=(isset($id) ? $id : '');?>" />
<input type="hidden" id="groupname" name="groupname" value="" />
<table class="table table-striped table-sort">
<thead>
<tr>
<th width="25%" class="listhdrr"><?=gettext("Group name");?></th>
<th width="25%" class="listhdrr"><?=gettext("Description");?></th>
<th width="30%" class="listhdrr"><?=gettext("Member Count");?></th>
<th width="10%" class="list"></th>
</tr>
</thead>
<tfoot>
<tr>
<td class="list" colspan="3"></td>
<td class="list">
<button type="submit" name="addcert"
class="btn btn-default btn-xs"
onclick="document.getElementById('act').value='<?php echo "new";?>';"
title="<?=gettext("add group");?>"><span class="glyphicon glyphicon-plus"></span></button>
</td>
</tr>
<tr>
<td colspan="4">
<p class="col-xs-12 col-sm-10">
<?=gettext("Additional webConfigurator groups can be added here.
Group permissions can be assigned which are inherited by users who are members of the group.
An icon that appears grey indicates that it is a system defined object.
Some system object properties can be modified but they cannot be deleted.");?>
</p>
</td>
</tr>
</tfoot>
<tbody>
<?php <?php
$i = 0; if ($act == "new" || $act == "edit") :?>
foreach ($a_group as $group) : <form action="system_groupmanager.php" method="post" name="iform" id="iform" onsubmit="presubmit()">
if ($group['scope'] == "system") { <input type="hidden" id="act" name="act" value="" />
$grpimg = "glyphicon glyphicon-user text-mute"; <input type="hidden" id="groupid" name="groupid" value="<?=(isset($id) ? $id : '');?>" />
} else { <input type="hidden" id="privid" name="privid" value="" />
$grpimg = "glyphicon glyphicon-user"; <table class="table table-striped">
} <tr>
$groupcount = count($group['member']); <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Defined by");?></td>
if ($group["name"] == "all") { <td>
$groupcount = count($config['system']['user']); <strong><?=strtoupper($pconfig['scope']);?></strong>
} <input name="scope" type="hidden" value="<?=$pconfig['scope']?>"/>
?> </td>
<tr ondblclick="document.getElementById('act').value='<?php echo "edit";?>'; </tr>
document.getElementById('groupid').value='<?=$i;?>'; <tr>
document.iform2.submit();"> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Group name");?></td>
<td class="listlr"> <td>
<table border="0" cellpadding="0" cellspacing="0" summary=""> <input name="name" type="text" maxlength="16" value="<?=$pconfig['name'];?>" <?=$pconfig['scope'] == "system" ? "readonly=\"readonly\"" : "";?> />
<tr> </td>
<td align="left" width="30px"> </tr>
<span class="<?=$grpimg;?>"></span> <tr>
</td> <td><a id="help_for_desc" href="#" class="showhelp"><i class="fa fa-info-circle"></i></a> <?=gettext("Description");?></td>
<td align="left"> <td>
<?=htmlspecialchars($group['name']); ?>&nbsp; <input name="description" type="text" value="<?=$pconfig['description'];?>" />
</td> <div class="hidden" for="help_for_desc">
</tr> <?=gettext("Group description, for your own information only");?>
</table> </div>
</td> </td>
<td class="listr"> </tr>
<?=htmlspecialchars($group['description']);?>&nbsp; <tr>
</td> <td><a id="help_for_groups" href="#" class="showhelp"><i class="fa fa-info-circle"></i></a> <?=gettext("Group Memberships");?></td>
<td class="listbg"> <td>
<?=$groupcount;?> <table class="table" width="100%" border="0" cellpadding="0" cellspacing="0">
</td> <thead>
<td valign="middle" class="list nowrap"> <tr>
<button type="submit" name="editgroup[]" <th><?=gettext("Not Member Of"); ?></th>
class="btn btn-default btn-xs" <th>&nbsp;</th>
onclick="document.getElementById('groupid').value='<?=$i;?>'; <th><?=gettext("Member Of"); ?></th>
document.getElementById('act').value='<?php echo "edit";?>';" </tr>
title="<?=gettext("edit group");?>"><span class="glyphicon glyphicon-pencil"></span></button> </thead>
&nbsp; <tbody>
<tr>
<td>
<select size="10" name="notmembers[]" id="notmembers" onchange="clear_selected('members')" multiple="multiple">
<?php <?php
if ($group['scope'] != "system") : foreach ($config['system']['user'] as $user) :
if (is_array($pconfig['members']) && in_array($user['uid'], $pconfig['members'])) {
continue;
}
?> ?>
<button type="submit" name="delgroup[]" <option value="<?=$user['uid'];?>">
class="btn btn-default btn-xs" <?=htmlspecialchars($user['name']);?>
onclick="document.getElementById('groupid').value='<?=$i;?>'; </option>
document.getElementById('groupname').value='<?=$group['name'];?>';
document.getElementById('act').value='<?php echo "delgroup";?>';
return confirm('<?=gettext("Do you really want to delete this group?");?>');"
title="<?=gettext("delete group");?>"><span class="glyphicon glyphicon-remove"></span></button>
<?php <?php
endif; endforeach;?>
?> </select>
</td> </td>
</tr> <td class="text-center">
<br />
<a href="javascript:move_selected('notmembers','members')" class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left" title="<?=gettext("Add Groups"); ?>">
<span class="glyphicon glyphicon-arrow-right"></span>
</a>
<br /><br />
<a href="javascript:move_selected('members','notmembers')" class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left" title="<?=gettext("Remove Groups"); ?>">
<span class="glyphicon glyphicon-arrow-left"></span>
</a>
</td>
<td>
<select size="10" name="members[]" id="members" onchange="clear_selected('notmembers')" multiple="multiple">
<?php <?php
$i++; foreach ($config['system']['user'] as $user) :
endforeach; if (!(is_array($pconfig['members']) && in_array($user['uid'], $pconfig['members']))) {
continue;
}
?> ?>
</tbody> <option value="<?=$user['uid'];?>">
</table> <?=htmlspecialchars($user['name']);?>
</form> </option>
<?php <?php
endif; endforeach;
?> ?>
</select>
</td>
</tr>
</table>
<div class="hidden" for="help_for_groups">
<?=gettext("Hold down CTRL (pc)/COMMAND (mac) key to select multiple items");?>
</div>
</td>
</tr>
<?php
if ($act != "new") :?>
<tr>
<td colspan="2"><b><?=gettext("Assigned Privileges");?></b></td>
</tr>
<tr>
<td colspan="2">
<table class="table table-striped table-condensed">
<tr>
<td><b><?=gettext("Name");?></b></td>
<td><b><?=gettext("Description");?></b></td>
<td></td>
</tr>
<?php
if (isset($pconfig['priv']) && is_array($pconfig['priv'])) :
foreach ($pconfig['priv'] as $priv) :
?>
<tr>
<td><?=$priv_list[$priv]['name'];?></td>
<td><?=$priv_list[$priv]['descr'];?></td>
<td>
<button type="button" data-privid="<?=$priv;?>" data-privname="<?=$priv_list[$priv]['name']?>" class="btn btn-default btn-xs act-del-priv" title="<?=gettext("delete privilege");?>" data-toggle="tooltip" data-placement="left">
<span class="glyphicon glyphicon-remove"></span>
</button>
</td>
</tr>
<?php
endforeach;
endif;?>
<tr>
<td colspan="2"></td>
<td>
<a href="system_groupmanager_addprivs.php?groupid=<?=htmlspecialchars($id)?>" class="btn btn-default btn-xs">
<span class="glyphicon glyphicon-plus"></span>
</a>
</td>
</tr>
</table>
</td>
</tr>
<?php
endif;?>
<tr>
<td></td>
<td>
<input name="save" type="submit" class="btn btn-primary" value="<?=gettext("Save");?>" />
<input type="button" class="btn btn-default" value="<?=gettext("Cancel");?>" onclick="window.location.href='/system_groupmanager.php'" />
<?php
if (isset($id)) :?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" />
<input name="gid" type="hidden" value="<?=htmlspecialchars($pconfig['gid']);?>" />
<?php
endif; ?>
</td>
</tr>
</table>
</form>
<?php
else :?>
<form action="system_groupmanager.php" method="post" name="iform2" id="iform2">
<input type="hidden" id="act" name="act" value="" />
<input type="hidden" id="groupid" name="groupid" value="<?=(isset($id) ? $id : "");?>" />
<input type="hidden" id="groupname" name="groupname" value="" />
<table class="table table-striped table-sort">
<thead>
<tr>
<th><?=gettext("Group name");?></th>
<th class="hidden-xs"><?=gettext("Description");?></th>
<th><?=gettext("Member Count");?></th>
<th></th>
</tr>
</thead>
<tbody>
<?php
$i = 0;
foreach ($a_group as $group) :?>
<tr>
<td>
<span class="glyphicon glyphicon-user <?=$group['scope'] == "system" ? "text-mute" : "text-info";?>"></span>
&nbsp;
<?=$group['name']; ?>
</td>
<td class="hidden-xs"><?=$group['description'];?></td>
<td>
<?=$group["name"] == "all" ? count($config['system']['user']) :count($group['member']) ;?>
</td>
<td>
<a href="system_groupmanager.php?act=edit&groupid=<?=$i?>"
class="btn btn-default btn-xs" data-toggle="tooltip" data-placement="left"
title="<?=gettext("edit group");?>">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</div> <?php
</section> if ($group['scope'] != "system") :?>
</div> <button type="button" class="btn btn-default btn-xs act-del-group"
</div> data-groupname="<?=$group['name'];?>"
</section> data-groupid="<?=$i?>" title="<?=gettext("delete group");?>" data-toggle="tooltip"
data-placement="left" ><span class="glyphicon glyphicon-remove"></span>
</button>
<?php
endif;?>
</td>
</tr>
<?php
$i++;
endforeach;?>
</tbody>
<tfoot>
<tr>
<td class="list" colspan="2"></td>
<td class="hidden-xs"> </td>
<td class="list">
<a href="system_groupmanager.php?act=new" class="btn btn-default btn-xs"
title="<?=gettext("add user");?>" data-toggle="tooltip" data-placement="left">
<span class="glyphicon glyphicon-plus"></span>
</a>
</td>
</tr>
<tr class="hidden-xs">
<td colspan="4">
<p class="col-xs-12 col-sm-10">
<?=gettext("Additional webConfigurator groups can be added here.
Group permissions can be assigned which are inherited by users who are members of the group.
An icon that appears grey indicates that it is a system defined object.
Some system object properties can be modified but they cannot be deleted.");?>
</p>
</td>
</tr>
</tfoot>
</table>
</form>
<?php
endif;?>
</div>
</section>
</div>
</div>
</section>
<?php include("foot.inc"); <?php include("foot.inc");
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