|
@@ -33,29 +33,35 @@ LOG = logging.getLogger(__name__)
|
|
|
def check_document_access_permission():
|
|
def check_document_access_permission():
|
|
|
def inner(view_func):
|
|
def inner(view_func):
|
|
|
def decorate(request, *args, **kwargs):
|
|
def decorate(request, *args, **kwargs):
|
|
|
- doc_id = {}
|
|
|
|
|
|
|
+ doc_id = uuid = None
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
- if request.GET.get('workflow') or request.POST.get('workflow'):
|
|
|
|
|
- workflow_id = request.GET.get('workflow') or request.POST.get('workflow')
|
|
|
|
|
|
|
+ if request.REQUEST.get('workflow'):
|
|
|
|
|
+ workflow_id = request.REQUEST.get('workflow')
|
|
|
if workflow_id.isdigit():
|
|
if workflow_id.isdigit():
|
|
|
- doc_id['id'] = workflow_id
|
|
|
|
|
|
|
+ doc_id = workflow_id
|
|
|
else:
|
|
else:
|
|
|
- doc_id['uuid'] = workflow_id
|
|
|
|
|
|
|
+ uuid = workflow_id
|
|
|
elif request.GET.get('uuid'):
|
|
elif request.GET.get('uuid'):
|
|
|
- doc_id['uuid'] = request.GET.get('uuid')
|
|
|
|
|
|
|
+ uuid = request.GET.get('uuid')
|
|
|
elif request.GET.get('coordinator'):
|
|
elif request.GET.get('coordinator'):
|
|
|
- doc_id['id'] = request.GET.get('coordinator')
|
|
|
|
|
|
|
+ doc_id = request.GET.get('coordinator')
|
|
|
elif request.GET.get('bundle'):
|
|
elif request.GET.get('bundle'):
|
|
|
- doc_id['id'] = request.GET.get('bundle')
|
|
|
|
|
|
|
+ doc_id = request.GET.get('bundle')
|
|
|
elif 'doc_id' in kwargs:
|
|
elif 'doc_id' in kwargs:
|
|
|
- doc_id['id'] = kwargs['doc_id']
|
|
|
|
|
|
|
+ doc_id = kwargs['doc_id']
|
|
|
|
|
|
|
|
- if doc_id:
|
|
|
|
|
- doc2 = Document2.objects.get(**doc_id)
|
|
|
|
|
- doc2.doc.get().can_read_or_exception(request.user)
|
|
|
|
|
|
|
+ if doc_id is not None:
|
|
|
|
|
+ doc2 = Document2.objects.get(id=doc_id)
|
|
|
|
|
+ elif uuid is not None:
|
|
|
|
|
+ doc2 = Document2.objects.get_by_uuid(uuid)
|
|
|
|
|
+ else:
|
|
|
|
|
+ raise PopupException(_('Failed to retrieve Document2 object, id or uuid is required.'))
|
|
|
|
|
+
|
|
|
|
|
+ doc2.doc.get().can_read_or_exception(request.user)
|
|
|
except Document2.DoesNotExist:
|
|
except Document2.DoesNotExist:
|
|
|
- raise PopupException(_('Job %(id)s does not exist') % {'id': doc_id})
|
|
|
|
|
|
|
+ raise PopupException(_('Job with %(key)s=%(value)s does not exist') %
|
|
|
|
|
+ {'key': 'id' if doc_id else 'uuid', 'value': doc_id or uuid})
|
|
|
|
|
|
|
|
return view_func(request, *args, **kwargs)
|
|
return view_func(request, *args, **kwargs)
|
|
|
return wraps(view_func)(decorate)
|
|
return wraps(view_func)(decorate)
|