def perm_exists(self, perm, obj=None): # determine whether a permission exists try: get_perm(perm, obj) except self.DoesNotExist: return False return True
def has_perm(self, perm, obj=None): # determine whether a user or a group has provided permission if hasattr(self.instance, 'is_superuser') and self.instance.is_superuser: return True perm = get_perm(perm, obj) if perm is None: return False else: return self.all_perms().filter(pk=get_perm(perm, obj).pk).exists()
def get_perms(self, *perms, obj=None): obj_perms = [] for perm in perms: obj_perms.append(get_perm(perm, obj)) return obj_perms
def get_perm(self, perm, obj=None): # get a permission if it belongs to group or user perm = get_perm(perm, obj) return self.all_perms().get(pk=perm.pk)