ACL Manager

This commit is contained in:
usmannasir
2018-08-18 00:39:10 +05:00
parent 5daf2513d9
commit 930e1a2f8e
57 changed files with 25510 additions and 23870 deletions

View File

@@ -6,15 +6,11 @@ from loginSystem.views import loadLoginPage
from websiteFunctions.models import Websites,ChildDomains
from loginSystem.models import Administrator
from plogical.virtualHostUtilities import virtualHostUtilities
from plogical.sslUtilities import sslUtilities
from plogical.installUtilities import installUtilities
from django.http import HttpResponse
import json
import os
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
import shutil
import shlex
import subprocess
from plogical.acl import ACLManager
# Create your views here.
@@ -27,47 +23,36 @@ def loadSSLHome(request):
def manageSSL(request):
try:
val = request.session['userID']
admin = Administrator.objects.get(pk=val)
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if admin.type == 1:
websites = Websites.objects.all()
websitesName = []
for items in websites:
websitesName.append(items.domain)
if currentACL['admin'] == 1:
pass
elif currentACL['manageSSL'] == 1:
pass
else:
if admin.type == 2:
websites = admin.websites_set.all()
admins = Administrator.objects.filter(owner=admin.pk)
websitesName = []
for items in websites:
websitesName.append(items.domain)
for items in admins:
webs = items.websites_set.all()
for web in webs:
websitesName.append(web.domain)
else:
websitesName = []
websites = Websites.objects.filter(admin=admin)
for items in websites:
websitesName.append(items.domain)
return ACLManager.loadError()
websitesName = ACLManager.findAllSites(currentACL, userID)
return render(request, 'manageSSL/manageSSL.html',{'websiteList':websitesName})
except KeyError:
return redirect(loadLoginPage)
def issueSSL(request):
try:
val = request.session['userID']
admin = Administrator.objects.get(pk=val)
userID = request.session['userID']
admin = Administrator.objects.get(pk=userID)
try:
if request.method == 'POST':
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
elif currentACL['manageSSL'] == 1:
pass
else:
return ACLManager.loadErrorJson('SSL', 0)
data = json.loads(request.body)
virtualHost = data['virtualHost']
@@ -75,32 +60,16 @@ def issueSSL(request):
adminEmail = ""
path = ""
try:
website = ChildDomains.objects.get(domain=virtualHost)
adminEmail = website.master.adminEmail
path = data['path']
if admin.type != 1:
if admin != website.master.admin:
data_ret = {"SSL": 0,
'error_message': 'You do not own this domain.'}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except:
website = Websites.objects.get(domain=virtualHost)
adminEmail = website.adminEmail
path = "/home/" + virtualHost + "/public_html"
if admin.type != 1:
if admin != website.admin:
data_ret = {"SSL": 0,
'error_message': 'You do not own this website.'}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
## ssl issue
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
@@ -139,43 +108,19 @@ def issueSSL(request):
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def sslForHostName(request):
try:
val = request.session['userID']
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
admin = Administrator.objects.get(pk=val)
if admin.type==1:
if currentACL['admin'] == 1:
pass
elif currentACL['hostnameSSL'] == 1:
pass
else:
return HttpResponse("You should be admin to issue SSL For Hostname.")
return ACLManager.loadError()
if admin.type == 1:
websites = Websites.objects.all()
websitesName = []
for items in websites:
websitesName.append(items.domain)
else:
if admin.type == 2:
websites = admin.websites_set.all()
admins = Administrator.objects.filter(owner=admin.pk)
websitesName = []
for items in websites:
websitesName.append(items.domain)
for items in admins:
webs = items.websites_set.all()
for web in webs:
websitesName.append(web.domain)
else:
websitesName = []
websites = Websites.objects.filter(admin=admin)
for items in websites:
websitesName.append(items.domain)
websitesName = ACLManager.findAllSites(currentACL, userID)
return render(request, 'manageSSL/sslForHostName.html',{'websiteList':websitesName})
except KeyError:
@@ -183,43 +128,44 @@ def sslForHostName(request):
def obtainHostNameSSL(request):
try:
val = request.session['userID']
admin = Administrator.objects.get(pk=val)
userID = request.session['userID']
try:
if admin.type == 1:
if request.method == 'POST':
if request.method == 'POST':
data = json.loads(request.body)
virtualHost = data['virtualHost']
currentACL = ACLManager.loadedACL(userID)
path = "/home/" + virtualHost + "/public_html"
if currentACL['admin'] == 1:
pass
elif currentACL['hostnameSSL'] == 1:
pass
else:
return ACLManager.loadErrorJson('SSL', 0)
## ssl issue
data = json.loads(request.body)
virtualHost = data['virtualHost']
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
path = "/home/" + virtualHost + "/public_html"
execPath = execPath + " issueSSLForHostName --virtualHostName " + virtualHost + " --path " + path
## ssl issue
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
output = subprocess.check_output(shlex.split(execPath))
execPath = execPath + " issueSSLForHostName --virtualHostName " + virtualHost + " --path " + path
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)
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)
## ssl issue ends
else:
data_ret = {"SSL": 0,
'error_message': 'Only administrators can issue Hostname SSL.'}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException,msg:
data_ret = {"SSL": 0,
@@ -234,40 +180,17 @@ def obtainHostNameSSL(request):
def sslForMailServer(request):
try:
val = request.session['userID']
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
admin = Administrator.objects.get(pk=request.session['userID'])
if admin.type==1:
if currentACL['admin'] == 1:
pass
elif currentACL['mailServerSSL'] == 1:
pass
else:
return HttpResponse("You should be admin to issue SSL For Mail Server.")
return ACLManager.loadError()
if admin.type == 1:
websites = Websites.objects.all()
websitesName = []
for items in websites:
websitesName.append(items.domain)
else:
if admin.type == 2:
websites = admin.websites_set.all()
admins = Administrator.objects.filter(owner=admin.pk)
websitesName = []
for items in websites:
websitesName.append(items.domain)
for items in admins:
webs = items.websites_set.all()
for web in webs:
websitesName.append(web.domain)
else:
websitesName = []
websites = Websites.objects.filter(admin=admin)
for items in websites:
websitesName.append(items.domain)
websitesName = ACLManager.findAllSites(currentACL, userID)
return render(request, 'manageSSL/sslForMailServer.html',{'websiteList':websitesName})
except KeyError:
@@ -275,42 +198,44 @@ def sslForMailServer(request):
def obtainMailServerSSL(request):
try:
val = request.session['userID']
admin = Administrator.objects.get(pk=val)
userID = request.session['userID']
try:
if admin.type == 1:
if request.method == 'POST':
if request.method == 'POST':
data = json.loads(request.body)
virtualHost = data['virtualHost']
currentACL = ACLManager.loadedACL(userID)
path = "/home/" + virtualHost + "/public_html"
## ssl issue
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
execPath = execPath + " issueSSLForMailServer --virtualHostName " + virtualHost + " --path " + path
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)
## ssl issue ends
if currentACL['admin'] == 1:
pass
elif currentACL['mailServerSSL'] == 1:
pass
else:
data_ret = {"SSL": 0,
'error_message': 'Only administrators can issue Mail Server SSL.'}
return ACLManager.loadErrorJson('SSL', 0)
data = json.loads(request.body)
virtualHost = data['virtualHost']
path = "/home/" + virtualHost + "/public_html"
## ssl issue
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
execPath = execPath + " issueSSLForMailServer --virtualHostName " + virtualHost + " --path " + path
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)
## ssl issue ends
except BaseException,msg: