configure default nameservers

This commit is contained in:
Usman Nasir
2019-08-22 14:07:46 +05:00
parent 3c455ffec1
commit e4f543d5a6
8 changed files with 642 additions and 564 deletions

View File

@@ -99,7 +99,6 @@
<link rel="stylesheet" type="text/css" href="https://www.jsdelivr.com/package/npm/fontawesome"> <link rel="stylesheet" type="text/css" href="https://www.jsdelivr.com/package/npm/fontawesome">
<script type="text/javascript" src="{% static 'baseTemplate/assets/js-core/jquery-core.min.js' %}"></script> <script type="text/javascript" src="{% static 'baseTemplate/assets/js-core/jquery-core.min.js' %}"></script>
<script type="text/javascript"> <script type="text/javascript">
$(window).load(function () { $(window).load(function () {
@@ -486,8 +485,8 @@
<li class="createNameServer"><a href="{% url 'createNameserver' %}" <li class="createNameServer"><a href="{% url 'createNameserver' %}"
title="{% trans 'Create Nameserver' %}"><span>{% trans "Create Nameserver" %}</span></a> title="{% trans 'Create Nameserver' %}"><span>{% trans "Create Nameserver" %}</span></a>
</li> </li>
<!--<li class="createNameServer"><a href="{% url 'configureDefaultNameServers' %}" <li class="serverACL"><a href="{% url 'configureDefaultNameServers' %}"
title="{% trans 'Configure Default Nameservers' %}"><span>{% trans "CConfigure Default Nameservers" %}</span></a>--> title="{% trans 'Configure Default Nameservers' %}"><span>{% trans "Config Default Nameservers" %}</span></a>
</li> </li>
<li class="createDNSZone"><a href="{% url 'createDNSZone' %}" <li class="createDNSZone"><a href="{% url 'createDNSZone' %}"
title="{% trans 'Create DNS Zone' %}"><span>{% trans "Create DNS Zone" %}</span></a> title="{% trans 'Create DNS Zone' %}"><span>{% trans "Create DNS Zone" %}</span></a>

View File

@@ -18,6 +18,7 @@ from plogical.acl import ACLManager
from manageServices.models import PDNSStatus from manageServices.models import PDNSStatus
class DNSManager: class DNSManager:
defaultNameServersPath = '/home/cyberpanel/defaultNameservers'
def loadDNSHome(self, request = None, userID = None): def loadDNSHome(self, request = None, userID = None):
try: try:
@@ -495,15 +496,79 @@ class DNSManager:
try: try:
currentACL = ACLManager.loadedACL(userID) currentACL = ACLManager.loadedACL(userID)
if ACLManager.currentContextPermission(currentACL, 'deleteZone') == 0: if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadError() return ACLManager.loadError()
if not os.path.exists('/home/cyberpanel/powerdns'): if not os.path.exists('/home/cyberpanel/powerdns'):
return render(request, 'dns/addDeleteDNSRecords.html', {"status": 0}) return render(request, 'dns/addDeleteDNSRecords.html', {"status": 0})
domainsList = ACLManager.findAllDomains(currentACL, userID) data = {}
data['domainsList'] = ACLManager.findAllDomains(currentACL, userID)
data['status'] = 1
return render(request, 'dns/configureDefaultNameServers.html', {"domainsList": domainsList, "status": 1}) if os.path.exists(DNSManager.defaultNameServersPath):
nsData = open(DNSManager.defaultNameServersPath, 'r').readlines()
try:
data['firstNS'] = nsData[0]
except:
pass
try:
data['secondNS'] = nsData[1]
except:
pass
try:
data['thirdNS'] = nsData[2]
except:
pass
try:
data['forthNS'] = nsData[3]
except:
pass
return render(request, 'dns/configureDefaultNameServers.html', data)
except BaseException, msg: except BaseException, msg:
return HttpResponse(str(msg)) return HttpResponse(str(msg))
def saveNSConfigurations(self, userID = None, data = None):
try:
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
nsContent = ''
try:
nsContent = '%s\n%s\n%s\n%s\n' % (data['firstNS'], data['secondNS'], data['thirdNS'], data['forthNS'])
except:
try:
nsContent = '%s\n%s\n%s\n' % (data['firstNS'], data['secondNS'], data['thirdNS'])
except:
try:
nsContent = '%s\n%s\n' % (data['firstNS'], data['secondNS'])
except:
try:
nsContent = '%s\n' % (data['firstNS'])
except:
pass
writeToFile = open(DNSManager.defaultNameServersPath, 'w')
writeToFile.write(nsContent.rstrip('\n'))
writeToFile.close()
final_dic = {'status': 1, 'error_message': "None"}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
except BaseException, msg:
final_dic = {'status': 0, 'error_message': str(msg)}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)

View File

@@ -5,14 +5,14 @@
/* Java script code to create NS */ /* Java script code to create NS */
app.controller('createNameserver', function($scope,$http) { app.controller('createNameserver', function ($scope, $http) {
$scope.createNameserverLoading = true; $scope.createNameserverLoading = true;
$scope.nameserverCreationFailed = true; $scope.nameserverCreationFailed = true;
$scope.nameserverCreated = true; $scope.nameserverCreated = true;
$scope.couldNotConnect = true; $scope.couldNotConnect = true;
$scope.createNameserverFunc = function(){ $scope.createNameserverFunc = function () {
var domainForNS = $scope.domainForNS; var domainForNS = $scope.domainForNS;
@@ -26,28 +26,27 @@ app.controller('createNameserver', function($scope,$http) {
url = "/dns/NSCreation"; url = "/dns/NSCreation";
var data = { var data = {
domainForNS:domainForNS, domainForNS: domainForNS,
ns1:ns1, ns1: ns1,
ns2:ns2, ns2: ns2,
firstNSIP:firstNSIP, firstNSIP: firstNSIP,
secondNSIP:secondNSIP, secondNSIP: secondNSIP,
}; };
var config = { var config = {
headers : { headers: {
'X-CSRFToken': getCookie('csrftoken') 'X-CSRFToken': getCookie('csrftoken')
} }
}; };
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) { function ListInitialDatas(response) {
if(response.data.NSCreation === 1){ if (response.data.NSCreation === 1) {
$scope.createNameserverLoading = true; $scope.createNameserverLoading = true;
$scope.nameserverCreationFailed = true; $scope.nameserverCreationFailed = true;
$scope.nameserverCreated = false; $scope.nameserverCreated = false;
@@ -57,8 +56,7 @@ app.controller('createNameserver', function($scope,$http) {
$scope.nameServerTwo = $scope.firstNS; $scope.nameServerTwo = $scope.firstNS;
$scope.nameServerOne = $scope.secondNS; $scope.nameServerOne = $scope.secondNS;
} } else {
else{
$scope.createNameserverLoading = true; $scope.createNameserverLoading = true;
$scope.nameserverCreationFailed = false; $scope.nameserverCreationFailed = false;
$scope.nameserverCreated = true; $scope.nameserverCreated = true;
@@ -68,6 +66,7 @@ app.controller('createNameserver', function($scope,$http) {
} }
} }
function cantLoadInitialDatas(response) { function cantLoadInitialDatas(response) {
$scope.createNameserverLoading = true; $scope.createNameserverLoading = true;
$scope.nameserverCreationFailed = true; $scope.nameserverCreationFailed = true;
@@ -79,22 +78,20 @@ app.controller('createNameserver', function($scope,$http) {
}; };
}); });
/* Java script code to create NS ends here */ /* Java script code to create NS ends here */
/* Java script code to create DNS Zone */ /* Java script code to create DNS Zone */
app.controller('createDNSZone', function($scope,$http) { app.controller('createDNSZone', function ($scope, $http) {
$scope.createDNSZoneLoading = true; $scope.createDNSZoneLoading = true;
$scope.dnsZoneCreationFailed = true; $scope.dnsZoneCreationFailed = true;
$scope.dnsZoneCreated = true; $scope.dnsZoneCreated = true;
$scope.couldNotConnect = true; $scope.couldNotConnect = true;
$scope.createDNSZone = function(){ $scope.createDNSZone = function () {
var zoneDomain = $scope.zoneDomain; var zoneDomain = $scope.zoneDomain;
@@ -102,24 +99,23 @@ app.controller('createDNSZone', function($scope,$http) {
url = "/dns/zoneCreation"; url = "/dns/zoneCreation";
var data = { var data = {
zoneDomain:zoneDomain, zoneDomain: zoneDomain,
}; };
var config = { var config = {
headers : { headers: {
'X-CSRFToken': getCookie('csrftoken') 'X-CSRFToken': getCookie('csrftoken')
} }
}; };
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) { function ListInitialDatas(response) {
if(response.data.zoneCreation === 1){ if (response.data.zoneCreation === 1) {
$scope.createDNSZoneLoading = true; $scope.createDNSZoneLoading = true;
$scope.dnsZoneCreationFailed = true; $scope.dnsZoneCreationFailed = true;
$scope.dnsZoneCreated = false; $scope.dnsZoneCreated = false;
@@ -127,8 +123,7 @@ app.controller('createDNSZone', function($scope,$http) {
$scope.zoneDomain = $scope.zoneDomain; $scope.zoneDomain = $scope.zoneDomain;
} } else {
else{
$scope.createDNSZoneLoading = true; $scope.createDNSZoneLoading = true;
$scope.dnsZoneCreationFailed = false; $scope.dnsZoneCreationFailed = false;
$scope.dnsZoneCreated = true; $scope.dnsZoneCreated = true;
@@ -138,6 +133,7 @@ app.controller('createDNSZone', function($scope,$http) {
} }
} }
function cantLoadInitialDatas(response) { function cantLoadInitialDatas(response) {
$scope.createDNSZoneLoading = true; $scope.createDNSZoneLoading = true;
$scope.dnsZoneCreationFailed = true; $scope.dnsZoneCreationFailed = true;
@@ -149,8 +145,6 @@ app.controller('createDNSZone', function($scope,$http) {
}; };
}); });
/* Java script code to delete DNS Zone */ /* Java script code to delete DNS Zone */
@@ -158,7 +152,7 @@ app.controller('createDNSZone', function($scope,$http) {
/* Java script code to create DNS Zone */ /* Java script code to create DNS Zone */
app.controller('addModifyDNSRecords', function($scope,$http) { app.controller('addModifyDNSRecords', function ($scope, $http) {
$scope.addRecordsBox = true; $scope.addRecordsBox = true;
$scope.currentRecords = true; $scope.currentRecords = true;
@@ -185,32 +179,28 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
$(".caaRecord").hide(); $(".caaRecord").hide();
var currentSelection = "aRecord"; var currentSelection = "aRecord";
$("#"+currentSelection).addClass("active"); $("#" + currentSelection).addClass("active");
$scope.fetchRecordsTabs = function (recordType) { $scope.fetchRecordsTabs = function (recordType) {
$("#"+currentSelection).removeClass("active"); $("#" + currentSelection).removeClass("active");
$("."+currentSelection).hide(); $("." + currentSelection).hide();
$scope.recordsLoading = false; $scope.recordsLoading = false;
currentSelection = recordType; currentSelection = recordType;
$("#"+currentSelection).addClass("active"); $("#" + currentSelection).addClass("active");
$("."+currentSelection).show(); $("." + currentSelection).show();
populateCurrentRecords(); populateCurrentRecords();
}; };
$scope.fetchRecords = function () {
$scope.fetchRecords = function(){
$scope.recordsLoading = false; $scope.recordsLoading = false;
$scope.addRecordsBox = false; $scope.addRecordsBox = false;
populateCurrentRecords(); populateCurrentRecords();
}; };
$scope.addDNSRecord = function(type){ $scope.addDNSRecord = function (type) {
$scope.recordsLoading = false; $scope.recordsLoading = false;
@@ -222,15 +212,14 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
var data = {}; var data = {};
if(type === "MX"){ if (type === "MX") {
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentMX = $scope.recordContentMX; data.recordContentMX = $scope.recordContentMX;
data.priority = $scope.priority; data.priority = $scope.priority;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "A") {
else if(type === "A"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
@@ -238,57 +227,50 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "AAAA") {
else if(type === "AAAA"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentAAAA = $scope.recordContentAAAA; data.recordContentAAAA = $scope.recordContentAAAA;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "CNAME") {
else if(type === "CNAME"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentCNAME = $scope.recordContentCNAME; data.recordContentCNAME = $scope.recordContentCNAME;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "SPF") {
else if(type === "SPF"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentSPF = $scope.recordContentSPF; data.recordContentSPF = $scope.recordContentSPF;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "SOA") {
else if(type === "SOA"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.selectedZone; data.recordName = $scope.selectedZone;
data.recordContentSOA = $scope.recordContentSOA; data.recordContentSOA = $scope.recordContentSOA;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "TXT") {
else if(type === "TXT"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentTXT = $scope.recordContentTXT; data.recordContentTXT = $scope.recordContentTXT;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "NS") {
else if(type === "NS"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.selectedZone; data.recordName = $scope.selectedZone;
data.recordContentNS = $scope.recordContentNS; data.recordContentNS = $scope.recordContentNS;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
} } else if (type === "SRV") {
else if(type === "SRV"){
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentSRV = $scope.recordContentSRV; data.recordContentSRV = $scope.recordContentSRV;
data.priority = $scope.priority; data.priority = $scope.priority;
data.ttl = $scope.ttl; data.ttl = $scope.ttl;
data.recordType = type; data.recordType = type;
}else if(type === "CAA"){ } else if (type === "CAA") {
data.selectedZone = $scope.selectedZone; data.selectedZone = $scope.selectedZone;
data.recordName = $scope.recordName; data.recordName = $scope.recordName;
data.recordContentCAA = $scope.recordContentCAA; data.recordContentCAA = $scope.recordContentCAA;
@@ -297,24 +279,20 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
} }
var config = { var config = {
headers : { headers: {
'X-CSRFToken': getCookie('csrftoken') 'X-CSRFToken': getCookie('csrftoken')
} }
}; };
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) { function ListInitialDatas(response) {
if(response.data.add_status === 1){ if (response.data.add_status === 1) {
populateCurrentRecords(); populateCurrentRecords();
@@ -328,8 +306,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
$scope.recordsLoading = true; $scope.recordsLoading = true;
} } else {
else{
$scope.recordsFetched = true; $scope.recordsFetched = true;
$scope.recordDeleted = true; $scope.recordDeleted = true;
@@ -342,6 +319,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
} }
} }
function cantLoadInitialDatas(response) { function cantLoadInitialDatas(response) {
$scope.addRecordsBox = true; $scope.addRecordsBox = true;
@@ -354,37 +332,34 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
$scope.couldNotAddRecord = true; $scope.couldNotAddRecord = true;
} }
}; };
function populateCurrentRecords() {
function populateCurrentRecords(){
var selectedZone = $scope.selectedZone; var selectedZone = $scope.selectedZone;
url = "/dns/getCurrentRecordsForDomain"; url = "/dns/getCurrentRecordsForDomain";
var data = { var data = {
selectedZone:selectedZone, selectedZone: selectedZone,
currentSelection:currentSelection currentSelection: currentSelection
}; };
var config = { var config = {
headers : { headers: {
'X-CSRFToken': getCookie('csrftoken') 'X-CSRFToken': getCookie('csrftoken')
} }
}; };
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) { function ListInitialDatas(response) {
if(response.data.fetchStatus === 1){ if (response.data.fetchStatus === 1) {
$scope.records = JSON.parse(response.data.data); $scope.records = JSON.parse(response.data.data);
@@ -399,8 +374,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
$scope.domainFeteched = $scope.selectedZone; $scope.domainFeteched = $scope.selectedZone;
} } else {
else{
$scope.addRecordsBox = true; $scope.addRecordsBox = true;
$scope.currentRecords = true; $scope.currentRecords = true;
@@ -416,6 +390,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
} }
} }
function cantLoadInitialDatas(response) { function cantLoadInitialDatas(response) {
$scope.addRecordsBox = true; $scope.addRecordsBox = true;
@@ -433,7 +408,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
}; };
$scope.deleteRecord = function(id){ $scope.deleteRecord = function (id) {
var selectedZone = $scope.selectedZone; var selectedZone = $scope.selectedZone;
@@ -441,24 +416,23 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
url = "/dns/deleteDNSRecord"; url = "/dns/deleteDNSRecord";
var data = { var data = {
id:id, id: id,
}; };
var config = { var config = {
headers : { headers: {
'X-CSRFToken': getCookie('csrftoken') 'X-CSRFToken': getCookie('csrftoken')
} }
}; };
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) { function ListInitialDatas(response) {
if(response.data.delete_status == 1){ if (response.data.delete_status == 1) {
$scope.addRecordsBox = false; $scope.addRecordsBox = false;
@@ -476,9 +450,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
populateCurrentRecords(); populateCurrentRecords();
} else {
}
else{
$scope.addRecordsBox = true; $scope.addRecordsBox = true;
$scope.currentRecords = true; $scope.currentRecords = true;
@@ -499,6 +471,7 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
} }
} }
function cantLoadInitialDatas(response) { function cantLoadInitialDatas(response) {
$scope.addRecordsBox = false; $scope.addRecordsBox = false;
@@ -514,24 +487,20 @@ app.controller('addModifyDNSRecords', function($scope,$http) {
$scope.couldNotAddRecord = true; $scope.couldNotAddRecord = true;
} }
}; };
}); });
/* Java script code to delete DNS Zone */ /* Java script code to delete DNS Zone */
/* Java script code to delete DNS Zone */ /* Java script code to delete DNS Zone */
app.controller('deleteDNSZone', function($scope,$http) { app.controller('deleteDNSZone', function ($scope, $http) {
$scope.deleteZoneButton = true; $scope.deleteZoneButton = true;
$scope.deleteFailure = true; $scope.deleteFailure = true;
@@ -539,13 +508,13 @@ app.controller('deleteDNSZone', function($scope,$http) {
$scope.couldNotConnect = true; $scope.couldNotConnect = true;
$scope.deleteZone = function(){ $scope.deleteZone = function () {
$scope.deleteZoneButton = false; $scope.deleteZoneButton = false;
$scope.deleteFailure = true; $scope.deleteFailure = true;
$scope.deleteSuccess = true; $scope.deleteSuccess = true;
}; };
$scope.deleteZoneFinal = function(){ $scope.deleteZoneFinal = function () {
var zoneDomain = $scope.selectedZone; var zoneDomain = $scope.selectedZone;
@@ -553,24 +522,23 @@ app.controller('deleteDNSZone', function($scope,$http) {
url = "/dns/submitZoneDeletion"; url = "/dns/submitZoneDeletion";
var data = { var data = {
zoneDomain:zoneDomain, zoneDomain: zoneDomain,
}; };
var config = { var config = {
headers : { headers: {
'X-CSRFToken': getCookie('csrftoken') 'X-CSRFToken': getCookie('csrftoken')
} }
}; };
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) { function ListInitialDatas(response) {
if(response.data.delete_status == 1){ if (response.data.delete_status == 1) {
$scope.deleteZoneButton = true; $scope.deleteZoneButton = true;
$scope.deleteFailure = true; $scope.deleteFailure = true;
@@ -580,8 +548,7 @@ app.controller('deleteDNSZone', function($scope,$http) {
$scope.deletedZone = $scope.selectedZone; $scope.deletedZone = $scope.selectedZone;
} } else {
else{
$scope.deleteZoneButton = true; $scope.deleteZoneButton = true;
$scope.deleteFailure = false; $scope.deleteFailure = false;
@@ -593,6 +560,7 @@ app.controller('deleteDNSZone', function($scope,$http) {
} }
} }
function cantLoadInitialDatas(response) { function cantLoadInitialDatas(response) {
$scope.deleteZoneButton = true; $scope.deleteZoneButton = true;
@@ -606,8 +574,70 @@ app.controller('deleteDNSZone', function($scope,$http) {
}; };
}); });
/* Java script code to delete DNS Zone */ /* Java script code to delete DNS Zone */
/* Java script code to create NS */
app.controller('configureDefaultNameservers', function ($scope, $http) {
$scope.cyberPanelLoading = true;
$scope.saveNSConfigurations = function () {
$scope.cyberPanelLoading = false;
url = "/dns/saveNSConfigurations";
var data = {
firstNS: $scope.firstNS,
secondNS: $scope.secondNS,
thirdNS: $scope.thirdNS,
forthNS: $scope.forthNS,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Default nameservers saved.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
});
/* Java script code to create NS ends here */

View File

@@ -1,6 +1,6 @@
{% extends "baseTemplate/index.html" %} {% extends "baseTemplate/index.html" %}
{% load i18n %} {% load i18n %}
{% block title %}{% trans "Create Nameserver - CyberPanel" %}{% endblock %} {% block title %}{% trans "Configure Default Nameserver - CyberPanel" %}{% endblock %}
{% block content %} {% block content %}
{% load static %} {% load static %}
@@ -9,13 +9,13 @@
<div class="container"> <div class="container">
<div id="page-title"> <div id="page-title">
<h2>{% trans "Create Nameserver" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <h2>{% trans "Configure Default Nameserver" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2>
<p>{% trans "You can use this page to setup nameservers using which people on the internet can resolve websites hosted on this server." %}</p> <p>{% trans "You can use this page to setup nameservers using which people on the internet can resolve websites hosted on this server." %}</p>
</div> </div>
<div ng-controller="createNameserver" class="panel"> <div ng-controller="configureDefaultNameservers" class="panel">
<div class="panel-body"> <div class="panel-body">
<h3 class="content-box-header"> <h3 class="content-box-header">
{% trans "Details" %} <img ng-hide="createNameserverLoading" src="{% static 'images/loading.gif' %}"> {% trans "Details" %} <img ng-hide="cyberPanelLoading" src="{% static 'images/loading.gif' %}">
</h3> </h3>
<div class="example-box-wrapper"> <div class="example-box-wrapper">
@@ -32,19 +32,9 @@
<form action="/" class="form-horizontal bordered-row panel-body"> <form action="/" class="form-horizontal bordered-row panel-body">
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Domain Name" %}</label>
<div class="col-sm-6">
<input name="dom" type="text" class="form-control" ng-model="domainForNS" required>
</div>
<div class="current-pack">example.com</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{% trans "First Nameserver" %}</label> <label class="col-sm-3 control-label">{% trans "First Nameserver" %}</label>
<div class="col-sm-6"> <div ng-init="firstNS='{{ firstNS }}'" class="col-sm-6">
<input name="firstNS" type="text" class="form-control" ng-model="firstNS" required> <input name="firstNS" type="text" class="form-control" ng-model="firstNS" required>
</div> </div>
@@ -52,64 +42,33 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{% trans "IP Address" %}</label> <label class="col-sm-3 control-label">{% trans "Second Nameserver" %}</label>
<div class="col-sm-6"> <div ng-init="secondNS='{{ secondNS }}'" class="col-sm-6">
<input value="IP Address for first nameserver." name="firstNSIP" type="text" class="form-control" ng-model="firstNSIP" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Second Nameserver (Back up)" %} </label>
<div class="col-sm-6">
<input name="secondNS" type="text" class="form-control" ng-model="secondNS" required> <input name="secondNS" type="text" class="form-control" ng-model="secondNS" required>
</div> </div>
<div class="current-pack">ns2.example.com</div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">{% trans "IP Address" %}</label> <label class="col-sm-3 control-label">{% trans "Third Nameserver" %} </label>
<div class="col-sm-6"> <div ng-init="thirdNS='{{ thirdNS }}'" class="col-sm-6">
<input name="secondNSIP" type="text" class="form-control" ng-model="secondNSIP" required> <input name="thirdNS" type="text" class="form-control" ng-model="thirdNS" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Forth Nameserver" %}</label>
<div ng-init="forthNS='{{ forthNS }}'" class="col-sm-6">
<input name="forthNS" type="text" class="form-control" ng-model="forthNS" required>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label"></label> <label class="col-sm-3 control-label"></label>
<div class="col-sm-4"> <div class="col-sm-4">
<button type="button" ng-click="createNameserverFunc()" class="btn btn-primary btn-lg">{% trans "Create Nameserver" %}</button> <button type="button" ng-click="saveNSConfigurations()" class="btn btn-primary btn-lg">{% trans "Save" %}</button>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-6">
<div ng-hide="nameserverCreationFailed" class="alert alert-danger">
<p>{% trans "Nameserver cannot be created. Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="nameserverCreated" class="alert alert-success">
<p>{% trans "The following nameservers were successfully created:" %} <br>
<strong>{$ nameServerOne $}</strong> <br>
<strong>{$ nameServerTwo $}</strong> <br>
</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
</div>
</div>
</div>
</form> </form>

View File

@@ -16,4 +16,5 @@ urlpatterns = [
url(r'^deleteDNSRecord',views.deleteDNSRecord,name='deleteDNSRecord'), url(r'^deleteDNSRecord',views.deleteDNSRecord,name='deleteDNSRecord'),
url(r'^deleteDNSZone',views.deleteDNSZone,name='deleteDNSZone'), url(r'^deleteDNSZone',views.deleteDNSZone,name='deleteDNSZone'),
url(r'^submitZoneDeletion',views.submitZoneDeletion,name='submitZoneDeletion'), url(r'^submitZoneDeletion',views.submitZoneDeletion,name='submitZoneDeletion'),
url(r'^saveNSConfigurations$', views.saveNSConfigurations, name='saveNSConfigurations'),
] ]

View File

@@ -161,6 +161,15 @@ def configureDefaultNameServers(request):
return redirect(loadLoginPage) return redirect(loadLoginPage)
def saveNSConfigurations(request):
try:
userID = request.session['userID']
dm = DNSManager()
return dm.saveNSConfigurations(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)

View File

@@ -788,7 +788,6 @@ app.controller('viewContainer', function ($scope, $http) {
$scope.cAction = function (action) { $scope.cAction = function (action) {
$('#actionLoading').show(); $('#actionLoading').show();
console.log($scope.cName)
url = "/docker/doContainerAction"; url = "/docker/doContainerAction";
var data = {name: $scope.cName, action: action}; var data = {name: $scope.cName, action: action};
var config = { var config = {

View File

@@ -22,6 +22,7 @@ class DNS:
nsd_base = "/etc/nsd/nsd.conf" nsd_base = "/etc/nsd/nsd.conf"
zones_base_dir = "/usr/local/lsws/conf/zones/" zones_base_dir = "/usr/local/lsws/conf/zones/"
create_zone_dir = "/usr/local/lsws/conf/zones" create_zone_dir = "/usr/local/lsws/conf/zones"
defaultNameServersPath = '/home/cyberpanel/defaultNameservers'
## DNS Functions ## DNS Functions
@@ -82,6 +83,21 @@ class DNS:
auth=1) auth=1)
record.save() record.save()
if os.path.exists(DNS.defaultNameServersPath):
defaultNS = open(DNS.defaultNameServersPath, 'r').readlines()
for items in defaultNS:
record = Records(domainOwner=zone,
domain_id=zone.id,
name=topLevelDomain,
type="NS",
content=items,
ttl=3600,
prio=0,
disabled=0,
auth=1)
record.save()
else:
record = Records(domainOwner=zone, record = Records(domainOwner=zone,
domain_id=zone.id, domain_id=zone.id,
name=topLevelDomain, name=topLevelDomain,