mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-16 10:16:12 +01:00
Bug fixes and improvements to Backups and Website creation.
This commit is contained in:
@@ -286,7 +286,8 @@ class backupUtilities:
|
||||
{'masterDomain': masterDomain, 'domainName': domain, 'phpSelection': phpSelection,
|
||||
'path': path,
|
||||
'ssl': 0, 'restore': 1,
|
||||
'dkimCheck': 0})
|
||||
'dkimCheck': 0,
|
||||
'openBasedir':0})
|
||||
r = requests.post("http://localhost:5003/websites/submitDomainCreation", data=finalData,
|
||||
verify=False)
|
||||
|
||||
|
||||
@@ -555,7 +555,7 @@ class virtualHostUtilities:
|
||||
## OpenBase Dir Protection
|
||||
|
||||
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"
|
||||
|
||||
if openBasedir == 1:
|
||||
@@ -1715,7 +1715,6 @@ def issueSSLForMailServer(virtualHost,path):
|
||||
str(msg) + " [issueSSLForHostName]")
|
||||
print "0,"+str(msg)
|
||||
|
||||
|
||||
def createAlias(masterDomain,aliasDomain,ssl,sslPath, administratorEmail):
|
||||
try:
|
||||
|
||||
@@ -2001,6 +2000,7 @@ def main():
|
||||
openBasedir = 0
|
||||
|
||||
createVirtualHost(args.virtualHostName, args.administratorEmail, args.phpVersion, args.virtualHostUser, int(args.numberOfSites), int(args.ssl), args.sslPath, dkimCheck, openBasedir)
|
||||
|
||||
elif args.function == "deleteVirtualHostConfigurations":
|
||||
virtualHostUtilities.deleteVirtualHostConfigurations(args.virtualHostName,int(args.numberOfSites))
|
||||
elif args.function == "createDomain":
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
{% if not error %}
|
||||
|
||||
|
||||
<div class="example-box-wrapper">
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
<div style="border-radius: 25px;border-color:#3498db" class="content-box">
|
||||
|
||||
@@ -109,7 +109,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
<div style="border-radius: 25px;border-color:#3498db" class="content-box">
|
||||
|
||||
@@ -38,7 +38,6 @@ def loadWebsitesHome(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def createWebsite(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -80,7 +79,6 @@ def createWebsite(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def modifyWebsite(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -126,7 +124,6 @@ def modifyWebsite(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def deleteWebsite(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -172,8 +169,7 @@ def deleteWebsite(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def dnsTemplate(request, domain, admin, dkimCheck):
|
||||
def dnsTemplate(request, domain, admin):
|
||||
try:
|
||||
|
||||
ipFile = "/etc/cyberpanel/machineIP"
|
||||
@@ -309,7 +305,6 @@ def dnsTemplate(request, domain, admin, dkimCheck):
|
||||
auth=1)
|
||||
record.save()
|
||||
|
||||
|
||||
else:
|
||||
if Domains.objects.filter(name=topLevelDomain).count() == 0:
|
||||
zone = Domains(admin=admin, name=topLevelDomain, type="NATIVE")
|
||||
@@ -462,7 +457,6 @@ def createDKIMRecords(request, domain, admin):
|
||||
logging.CyberCPLogFileWriter.writeToFile(
|
||||
"We had errors while creating DNS records for: " + domain + ". Error message: " + str(msg))
|
||||
|
||||
|
||||
def siteState(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -516,23 +510,19 @@ def submitWebsiteCreation(request):
|
||||
websiteOwner = data['websiteOwner']
|
||||
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:
|
||||
website = ChildDomains.objects.get(domain=domain)
|
||||
if Websites.objects.filter(domain=domain).count() > 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)
|
||||
return HttpResponse(json_data)
|
||||
except:
|
||||
pass
|
||||
|
||||
####### Limitations check
|
||||
|
||||
@@ -540,42 +530,18 @@ def submitWebsiteCreation(request):
|
||||
|
||||
if admin.type == 1:
|
||||
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:
|
||||
|
||||
initialLimit = admin.initWebsitesLimit
|
||||
try:
|
||||
subaccounts = Administrator.objects.filter(owner=admin.pk)
|
||||
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
|
||||
data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
|
||||
'error_message': "Only administrators are allowed to create websites."}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
####### Limitations Check End
|
||||
|
||||
##### Zone creation
|
||||
|
||||
dnsTemplate(requests, domain, admin, data['dkimCheck'])
|
||||
dnsTemplate(requests, domain, admin)
|
||||
|
||||
## zone creation
|
||||
|
||||
@@ -604,7 +570,7 @@ def submitWebsiteCreation(request):
|
||||
## DKIM Check
|
||||
|
||||
if data['dkimCheck'] == 1:
|
||||
createDKIMRecords(request,domain,admin)
|
||||
createDKIMRecords(request, domain, admin)
|
||||
|
||||
selectedPackage = Package.objects.get(packageName=packageName)
|
||||
|
||||
@@ -630,23 +596,21 @@ def submitDomainCreation(request):
|
||||
domain = data['domainName']
|
||||
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:
|
||||
website = ChildDomains.objects.get(domain=domain)
|
||||
## Check if this domain either exists as website or child domain
|
||||
|
||||
if Websites.objects.filter(domain=domain).count() > 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)
|
||||
return HttpResponse(json_data)
|
||||
except:
|
||||
pass
|
||||
|
||||
####### Limitations check
|
||||
|
||||
@@ -682,17 +646,12 @@ def submitDomainCreation(request):
|
||||
else:
|
||||
path = "/home/" + masterDomain + "/public_html/" + domain
|
||||
|
||||
### Zone creation.
|
||||
### Zone creation.
|
||||
|
||||
try:
|
||||
restore = data['restore']
|
||||
restart = 0
|
||||
except BaseException, msg:
|
||||
val = request.session['userID']
|
||||
admin = Administrator.objects.get(pk=val)
|
||||
dnsTemplate(requests, domain, admin, data['dkimCheck'])
|
||||
dnsTemplate(requests, domain, admin)
|
||||
|
||||
## Zone creation.
|
||||
|
||||
externalApp = master.externalApp
|
||||
numberOfWebsites = str(Websites.objects.count() + ChildDomains.objects.count())
|
||||
@@ -718,9 +677,9 @@ def submitDomainCreation(request):
|
||||
try:
|
||||
restore = data['restore']
|
||||
restart = 0
|
||||
|
||||
except BaseException, msg:
|
||||
if data['dkimCheck'] == 1:
|
||||
admin = Administrator.objects.get(pk=val)
|
||||
createDKIMRecords(request, domain, admin)
|
||||
|
||||
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)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
|
||||
def listWebsites(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -819,7 +776,6 @@ def listWebsites(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def getFurtherAccounts(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -891,7 +847,6 @@ def getFurtherAccounts(request):
|
||||
json_data = json.dumps(dic)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def submitWebsiteDeletion(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1045,7 +1000,6 @@ def submitWebsiteStatus(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def submitWebsiteModify(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1127,8 +1081,6 @@ def submitWebsiteModify(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
|
||||
def saveWebsiteChanges(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1189,7 +1141,6 @@ def saveWebsiteChanges(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def domain(request,domain):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1285,8 +1236,6 @@ def domain(request,domain):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
|
||||
def getDataFromLogFile(request):
|
||||
data = json.loads(request.body)
|
||||
logType = data['logType']
|
||||
@@ -1383,7 +1332,6 @@ def fetchErrorLogs(request):
|
||||
final_json = json.dumps({'logstatus': 0, 'error_message': str(msg)})
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
def installWordpress(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1602,7 +1550,6 @@ def installJoomla(request):
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installJoomla]")
|
||||
return HttpResponse("Not Logged in as admin")
|
||||
|
||||
|
||||
def getDataFromConfigFile(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1703,7 +1650,6 @@ def saveConfigsToFile(request):
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]")
|
||||
return HttpResponse("Not Logged in as admin")
|
||||
|
||||
|
||||
def getRewriteRules(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1806,8 +1752,6 @@ def saveRewriteRules(request):
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[saveConfigsToFile]")
|
||||
return HttpResponse("Not Logged in as admin")
|
||||
|
||||
|
||||
|
||||
def saveSSL(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1906,7 +1850,6 @@ def saveSSL(request):
|
||||
data_ret = {'sslStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
|
||||
|
||||
def changePHP(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -1958,11 +1901,9 @@ def CreateWebsiteFromBackup(request):
|
||||
|
||||
data = json.loads(request.body)
|
||||
backupFile = data['backupFile'].strip(".tar.gz")
|
||||
|
||||
originalFile = "/home/backup/" + data['backupFile']
|
||||
|
||||
|
||||
|
||||
if not os.path.exists(originalFile):
|
||||
dir = data['dir']
|
||||
path = "/home/backup/transfer-"+str(dir)+"/"+backupFile
|
||||
@@ -1982,7 +1923,24 @@ def CreateWebsiteFromBackup(request):
|
||||
phpSelection = backupMetaData.find('phpSelection').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())
|
||||
|
||||
@@ -2144,7 +2102,6 @@ def CreateWebsiteFromBackup(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def listCron(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2184,7 +2141,6 @@ def listCron(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def getWebsiteCron(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2262,7 +2218,6 @@ def getWebsiteCron(request):
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
def getCronbyLine(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2344,7 +2299,6 @@ def getCronbyLine(request):
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
def saveCronChanges(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2435,7 +2389,6 @@ def saveCronChanges(request):
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
def remCronbyLine(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2527,7 +2480,6 @@ def remCronbyLine(request):
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
def addNewCron(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2620,7 +2572,6 @@ def addNewCron(request):
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
def domainAlias(request,domain):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
@@ -2670,7 +2621,6 @@ def domainAlias(request,domain):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def submitAliasCreation(request):
|
||||
try:
|
||||
if request.method == 'POST':
|
||||
@@ -2685,7 +2635,7 @@ def submitAliasCreation(request):
|
||||
|
||||
##### Zone creation
|
||||
|
||||
dnsTemplate(requests, aliasDomain, admin, 0)
|
||||
dnsTemplate(requests, aliasDomain, admin)
|
||||
|
||||
### Zone creation
|
||||
|
||||
@@ -2724,7 +2674,6 @@ def submitAliasCreation(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def issueAliasSSL(request):
|
||||
try:
|
||||
if request.method == 'POST':
|
||||
@@ -2813,7 +2762,6 @@ def delateAlias(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def changeOpenBasedir(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
Reference in New Issue
Block a user