Files
CyberPanel/manageSSL/views.py

251 lines
8.1 KiB
Python
Raw Normal View History

2017-10-24 19:16:36 +05:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render,redirect
from loginSystem.views import loadLoginPage
from websiteFunctions.models import Websites,ChildDomains
2017-10-24 19:16:36 +05:00
from loginSystem.models import Administrator
from plogical.virtualHostUtilities import virtualHostUtilities
from django.http import HttpResponse
import json
import shlex
import subprocess
2018-08-18 00:39:10 +05:00
from plogical.acl import ACLManager
2017-10-24 19:16:36 +05:00
# Create your views here.
def loadSSLHome(request):
try:
2018-08-28 23:11:33 +05:00
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
return render(request, 'manageSSL/index.html', currentACL)
2017-10-24 19:16:36 +05:00
except KeyError:
return redirect(loadLoginPage)
def manageSSL(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['manageSSL'] == 1:
pass
2017-10-24 19:16:36 +05:00
else:
2018-08-18 00:39:10 +05:00
return ACLManager.loadError()
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
websitesName = ACLManager.findAllSites(currentACL, userID)
2017-10-24 19:16:36 +05:00
return render(request, 'manageSSL/manageSSL.html',{'websiteList':websitesName})
except KeyError:
return redirect(loadLoginPage)
def issueSSL(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
admin = Administrator.objects.get(pk=userID)
2017-10-24 19:16:36 +05:00
try:
if request.method == 'POST':
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
elif currentACL['manageSSL'] == 1:
pass
else:
return ACLManager.loadErrorJson('SSL', 0)
2017-10-24 19:16:36 +05:00
data = json.loads(request.body)
virtualHost = data['virtualHost']
2017-12-09 22:30:10 +05:00
adminEmail = ""
path = ""
try:
website = ChildDomains.objects.get(domain=virtualHost)
2017-12-09 22:30:10 +05:00
adminEmail = website.master.adminEmail
path = data['path']
2018-06-30 15:29:56 +05:00
except:
website = Websites.objects.get(domain=virtualHost)
2017-12-09 22:30:10 +05:00
adminEmail = website.adminEmail
path = "/home/" + virtualHost + "/public_html"
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
## ssl issue
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
execPath = execPath + " issueSSL --virtualHostName " + virtualHost + " --administratorEmail " + adminEmail + " --path " + path
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
output = subprocess.check_output(shlex.split(execPath))
2017-10-24 19:16:36 +05:00
2017-12-09 22:30:10 +05:00
if output.find("1,None") > -1:
pass
2017-10-26 23:50:59 +05:00
2017-12-09 22:30:10 +05:00
else:
data_ret = {"SSL": 0,
'error_message': output}
2017-10-24 19:16:36 +05:00
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2017-12-09 22:30:10 +05:00
## ssl issue ends
website.ssl = 1
website.save()
data_ret = {"SSL": 1,
'error_message': "None"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2017-10-24 19:16:36 +05:00
except BaseException,msg:
data_ret = {"SSL": 0,
2017-10-24 19:16:36 +05:00
'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except KeyError:
data_ret = {"SSL": 0,
2017-10-24 19:16:36 +05:00
'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def sslForHostName(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['hostnameSSL'] == 1:
2017-10-24 19:16:36 +05:00
pass
else:
2018-08-18 00:39:10 +05:00
return ACLManager.loadError()
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
websitesName = ACLManager.findAllSites(currentACL, userID)
2017-10-24 19:16:36 +05:00
return render(request, 'manageSSL/sslForHostName.html',{'websiteList':websitesName})
except KeyError:
return redirect(loadLoginPage)
def obtainHostNameSSL(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
if request.method == 'POST':
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['hostnameSSL'] == 1:
pass
else:
return ACLManager.loadErrorJson('SSL', 0)
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
data = json.loads(request.body)
virtualHost = data['virtualHost']
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
path = "/home/" + virtualHost + "/public_html"
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
## ssl issue
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
execPath = execPath + " issueSSLForHostName --virtualHostName " + virtualHost + " --path " + path
2017-10-24 19:16:36 +05:00
2018-08-18 00:39:10 +05:00
output = subprocess.check_output(shlex.split(execPath))
if output.find("1,None") > -1:
data_ret = {"SSL": 1,
'error_message': "None"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
else:
data_ret = {"SSL": 0,
'error_message': output}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2017-12-09 22:30:10 +05:00
2018-06-30 15:29:56 +05:00
## ssl issue ends
2017-10-24 19:16:36 +05:00
except BaseException,msg:
data_ret = {"SSL": 0,
2017-10-24 19:16:36 +05:00
'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except KeyError:
2018-04-26 17:59:47 +05:00
data_ret = {"SSL": 0,
'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def sslForMailServer(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['mailServerSSL'] == 1:
2018-04-26 17:59:47 +05:00
pass
else:
2018-08-18 00:39:10 +05:00
return ACLManager.loadError()
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
websitesName = ACLManager.findAllSites(currentACL, userID)
2018-04-26 17:59:47 +05:00
return render(request, 'manageSSL/sslForMailServer.html',{'websiteList':websitesName})
except KeyError:
return redirect(loadLoginPage)
def obtainMailServerSSL(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-04-26 17:59:47 +05:00
try:
2018-08-18 00:39:10 +05:00
if request.method == 'POST':
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
currentACL = ACLManager.loadedACL(userID)
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
if currentACL['admin'] == 1:
pass
elif currentACL['mailServerSSL'] == 1:
pass
else:
return ACLManager.loadErrorJson('SSL', 0)
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
data = json.loads(request.body)
virtualHost = data['virtualHost']
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
path = "/home/" + virtualHost + "/public_html"
## ssl issue
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
execPath = execPath + " issueSSLForMailServer --virtualHostName " + virtualHost + " --path " + path
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
output = subprocess.check_output(shlex.split(execPath))
2018-04-26 17:59:47 +05:00
2018-08-18 00:39:10 +05:00
if output.find("1,None") > -1:
data_ret = {"SSL": 1,
'error_message': "None"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2018-04-26 17:59:47 +05:00
else:
data_ret = {"SSL": 0,
2018-08-18 00:39:10 +05:00
'error_message': output}
2018-04-26 17:59:47 +05:00
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
2018-08-18 00:39:10 +05:00
## ssl issue ends
2018-04-26 17:59:47 +05:00
except BaseException,msg:
data_ret = {"SSL": 0,
'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except KeyError,msg:
data_ret = {"SSL": 0,
2017-10-24 19:16:36 +05:00
'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)