diff --git a/manageSSL/views.py b/manageSSL/views.py index 05ec7e988..0dfdb16c5 100755 --- a/manageSSL/views.py +++ b/manageSSL/views.py @@ -126,7 +126,7 @@ def sslForHostName(request): else: return ACLManager.loadError() - websitesName = ACLManager.findAllSites(currentACL, userID) + websitesName = ACLManager.findAllSites(currentACL, userID, 1) return render(request, 'manageSSL/sslForHostName.html', {'websiteList': websitesName}) except KeyError: @@ -151,11 +151,15 @@ def obtainHostNameSSL(request): data = json.loads(request.body) virtualHost = data['virtualHost'] - path = "/home/" + virtualHost + "/public_html" + try: + website = Websites.objects.get(domain=virtualHost) + path = "/home/" + virtualHost + "/public_html" + except: + website = ChildDomains.objects.get(domain=virtualHost) + path = website.path - data = json.loads(request.body) - virtualHost = data['virtualHost'] admin = Administrator.objects.get(pk=userID) + if ACLManager.checkOwnership(virtualHost, admin, currentACL) == 1: pass else: diff --git a/plogical/acl.py b/plogical/acl.py index a79139059..e3ae1f63f 100755 --- a/plogical/acl.py +++ b/plogical/acl.py @@ -405,13 +405,19 @@ class ACLManager: return admin.package_set.all() @staticmethod - def findAllSites(currentACL, userID): + def findAllSites(currentACL, userID, fetchChilds = 0): websiteNames = [] if currentACL['admin'] == 1: allWebsites = Websites.objects.all() + for items in allWebsites: websiteNames.append(items.domain) + + if fetchChilds: + for child in items.childdomains_set.all(): + websiteNames.append(child.domain) + else: admin = Administrator.objects.get(pk=userID) @@ -421,11 +427,19 @@ class ACLManager: for items in websites: websiteNames.append(items.domain) + if fetchChilds: + for child in items.childdomains_set.all(): + websiteNames.append(child.domain) + for items in admins: webs = items.websites_set.all() for web in webs: websiteNames.append(web.domain) + if fetchChilds: + for child in web.childdomains_set.all(): + websiteNames.append(child.domain) + return websiteNames