Fix ACL child domain permission issues for non-admin users

- Fix checkOwnership() to return explicit 0 instead of None when checking child domain ownership
  This resolves permission failures for non-admin ACL users trying to manage child domains

- Improve fetchChildDomainsMain() with more robust child domain filtering
  Changed from .filter(alais=0) to .all() with explicit check to prevent silent failures

- Add error logging with traceback to fetchChildDomainsMain() for better debugging

These changes allow non-admin users with proper ACL permissions to view and manage
child domains for websites they own.
This commit is contained in:
usmannasir
2025-12-14 17:59:19 +04:00
parent ae020ece7b
commit a2f9cf99eb
2 changed files with 10 additions and 5 deletions

View File

@@ -761,6 +761,8 @@ class ACLManager:
else:
if childDomain.master.admin.owner == admin.pk:
return 1
else:
return 0
except:
domainName = Websites.objects.get(domain=domain)

View File

@@ -2519,11 +2519,12 @@ Require valid-user
childDomains = []
for web in websites:
for child in web.childdomains_set.filter(alais=0):
if child.domain == f'mail.{web.domain}':
pass
else:
childDomains.append(child)
for child in web.childdomains_set.all():
if child.alais == 0:
if child.domain == f'mail.{web.domain}':
pass
else:
childDomains.append(child)
pagination = self.getPagination(len(childDomains), recordsToShow)
json_data = self.findChildsListJson(childDomains[finalPageNumber:endPageNumber])
@@ -2533,6 +2534,8 @@ Require valid-user
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
except BaseException as msg:
import traceback
logging.CyberCPLogFileWriter.writeToFile(f"fetchChildDomainsMain error for userID {userID}: {str(msg)}\n{traceback.format_exc()}")
dic = {'status': 1, 'listWebSiteStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(dic)
return HttpResponse(json_data)