Bug fixes and improvements to Backups and Website creation.

This commit is contained in:
usmannasir
2018-05-24 18:01:06 +05:00
parent 9de6aa393d
commit 528f8360a6
4 changed files with 54 additions and 106 deletions

View File

@@ -286,7 +286,8 @@ class backupUtilities:
{'masterDomain': masterDomain, 'domainName': domain, 'phpSelection': phpSelection, {'masterDomain': masterDomain, 'domainName': domain, 'phpSelection': phpSelection,
'path': path, 'path': path,
'ssl': 0, 'restore': 1, 'ssl': 0, 'restore': 1,
'dkimCheck': 0}) 'dkimCheck': 0,
'openBasedir':0})
r = requests.post("http://localhost:5003/websites/submitDomainCreation", data=finalData, r = requests.post("http://localhost:5003/websites/submitDomainCreation", data=finalData,
verify=False) verify=False)

View File

@@ -555,7 +555,7 @@ class virtualHostUtilities:
## OpenBase Dir Protection ## OpenBase Dir Protection
phpIniOverride = "phpIniOverride {\n" phpIniOverride = "phpIniOverride {\n"
php_admin_value = 'php_admin_value open_basedir "/tmp:' + path + '"\n' php_admin_value = 'php_admin_value open_basedir "/tmp:$VH_ROOT"\n'
endPHPIniOverride = "}\n" endPHPIniOverride = "}\n"
if openBasedir == 1: if openBasedir == 1:
@@ -1715,7 +1715,6 @@ def issueSSLForMailServer(virtualHost,path):
str(msg) + " [issueSSLForHostName]") str(msg) + " [issueSSLForHostName]")
print "0,"+str(msg) print "0,"+str(msg)
def createAlias(masterDomain,aliasDomain,ssl,sslPath, administratorEmail): def createAlias(masterDomain,aliasDomain,ssl,sslPath, administratorEmail):
try: try:
@@ -2001,6 +2000,7 @@ def main():
openBasedir = 0 openBasedir = 0
createVirtualHost(args.virtualHostName, args.administratorEmail, args.phpVersion, args.virtualHostUser, int(args.numberOfSites), int(args.ssl), args.sslPath, dkimCheck, openBasedir) createVirtualHost(args.virtualHostName, args.administratorEmail, args.phpVersion, args.virtualHostUser, int(args.numberOfSites), int(args.ssl), args.sslPath, dkimCheck, openBasedir)
elif args.function == "deleteVirtualHostConfigurations": elif args.function == "deleteVirtualHostConfigurations":
virtualHostUtilities.deleteVirtualHostConfigurations(args.virtualHostName,int(args.numberOfSites)) virtualHostUtilities.deleteVirtualHostConfigurations(args.virtualHostName,int(args.numberOfSites))
elif args.function == "createDomain": elif args.function == "createDomain":

View File

@@ -17,7 +17,7 @@
{% if not error %} {% if not error %}
<div class="example-box-wrapper"> <div class="example-box-wrapper">
<div style="border-radius: 25px;border-color:#3498db" class="content-box"> <div style="border-radius: 25px;border-color:#3498db" class="content-box">
@@ -109,7 +109,6 @@
</div> </div>
<div class="example-box-wrapper"> <div class="example-box-wrapper">
<div style="border-radius: 25px;border-color:#3498db" class="content-box"> <div style="border-radius: 25px;border-color:#3498db" class="content-box">

View File

