diff --git a/plogical/acl.py b/plogical/acl.py index 81d374c37..6f77de6d6 100644 --- a/plogical/acl.py +++ b/plogical/acl.py @@ -365,13 +365,29 @@ class ACLManager: return websiteNames @staticmethod - def searchWebsiteObjects(userID, searchTerm): - admin = Administrator.objects.get(pk=userID) - return Websites.objects.filter(admin=admin, domain__istartswith=searchTerm) + def searchWebsiteObjects(currentACL, userID, searchTerm): + if currentACL['admin'] == 1: + return Websites.objects.filter(domain__istartswith=searchTerm) + else: + websiteList = [] + admin = Administrator.objects.get(pk=userID) + + websites = admin.websites_set.filter(domain__istartswith=searchTerm) + + for items in websites: + websiteList.append(items) + + admins = Administrator.objects.filter(owner=admin.pk) + + for items in admins: + webs = items.websites_set.filter(domain__istartswith=searchTerm) + for web in webs: + websiteList.append(web) + + return websiteList @staticmethod def findWebsiteObjects(currentACL, userID): - if currentACL['admin'] == 1: return Websites.objects.all() else: diff --git a/plogical/website.py b/plogical/website.py index 76f91f943..e882dbb8a 100644 --- a/plogical/website.py +++ b/plogical/website.py @@ -252,7 +252,13 @@ class WebsiteManager: def searchWebsites(self, userID = None, data = None): try: currentACL = ACLManager.loadedACL(userID) - json_data = self.searchWebsitesJson(userID, data['patternAdded']) + try: + json_data = self.searchWebsitesJson(currentACL, userID, data['patternAdded']) + except BaseException, msg: + tempData = {} + tempData['page'] = 1 + return self.getFurtherAccounts(userID, tempData) + pagination = self.websitePagination(currentACL, userID) final_dic = {'status': 1, 'listWebSiteStatus': 1, 'error_message': "None", "data": json_data, 'pagination': pagination} final_json = json.dumps(final_dic) @@ -2032,9 +2038,9 @@ Host gitlab.com json_data = json.dumps(data_ret) return HttpResponse(json_data) - def searchWebsitesJson(self, userID, searchTerm): + def searchWebsitesJson(self, currentlACL, userID, searchTerm): - websites = ACLManager.searchWebsiteObjects(userID, searchTerm) + websites = ACLManager.searchWebsiteObjects(currentlACL, userID, searchTerm) json_data = "[" checker = 0