mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-01-17 21:12:05 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user