blob: 11ba22dd878e0c30d4183de23a6d5be5eb329183 [file] [log] [blame]
def can_update(self, user):
if user.is_readonly:
return False
if user.is_admin:
return True
cprivs = ControllerPrivilege.objects.filter(privilege__accessor_id=user.id, privilege__object_type='Site')
for cpriv in cprivs:
if cpriv.privilege.permission in ['role:admin', 'role:Admin']:
return True
return False
@staticmethod
def select_by_user(user):
if user.is_admin:
qs = ControllerPrivilege.objects.filter(privilege__object_type='Site')
else:
cpriv_ids = [cp.id for cp in ControllerPrivilege.objects.filter(privilege__accessor_id=user.id, privilege__object_type='Site')]
qs = ControllerPrivilege.objects.filter(id__in=cpriv_ids, privilege__object_type='Site')
return qs