def right(request): # Get all objects: objects = LBEObjectTemplate.objects.all() listACLsObjects = [] # Test different Object's ACLs for the User: for obj in objects: ACLsObjects = dict() # R , C , U , A , D if not request.user.is_superuser: ACLsType = (False, False, False, False, False) else: ACLsType = (True, True, True, True, True) ACLsType = list(ACLsType) ACLsObjects[obj.displayName] = ACLsType if not request.user.is_superuser: ACLs = LBEDirectoryACL.objects.filter(object=obj) for acl in ACLs: if acl.type == "select" and not ACLsType[0]: aclHelper = ACLHelper(obj, acl.condition) ACLsType[0] = aclHelper.execute(str(request.user)) elif acl.type == "create" and not ACLsType[1]: aclHelper = ACLHelper(obj, acl.condition) ACLsType[1] = aclHelper.execute(str(request.user)) elif acl.type == "update" and not ACLsType[2]: aclHelper = ACLHelper(obj, acl.condition) ACLsType[2] = aclHelper.execute(str(request.user)) elif acl.type == "approval" and not ACLsType[3]: aclHelper = ACLHelper(obj, acl.condition) ACLsType[3] = aclHelper.execute(str(request.user)) elif acl.type == "delete" and not ACLsType[4]: aclHelper = ACLHelper(obj, acl.condition) ACLsType[4] = aclHelper.execute(str(request.user)) listACLsObjects.append(ACLsObjects) return render_to_response('user/acl.html', {'acls': listACLsObjects}, context_instance=RequestContext(request))
def clean_condition(self): acl = ACLHelper(None, self.cleaned_data["condition"]) if acl.check() == -1: raise forms.ValidationError(acl.traceback) return self.cleaned_data['condition']
def checkACL_AJAX(request, query=None): if request.is_ajax(): acl = ACLHelper(None, query) acl.check() return HttpResponse(acl.traceback) return HttpResponse('')