mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-04-20 20:13:40 +03:00
394 lines
16 KiB
PHP
394 lines
16 KiB
PHP
<?php
|
|
|
|
include_once('includes/config.inc.php');
|
|
include_once('includes/session.inc.php');
|
|
include_once('includes/misc.inc.php');
|
|
|
|
if (isset($_GET['logout']) or isset($_POST['logout'])) {
|
|
logout();
|
|
header("Location: index.php");
|
|
}
|
|
|
|
if (!is_logged_in() and $_POST['formname'] == "loginform") {
|
|
if (try_login() === TRUE) {
|
|
set_logged_in($_POST['username']);
|
|
} else {
|
|
$errormsg = "Error while trying to authenticate you\n";
|
|
}
|
|
}
|
|
|
|
?>
|
|
<html>
|
|
<head>
|
|
<link href="jquery/css/ui-lightness/jquery-ui-1.10.4.min.css" rel="stylesheet" type="text/css" />
|
|
<link href="jtable/themes/metro/lightgray/jtable.css" rel="stylesheet" type="text/css" />
|
|
<link href="css/base.css" rel="stylesheet" type="text/css" />
|
|
<script src="jquery/js/jquery-1.10.2.js" type="text/javascript"></script>
|
|
<script src="jquery/js/jquery-ui-1.10.4.min.js" type="text/javascript"></script>
|
|
<script src="jtable/jquery.jtable.min.js" type="text/javascript"></script>
|
|
</head>
|
|
|
|
<?
|
|
if (!is_logged_in()) {
|
|
?>
|
|
<body onload="document.getElementById('username').focus()">
|
|
<div class="loginblock">
|
|
<div class="logo">
|
|
<img src="https://www.tuxis.nl/uploads/images/nsedit.png" alt="Logo" />
|
|
</div>
|
|
<div class="login">
|
|
<? if (isset($errormsg)) {
|
|
echo '<span style="color: red">'.$errormsg.'</span><br />';
|
|
}
|
|
?>
|
|
<form action="index.php" method="post">
|
|
<table>
|
|
<tr>
|
|
<td class="label">Gebruikersnaam:</td>
|
|
<td><input id="username" type="text" name="username"/></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="label">Wachtwoord:</td>
|
|
<td><input type="password" name="password"/></td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td><input type="submit" name="submit" value="Inloggen"/></td>
|
|
</tr>
|
|
</table>
|
|
<input type="hidden" name="formname" value="loginform"/>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|
|
<?
|
|
exit(0);
|
|
}
|
|
|
|
if (is_adminuser()) {
|
|
foreach (get_all_users() as $user) {
|
|
$userlist[] = "'".$user['emailaddress']."':'".$user['emailaddress']."'";
|
|
}
|
|
|
|
$ulist = ',';
|
|
$ulist .= join(',', $userlist);
|
|
}
|
|
|
|
foreach ($templates as $template) {
|
|
if (is_adminuser() or (isset($template['owner']) && $template['owner'] == get_sess_user()) or ($template['owner'] == 'public')) {
|
|
$templatelist[] = "'".$template['name']."':'".$template['name']."'";
|
|
}
|
|
}
|
|
|
|
if (isset($templatelist)) {
|
|
$tmpllist = ',';
|
|
$tmpllist .= join(',', $templatelist);
|
|
}
|
|
|
|
?>
|
|
<body>
|
|
<div id="wrap">
|
|
<div id="menu" class="jtable-main-container">
|
|
<div class="jtable-title">
|
|
<div class="jtable-title-text">
|
|
Menu
|
|
</div>
|
|
</div>
|
|
<ul>
|
|
<li><a href="#" id="zoneadmin">Zones</a></li>
|
|
<? if (is_adminuser()) { ?>
|
|
<li><a href="#" id="useradmin">Users</a></li>
|
|
<? } ?>
|
|
<li><a href="index.php?logout=1">Logout</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="zones">
|
|
<div class="tables" id="MasterZones"></div>
|
|
<div class="tables" id="SlaveZones"></div>
|
|
</div>
|
|
<? if (is_adminuser()) { ?>
|
|
<div id="users">
|
|
<div class="tables" id="Users"></div>
|
|
</div>
|
|
<? } ?>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
<? if (is_adminuser()) { ?>
|
|
$('#Users').hide();
|
|
$('#useradmin').click(function () {
|
|
$('#Users').show();
|
|
$('#MasterZones').hide();
|
|
$('#SlaveZones').hide();
|
|
});
|
|
$('#zoneadmin').click(function () {
|
|
$('#Users').hide();
|
|
$('#MasterZones').show();
|
|
$('#SlaveZones').show();
|
|
});
|
|
$('#Users').jtable({
|
|
title: 'Users',
|
|
paging: true,
|
|
pageSize: 20,
|
|
sorting: false,
|
|
actions: {
|
|
listAction: 'users.php?action=list',
|
|
createAction: 'users.php?action=create',
|
|
deleteAction: 'users.php?action=delete',
|
|
updateAction: 'users.php?action=update'
|
|
},
|
|
messages: {
|
|
addNewRecord: 'Add new user',
|
|
},
|
|
fields: {
|
|
id: {
|
|
key: true,
|
|
type: 'hidden'
|
|
},
|
|
emailaddress: {
|
|
title: 'User',
|
|
},
|
|
password: {
|
|
title: 'Password',
|
|
type: 'password',
|
|
list: false,
|
|
},
|
|
isadmin: {
|
|
title: 'Admin',
|
|
type: 'checkbox',
|
|
values: { '0' : 'No', '1' : 'Yes' }
|
|
}
|
|
}
|
|
});
|
|
$('#Users').jtable('load');
|
|
<? } ?>
|
|
$('#SlaveZones').jtable({
|
|
title: 'Slave Zones',
|
|
paging: true,
|
|
pageSize: 20,
|
|
sorting: false,
|
|
messages: {
|
|
addNewRecord: 'Add new slave zone',
|
|
noDataAvailable: 'No slave zones configured',
|
|
},
|
|
openChildAsAccordion: true,
|
|
actions: {
|
|
listAction: 'zones.php?action=listslaves',
|
|
createAction: 'zones.php?action=create',
|
|
deleteAction: 'zones.php?action=delete'
|
|
},
|
|
fields: {
|
|
id: {
|
|
key: true,
|
|
type: 'hidden'
|
|
},
|
|
name: {
|
|
title: 'Domain',
|
|
},
|
|
<? if (is_adminuser()) { ?>
|
|
owner: {
|
|
title: 'Owner',
|
|
options: {'admin':'admin'<? echo $ulist; ?>},
|
|
defaultValue: 'admin',
|
|
},
|
|
<? } ?>
|
|
kind: {
|
|
create: true,
|
|
type: 'hidden',
|
|
list: false,
|
|
defaultValue: 'Slave'
|
|
},
|
|
serial: {
|
|
title: 'Serial',
|
|
create: false,
|
|
},
|
|
records: {
|
|
width: '5%',
|
|
title: 'Records',
|
|
paging: true,
|
|
pageSize: 20,
|
|
edit: false,
|
|
create: false,
|
|
display: function(zone) {
|
|
var $img = $('<img class="list" src="jtable/themes/metro/list.png" title="Records" />');
|
|
$img.click(function() {
|
|
$('#MasterZones').jtable('openChildTable',
|
|
$img.closest('tr'), {
|
|
title: 'Records in '+zone.record.name,
|
|
openChildAsAccordion: true,
|
|
actions: {
|
|
listAction: 'zones.php?action=listrecords&zoneurl='+zone.record.url,
|
|
},
|
|
fields: {
|
|
name: {
|
|
title: 'Label',
|
|
},
|
|
type: {
|
|
title: 'Type'
|
|
},
|
|
prio: {
|
|
title: 'Prio'
|
|
},
|
|
content: {
|
|
title: 'Content',
|
|
},
|
|
ttl: {
|
|
title: 'TTL',
|
|
},
|
|
}
|
|
}, function (data) {
|
|
data.childTable.jtable('load');
|
|
})
|
|
});
|
|
return $img;
|
|
}
|
|
},
|
|
}
|
|
});
|
|
$('#SlaveZones').jtable('load');
|
|
$('#MasterZones').jtable({
|
|
title: 'Master/Native Zones',
|
|
paging: true,
|
|
pageSize: 20,
|
|
messages: {
|
|
addNewRecord: 'Add new zone',
|
|
noDataAvailable: 'No zones configured',
|
|
},
|
|
sorting: false,
|
|
openChildAsAccordion: true,
|
|
actions: {
|
|
listAction: 'zones.php?action=list',
|
|
createAction: 'zones.php?action=create',
|
|
deleteAction: 'zones.php?action=delete',
|
|
<? if (is_adminuser()) { ?>
|
|
updateAction: 'zones.php?action=update'
|
|
<? } ?>
|
|
},
|
|
fields: {
|
|
id: {
|
|
key: true,
|
|
type: 'hidden'
|
|
},
|
|
name: {
|
|
title: 'Domain',
|
|
},
|
|
<? if (is_adminuser()) { ?>
|
|
owner: {
|
|
title: 'Owner',
|
|
options: {'admin':'admin'<? echo $ulist; ?>},
|
|
defaultValue: 'admin',
|
|
},
|
|
<? } ?>
|
|
kind: {
|
|
title: 'Type',
|
|
options: { 'Native':'Native', 'Master':'Master'},
|
|
defaultValue: '<? echo $defaults['defaulttype']; ?>',
|
|
edit: false,
|
|
},
|
|
template: {
|
|
title: 'Template',
|
|
options: {'None':'None'<? echo $tmpllist; ?>},
|
|
list: false,
|
|
create: true,
|
|
edit: false,
|
|
},
|
|
nameserver1: {
|
|
title: 'Pri. Nameserver',
|
|
create: true,
|
|
list: false,
|
|
edit: false,
|
|
defaultValue: '<? echo $defaults['primaryns']; ?>',
|
|
},
|
|
nameserver2: {
|
|
title: 'Sec. Nameserver',
|
|
create: true,
|
|
list: false,
|
|
edit: false,
|
|
defaultValue: '<? echo $defaults['secondaryns']; ?>',
|
|
},
|
|
serial: {
|
|
title: 'Serial',
|
|
create: false,
|
|
edit: false,
|
|
},
|
|
records: {
|
|
width: '5%',
|
|
title: 'Records',
|
|
edit: false,
|
|
create: false,
|
|
display: function(zone) {
|
|
var $img = $('<img class="list" src="jtable/themes/metro/list.png" title="Records" />');
|
|
$img.click(function() {
|
|
$('#MasterZones').jtable('openChildTable',
|
|
$img.closest('tr'), {
|
|
title: 'Records in '+zone.record.name,
|
|
messages: {
|
|
addNewRecord: 'Add to '+zone.record.name,
|
|
noDataAvailable: 'No records for '+zone.record.name,
|
|
},
|
|
paging: true,
|
|
pageSize: 20,
|
|
openChildAsAccordion: true,
|
|
actions: {
|
|
listAction: 'zones.php?action=listrecords&zoneurl='+zone.record.url,
|
|
createAction: 'zones.php?action=createrecord&zoneurl='+zone.record.url,
|
|
deleteAction: 'zones.php?action=deleterecord&zoneurl='+zone.record.url,
|
|
updateAction: 'zones.php?action=editrecord&zoneurl='+zone.record.url,
|
|
},
|
|
fields: {
|
|
domid: {
|
|
create: true,
|
|
type: 'hidden',
|
|
defaultValue: zone.record.id,
|
|
},
|
|
id: {
|
|
key: true,
|
|
create: false,
|
|
edit: false,
|
|
list: false,
|
|
},
|
|
domain: {
|
|
create: true,
|
|
type: 'hidden',
|
|
defaultValue: zone.record.name,
|
|
},
|
|
name: {
|
|
title: 'Label',
|
|
create: true,
|
|
},
|
|
type: {
|
|
options: {'AAAA':'AAAA','A':'A','CNAME':'CNAME','MX':'MX','SRV':'SRV','TXT':'TXT','NS':'NS','SOA':'SOA'},
|
|
create: true,
|
|
},
|
|
priority: {
|
|
title: 'Prio',
|
|
create: true,
|
|
defaultValue: '<? echo $defaults['priority']; ?>',
|
|
},
|
|
content: {
|
|
title: 'Content',
|
|
create: true,
|
|
},
|
|
ttl: {
|
|
title: 'TTL',
|
|
create: true,
|
|
defaultValue: '<? echo $defaults['ttl']; ?>',
|
|
},
|
|
}
|
|
}, function (data) {
|
|
data.childTable.jtable('load');
|
|
})
|
|
});
|
|
return $img;
|
|
}
|
|
},
|
|
}
|
|
});
|
|
$('#MasterZones').jtable('load');
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|