@@ -38,7 +38,6 @@ def loadWebsitesHome(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def createWebsite(request): def createWebsite(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -80,7 +79,6 @@ def createWebsite(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def modifyWebsite(request): def modifyWebsite(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -126,7 +124,6 @@ def modifyWebsite(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def deleteWebsite(request): def deleteWebsite(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -172,8 +169,7 @@ def deleteWebsite(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def dnsTemplate(request, domain, admin):
def dnsTemplate(request, domain, admin, dkimCheck):
try: try:
ipFile = "/etc/cyberpanel/machineIP" ipFile = "/etc/cyberpanel/machineIP"
@@ -309,7 +305,6 @@ def dnsTemplate(request, domain, admin, dkimCheck):
auth=1) auth=1)
record.save() record.save()
else: else:
if Domains.objects.filter(name=topLevelDomain).count() == 0: if Domains.objects.filter(name=topLevelDomain).count() == 0:
zone = Domains(admin=admin, name=topLevelDomain, type="NATIVE") zone = Domains(admin=admin, name=topLevelDomain, type="NATIVE")
@@ -462,7 +457,6 @@ def createDKIMRecords(request, domain, admin):
logging.CyberCPLogFileWriter.writeToFile( logging.CyberCPLogFileWriter.writeToFile(
"We had errors while creating DNS records for: " + domain + ". Error message: " + str(msg)) "We had errors while creating DNS records for: " + domain + ". Error message: " + str(msg))
def siteState(request): def siteState(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -516,23 +510,19 @@ def submitWebsiteCreation(request):
websiteOwner = data['websiteOwner'] websiteOwner = data['websiteOwner']
externalApp = "".join(re.findall("[a-zA-Z]+", domain))[:7] externalApp = "".join(re.findall("[a-zA-Z]+", domain))[:7]
try:
website = Websites.objects.get(domain=domain)
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "Website Already Exists"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except:
pass
try: if Websites.objects.filter(domain=domain).count() > 0:
website = ChildDomains.objects.get(domain=domain)
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0, data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "Website Already Exists"} 'error_message': "This website already exists."}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
if ChildDomains.objects.filter(domain=domain).count() > 0:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "This website already exists as child domain."}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
except:
pass
####### Limitations check ####### Limitations check
@@ -540,42 +530,18 @@ def submitWebsiteCreation(request):
if admin.type == 1: if admin.type == 1:
pass pass
elif admin.type == 3:
if admin.initWebsitesLimit == 0:
pass
elif admin.websites_set.all().count() == admin.initWebsitesLimit:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "Selected owner have reached maximum websites limit"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
else:
pass
else: else:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
initialLimit = admin.initWebsitesLimit 'error_message': "Only administrators are allowed to create websites."}
try: json_data = json.dumps(data_ret)
subaccounts = Administrator.objects.filter(owner=admin.pk) return HttpResponse(json_data)
for items in subaccounts:
initialLimit = initialLimit - items.initWebsitesLimit
except:
pass
if admin.initWebsitesLimit == 0:
pass
elif admin.websites_set.all().count() == initialLimit:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "Selected owner have reached maximum websites limit"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
else:
pass
####### Limitations Check End ####### Limitations Check End
##### Zone creation ##### Zone creation
dnsTemplate(requests, domain, admin, data['dkimCheck']) dnsTemplate(requests, domain, admin)
## zone creation ## zone creation
@@ -604,7 +570,7 @@ def submitWebsiteCreation(request):
## DKIM Check ## DKIM Check
if data['dkimCheck'] == 1: if data['dkimCheck'] == 1:
createDKIMRecords(request,domain,admin) createDKIMRecords(request, domain, admin)
selectedPackage = Package.objects.get(packageName=packageName) selectedPackage = Package.objects.get(packageName=packageName)
@@ -630,23 +596,21 @@ def submitDomainCreation(request):
domain = data['domainName'] domain = data['domainName']
phpSelection = data['phpSelection'] phpSelection = data['phpSelection']
try:
website = Websites.objects.get(domain=domain)
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "Website Already Exists"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except:
pass
try: ## Check if this domain either exists as website or child domain
website = ChildDomains.objects.get(domain=domain)
if Websites.objects.filter(domain=domain).count() > 0:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0, data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "Website Already Exists"} 'error_message': "This Domain already exists as a website."}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
if ChildDomains.objects.filter(domain=domain).count() > 0:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "This domain already exists as child domain."}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
except:
pass
####### Limitations check ####### Limitations check
@@ -682,17 +646,12 @@ def submitDomainCreation(request):
else: else:
path = "/home/" + masterDomain + "/public_html/" + domain path = "/home/" + masterDomain + "/public_html/" + domain
### Zone creation. ### Zone creation.
try:
restore = data['restore']
restart = 0
except BaseException, msg:
val = request.session['userID'] val = request.session['userID']
admin = Administrator.objects.get(pk=val) admin = Administrator.objects.get(pk=val)
dnsTemplate(requests, domain, admin, data['dkimCheck']) dnsTemplate(requests, domain, admin)
## Zone creation.
externalApp = master.externalApp externalApp = master.externalApp
numberOfWebsites = str(Websites.objects.count() + ChildDomains.objects.count()) numberOfWebsites = str(Websites.objects.count() + ChildDomains.objects.count())
@@ -718,9 +677,9 @@ def submitDomainCreation(request):
try: try:
restore = data['restore'] restore = data['restore']
restart = 0 restart = 0
except BaseException, msg: except BaseException, msg:
if data['dkimCheck'] == 1: if data['dkimCheck'] == 1:
admin = Administrator.objects.get(pk=val)
createDKIMRecords(request, domain, admin) createDKIMRecords(request, domain, admin)
website = ChildDomains(master=master, domain=domain, path=path, phpSelection=phpSelection, ssl=ssl) website = ChildDomains(master=master, domain=domain, path=path, phpSelection=phpSelection, ssl=ssl)
@@ -780,8 +739,6 @@ def fetchDomains(request):
final_json = json.dumps(final_dic) final_json = json.dumps(final_dic)
return HttpResponse(final_json) return HttpResponse(final_json)
def listWebsites(request): def listWebsites(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -819,7 +776,6 @@ def listWebsites(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getFurtherAccounts(request): def getFurtherAccounts(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -891,7 +847,6 @@ def getFurtherAccounts(request):
json_data = json.dumps(dic) json_data = json.dumps(dic)
return HttpResponse(json_data) return HttpResponse(json_data)
def submitWebsiteDeletion(request): def submitWebsiteDeletion(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1045,7 +1000,6 @@ def submitWebsiteStatus(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def submitWebsiteModify(request): def submitWebsiteModify(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1127,8 +1081,6 @@ def submitWebsiteModify(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def saveWebsiteChanges(request): def saveWebsiteChanges(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1189,7 +1141,6 @@ def saveWebsiteChanges(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def domain(request,domain): def domain(request,domain):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1285,8 +1236,6 @@ def domain(request,domain):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getDataFromLogFile(request): def getDataFromLogFile(request):
data = json.loads(request.body) data = json.loads(request.body)
logType = data['logType'] logType = data['logType']
@@ -1383,7 +1332,6 @@ def fetchErrorLogs(request):
final_json = json.dumps({'logstatus': 0, 'error_message': str(msg)}) final_json = json.dumps({'logstatus': 0, 'error_message': str(msg)})
return HttpResponse(final_json) return HttpResponse(final_json)
def installWordpress(request): def installWordpress(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1602,7 +1550,6 @@ def installJoomla(request):
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installJoomla]") logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installJoomla]")
return HttpResponse("Not Logged in as admin") return HttpResponse("Not Logged in as admin")
def getDataFromConfigFile(request): def getDataFromConfigFile(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1703,7 +1650,6 @@ def saveConfigsToFile(request):
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]") logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]")
return HttpResponse("Not Logged in as admin") return HttpResponse("Not Logged in as admin")
def getRewriteRules(request): def getRewriteRules(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1806,8 +1752,6 @@ def saveRewriteRules(request):
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]") logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]")
return HttpResponse("Not Logged in as admin") return HttpResponse("Not Logged in as admin")
def saveSSL(request): def saveSSL(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1906,7 +1850,6 @@ def saveSSL(request):
data_ret = {'sslStatus': 0, 'error_message': str(msg)} data_ret = {'sslStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
def changePHP(request): def changePHP(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -1958,11 +1901,9 @@ def CreateWebsiteFromBackup(request):
data = json.loads(request.body) data = json.loads(request.body)
backupFile = data['backupFile'].strip(".tar.gz") backupFile = data['backupFile'].strip(".tar.gz")
originalFile = "/home/backup/" + data['backupFile'] originalFile = "/home/backup/" + data['backupFile']
if not os.path.exists(originalFile): if not os.path.exists(originalFile):
dir = data['dir'] dir = data['dir']
path = "/home/backup/transfer-"+str(dir)+"/"+backupFile path = "/home/backup/transfer-"+str(dir)+"/"+backupFile
@@ -1982,7 +1923,24 @@ def CreateWebsiteFromBackup(request):
phpSelection = backupMetaData.find('phpSelection').text phpSelection = backupMetaData.find('phpSelection').text
externalApp = backupMetaData.find('externalApp').text externalApp = backupMetaData.find('externalApp').text
####### Limitations Check End
## Pre-creation checks
if Websites.objects.filter(domain=domain).count() > 0:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "This website already exists."}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
if ChildDomains.objects.filter(domain=domain).count() > 0:
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
'error_message': "This website already exists as child domain."}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
####### Pre-creation checks ends
numberOfWebsites = str(Websites.objects.count() + ChildDomains.objects.count()) numberOfWebsites = str(Websites.objects.count() + ChildDomains.objects.count())
@@ -2144,7 +2102,6 @@ def CreateWebsiteFromBackup(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def listCron(request): def listCron(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2184,7 +2141,6 @@ def listCron(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getWebsiteCron(request): def getWebsiteCron(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2262,7 +2218,6 @@ def getWebsiteCron(request):
final_json = json.dumps(status) final_json = json.dumps(status)
return HttpResponse(final_json) return HttpResponse(final_json)
def getCronbyLine(request): def getCronbyLine(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2344,7 +2299,6 @@ def getCronbyLine(request):
final_json = json.dumps(status) final_json = json.dumps(status)
return HttpResponse(final_json) return HttpResponse(final_json)
def saveCronChanges(request): def saveCronChanges(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2435,7 +2389,6 @@ def saveCronChanges(request):
final_json = json.dumps(status) final_json = json.dumps(status)
return HttpResponse(final_json) return HttpResponse(final_json)
def remCronbyLine(request): def remCronbyLine(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2527,7 +2480,6 @@ def remCronbyLine(request):
final_json = json.dumps(status) final_json = json.dumps(status)
return HttpResponse(final_json) return HttpResponse(final_json)
def addNewCron(request): def addNewCron(request):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2620,7 +2572,6 @@ def addNewCron(request):
final_json = json.dumps(status) final_json = json.dumps(status)
return HttpResponse(final_json) return HttpResponse(final_json)
def domainAlias(request,domain): def domainAlias(request,domain):
try: try:
val = request.session['userID'] val = request.session['userID']
@@ -2670,7 +2621,6 @@ def domainAlias(request,domain):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def submitAliasCreation(request): def submitAliasCreation(request):
try: try:
if request.method == 'POST': if request.method == 'POST':
@@ -2685,7 +2635,7 @@ def submitAliasCreation(request):
##### Zone creation ##### Zone creation
dnsTemplate(requests, aliasDomain, admin, 0) dnsTemplate(requests, aliasDomain, admin)
### Zone creation ### Zone creation
@@ -2724,7 +2674,6 @@ def submitAliasCreation(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def issueAliasSSL(request): def issueAliasSSL(request):
try: try:
if request.method == 'POST': if request.method == 'POST':
@@ -2813,7 +2762,6 @@ def delateAlias(request):
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def changeOpenBasedir(request): def changeOpenBasedir(request):
try: try:
val = request.session['userID'] val = request.session['userID']