Backport ACL computation improvements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -40,8 +40,8 @@ class APIDocumentTypeWorkflowListView(generics.ListAPIView):
|
||||
)
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_document_type_view, user=self.request.user,
|
||||
obj=document_type
|
||||
obj=document_type, permissions=(permission_document_type_view,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return document_type
|
||||
@@ -105,8 +105,8 @@ class APIWorkflowDocumentTypeList(generics.ListCreateAPIView):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_required, user=self.request.user,
|
||||
obj=workflow
|
||||
obj=workflow, permissions=(permission_required,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return workflow
|
||||
@@ -158,8 +158,8 @@ class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_required, user=self.request.user,
|
||||
obj=workflow
|
||||
obj=workflow, permissions=(permission_required,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return workflow
|
||||
@@ -261,8 +261,8 @@ class APIWorkflowStateListView(generics.ListCreateAPIView):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_required, user=self.request.user,
|
||||
obj=workflow
|
||||
obj=workflow, permissions=(permission_required,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return workflow
|
||||
@@ -304,8 +304,8 @@ class APIWorkflowStateView(generics.RetrieveUpdateDestroyAPIView):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_required, user=self.request.user,
|
||||
obj=workflow
|
||||
obj=workflow, permissions=(permission_required,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return workflow
|
||||
@@ -357,8 +357,8 @@ class APIWorkflowTransitionListView(generics.ListCreateAPIView):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_required, user=self.request.user,
|
||||
obj=workflow
|
||||
obj=workflow, permissions=(permission_required,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return workflow
|
||||
@@ -411,8 +411,8 @@ class APIWorkflowTransitionView(generics.RetrieveUpdateDestroyAPIView):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_required, user=self.request.user,
|
||||
obj=workflow
|
||||
obj=workflow, permissions=(permission_required,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return workflow
|
||||
@@ -435,8 +435,8 @@ class APIWorkflowInstanceListView(generics.ListAPIView):
|
||||
document = get_object_or_404(klass=Document, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=self.request.user,
|
||||
obj=document
|
||||
obj=document, permissions=(permission_workflow_view,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return document
|
||||
@@ -460,8 +460,8 @@ class APIWorkflowInstanceView(generics.RetrieveAPIView):
|
||||
document = get_object_or_404(klass=Document, pk=self.kwargs['pk'])
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=self.request.user,
|
||||
obj=document
|
||||
obj=document, permissions=(permission_workflow_view,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return document
|
||||
@@ -488,9 +488,10 @@ class APIWorkflowInstanceLogEntryListView(generics.ListCreateAPIView):
|
||||
Failing that, check for ACLs for any of the workflow's transitions.
|
||||
Failing that, then raise PermissionDenied
|
||||
"""
|
||||
# TODO: Improvement above
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=self.request.user,
|
||||
obj=document
|
||||
obj=document, permissions=(permission_workflow_view,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
return document
|
||||
|
||||
@@ -417,8 +417,9 @@ class WorkflowInstance(models.Model):
|
||||
all transition options.
|
||||
"""
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_transition,
|
||||
user=_user, obj=self.workflow
|
||||
obj=self.workflow,
|
||||
permissions=(permission_workflow_transition,),
|
||||
user=_user
|
||||
)
|
||||
except PermissionDenied:
|
||||
"""
|
||||
@@ -427,7 +428,8 @@ class WorkflowInstance(models.Model):
|
||||
"""
|
||||
queryset = AccessControlList.objects.filter_by_access(
|
||||
permission=permission_workflow_transition,
|
||||
user=_user, queryset=queryset
|
||||
queryset=queryset,
|
||||
user=_user
|
||||
)
|
||||
return queryset
|
||||
else:
|
||||
|
||||
@@ -23,8 +23,8 @@ __all__ = (
|
||||
class DocumentWorkflowInstanceListView(SingleObjectListView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=request.user,
|
||||
obj=self.get_document()
|
||||
obj=self.get_document(), permissions=(permission_workflow_view,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
return super(
|
||||
@@ -58,8 +58,8 @@ class DocumentWorkflowInstanceListView(SingleObjectListView):
|
||||
class WorkflowInstanceDetailView(SingleObjectListView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=request.user,
|
||||
obj=self.get_workflow_instance().document
|
||||
obj=self.get_workflow_instance().document,
|
||||
permissions=(permission_workflow_view,), user=request.user
|
||||
)
|
||||
|
||||
return super(
|
||||
|
||||
@@ -27,8 +27,8 @@ class WorkflowDocumentListView(DocumentListView):
|
||||
)
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=request.user,
|
||||
obj=self.workflow
|
||||
obj=self.workflow, permissions=(permission_workflow_view,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
return super(
|
||||
@@ -111,8 +111,8 @@ class WorkflowStateDocumentListView(DocumentListView):
|
||||
)
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=self.request.user,
|
||||
obj=workflow_state.workflow
|
||||
obj=workflow_state.workflow,
|
||||
permissions=(permission_workflow_view,), user=self.request.user
|
||||
)
|
||||
|
||||
return workflow_state
|
||||
@@ -121,8 +121,8 @@ class WorkflowStateDocumentListView(DocumentListView):
|
||||
class WorkflowStateListView(SingleObjectListView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=request.user,
|
||||
obj=self.get_workflow()
|
||||
obj=self.get_workflow(), permissions=(permission_workflow_view,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
return super(
|
||||
|
||||
@@ -345,7 +345,7 @@ class SetupWorkflowStateCreateView(SingleObjectCreateView):
|
||||
def get_workflow(self):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=(permission_workflow_edit,), obj=workflow,
|
||||
obj=workflow, permissions=(permission_workflow_edit,),
|
||||
user=self.request.user
|
||||
)
|
||||
return workflow
|
||||
@@ -380,7 +380,7 @@ class SetupWorkflowStateDeleteView(SingleObjectDeleteView):
|
||||
def get_workflow(self):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=(permission_workflow_edit,), obj=workflow,
|
||||
obj=workflow, permissions=(permission_workflow_edit,),
|
||||
user=self.request.user
|
||||
)
|
||||
return workflow
|
||||
@@ -410,8 +410,8 @@ class SetupWorkflowStateListView(SingleObjectListView):
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_view, user=request.user,
|
||||
obj=self.get_workflow()
|
||||
obj=self.get_workflow(), permissions=(permission_workflow_view,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
return super(
|
||||
@@ -492,7 +492,7 @@ class SetupWorkflowTransitionCreateView(SingleObjectCreateView):
|
||||
def get_workflow(self):
|
||||
workflow = get_object_or_404(klass=Workflow, pk=self.kwargs['pk'])
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=(permission_workflow_edit,), obj=workflow,
|
||||
obj=workflow, permissions=(permission_workflow_edit,),
|
||||
user=self.request.user
|
||||
)
|
||||
return workflow
|
||||
@@ -580,8 +580,9 @@ class SetupWorkflowTransitionTriggerEventListView(FormView):
|
||||
|
||||
def dispatch(self, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_workflow_edit,
|
||||
user=self.request.user, obj=self.get_object().workflow
|
||||
obj=self.get_object().workflow,
|
||||
permissions=(permission_workflow_edit,),
|
||||
user=self.request.user
|
||||
)
|
||||
|
||||
EventType.refresh()
|
||||
|
||||
Reference in New Issue
Block a user