Update DocumentVersionSignatureCreateForm

Use FilteredSelectionForm. Improve document signatures tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-04-15 02:29:08 -04:00
parent cdb55ab5dd
commit 0d2a827413
7 changed files with 146 additions and 193 deletions

View File

@@ -62,6 +62,8 @@
* Use FilteredSelectionForm to add a new ACLCreateForm. * Use FilteredSelectionForm to add a new ACLCreateForm.
* Rename IndexListForm to IndexTemplateFilteredForm. * Rename IndexListForm to IndexTemplateFilteredForm.
* Use FilteredSelectionForm for IndexTemplateFilteredForm. * Use FilteredSelectionForm for IndexTemplateFilteredForm.
* Use FilteredSelectionForm for DocumentVersionSignatureCreateForm.
* Improve document signatures tests.
3.1.11 (2019-04-XX) 3.1.11 (2019-04-XX)
=================== ===================

View File

@@ -34,12 +34,20 @@ Move the development URL definitions for Rosetta and Debug toolbar
to a separate URL file. Convert the single urls.py to a module to to a separate URL file. Convert the single urls.py to a module to
allow multiple URL files to be used. allow multiple URL files to be used.
Settings Settings
^^^^^^^^ ^^^^^^^^
New default value for setting DOCUMENTS_HASH_BLOCK_SIZE is 65535. New default value for setting DOCUMENTS_HASH_BLOCK_SIZE is 65535.
New default value for setting MIMETYPE_FILE_READ_SIZE is 1024. New default value for setting MIMETYPE_FILE_READ_SIZE is 1024.
User interface
^^^^^^^^^^^^^^
Usage of select2 in more places (FilteredSelectionForm).
Cabinets, Tags, Rebuild index.
Other changes Other changes
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
@@ -86,6 +94,8 @@ Other changes
* Use FilteredSelectionForm to add a new ACLCreateForm. * Use FilteredSelectionForm to add a new ACLCreateForm.
* Rename IndexListForm to IndexTemplateFilteredForm. * Rename IndexListForm to IndexTemplateFilteredForm.
* Use FilteredSelectionForm for IndexTemplateFilteredForm. * Use FilteredSelectionForm for IndexTemplateFilteredForm.
* Use FilteredSelectionForm for DocumentVersionSignatureCreateForm.
* Improve document signatures tests.
Removals Removals
-------- --------

View File

@@ -5,8 +5,7 @@ import logging
from django import forms from django import forms
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from mayan.apps.acls.models import AccessControlList from mayan.apps.common.forms import DetailForm, FilteredSelectionForm
from mayan.apps.common.forms import DetailForm
from mayan.apps.django_gpg.models import Key from mayan.apps.django_gpg.models import Key
from mayan.apps.django_gpg.permissions import permission_key_sign from mayan.apps.django_gpg.permissions import permission_key_sign
@@ -15,28 +14,30 @@ from .models import SignatureBaseModel
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class DocumentVersionSignatureCreateForm(forms.Form): class DocumentVersionSignatureCreateForm(FilteredSelectionForm):
key = forms.ModelChoiceField( key = forms.ModelChoiceField(
label=_('Key'), queryset=Key.objects.none() label=_('Key'), queryset=Key.objects.none()
) )
passphrase = forms.CharField( passphrase = forms.CharField(
label=_('Passphrase'), required=False, help_text=_(
'The passphrase to unlock the key and allow it to be used to '
'sign the document version.'
), label=_('Passphrase'), required=False,
widget=forms.widgets.PasswordInput widget=forms.widgets.PasswordInput
) )
def __init__(self, *args, **kwargs): class Meta:
user = kwargs.pop('user', None) allow_multiple = False
logger.debug('user: %s', user) field_name = 'key'
super( label = _('Key')
DocumentVersionSignatureCreateForm, self help_text = _(
).__init__(*args, **kwargs) 'Private key that will be used to sign this document version.'
queryset = AccessControlList.objects.filter_by_access(
permission_key_sign, user, queryset=Key.objects.private_keys()
) )
permission = permission_key_sign
self.fields['key'].queryset = queryset queryset = Key.objects.private_keys()
required = True
widget_attributes = {'class': 'select2'}
class DocumentVersionSignatureDetailForm(DetailForm): class DocumentVersionSignatureDetailForm(DetailForm):

View File

@@ -0,0 +1,22 @@
from __future__ import absolute_import, unicode_literals
from django.core.files import File
from mayan.apps.django_gpg.models import Key
from ..models import DetachedSignature
from .literals import TEST_KEY_FILE, TEST_SIGNATURE_FILE_PATH
class SignaturesTestMixin(object):
def _create_detached_signature(self):
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object:
self.test_signature = DetachedSignature.objects.create(
document_version=self.document.latest_version,
signature_file=File(file_object)
)
def _create_test_key(self):
with open(TEST_KEY_FILE, mode='rb') as file_object:
self.test_key = Key.objects.create(key_data=file_object.read())

View File

@@ -4,7 +4,6 @@ import hashlib
import logging import logging
import time import time
from django.core.files import File
from django.test import override_settings from django.test import override_settings
from mayan.apps.common.tests import BaseTestCase from mayan.apps.common.tests import BaseTestCase
@@ -19,13 +18,13 @@ from ..models import DetachedSignature, EmbeddedSignature
from ..tasks import task_verify_missing_embedded_signature from ..tasks import task_verify_missing_embedded_signature
from .literals import ( from .literals import (
TEST_SIGNED_DOCUMENT_PATH, TEST_SIGNATURE_FILE_PATH, TEST_KEY_FILE, TEST_SIGNED_DOCUMENT_PATH, TEST_KEY_FILE, TEST_KEY_ID, TEST_SIGNATURE_ID
TEST_KEY_ID, TEST_SIGNATURE_ID
) )
from .mixins import SignaturesTestMixin
@override_settings(OCR_AUTO_OCR=False) @override_settings(OCR_AUTO_OCR=False)
class DocumentSignaturesTestCase(BaseTestCase): class DocumentSignaturesTestCase(SignaturesTestMixin, BaseTestCase):
def setUp(self): def setUp(self):
super(DocumentSignaturesTestCase, self).setUp() super(DocumentSignaturesTestCase, self).setUp()
self.document_type = DocumentType.objects.create( self.document_type = DocumentType.objects.create(
@@ -123,66 +122,56 @@ class DocumentSignaturesTestCase(BaseTestCase):
def test_detached_signature_no_key(self): def test_detached_signature_no_key(self):
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.assertEqual(DetachedSignature.objects.count(), 1) self.assertEqual(DetachedSignature.objects.count(), 1)
signature = DetachedSignature.objects.first() self.assertEqual(
self.test_signature.document_version, self.document.latest_version
self.assertEqual(signature.document_version, document.latest_version) )
self.assertEqual(signature.key_id, TEST_KEY_ID) self.assertEqual(self.test_signature.key_id, TEST_KEY_ID)
self.assertEqual(signature.public_key_fingerprint, None) self.assertEqual(self.test_signature.public_key_fingerprint, None)
def test_detached_signature_with_key(self): def test_detached_signature_with_key(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: with open(TEST_KEY_FILE, mode='rb') as file_object:
key = Key.objects.create(key_data=file_object.read()) key = Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.assertEqual(DetachedSignature.objects.count(), 1) self.assertEqual(DetachedSignature.objects.count(), 1)
signature = DetachedSignature.objects.first() self.assertEqual(
self.test_signature.document_version, self.document.latest_version
self.assertEqual(signature.document_version, document.latest_version) )
self.assertEqual(signature.key_id, TEST_KEY_ID) self.assertEqual(self.test_signature.key_id, TEST_KEY_ID)
self.assertEqual(signature.public_key_fingerprint, key.fingerprint) self.assertEqual(
self.test_signature.public_key_fingerprint, key.fingerprint
)
def test_detached_signature_post_key_verify(self): def test_detached_signature_post_key_verify(self):
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.assertEqual(DetachedSignature.objects.count(), 1) self.assertEqual(DetachedSignature.objects.count(), 1)
signature = DetachedSignature.objects.first() self.assertEqual(
self.test_signature.document_version, self.document.latest_version
self.assertEqual(signature.document_version, document.latest_version) )
self.assertEqual(signature.key_id, TEST_KEY_ID) self.assertEqual(self.test_signature.key_id, TEST_KEY_ID)
self.assertEqual(signature.public_key_fingerprint, None) self.assertEqual(self.test_signature.public_key_fingerprint, None)
with open(TEST_KEY_FILE, mode='rb') as file_object: with open(TEST_KEY_FILE, mode='rb') as file_object:
key = Key.objects.create(key_data=file_object.read()) key = Key.objects.create(key_data=file_object.read())
@@ -196,23 +185,21 @@ class DocumentSignaturesTestCase(BaseTestCase):
key = Key.objects.create(key_data=file_object.read()) key = Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.assertEqual(DetachedSignature.objects.count(), 1) self.assertEqual(DetachedSignature.objects.count(), 1)
signature = DetachedSignature.objects.first() self.assertEqual(
self.test_signature.document_version, self.document.latest_version
self.assertEqual(signature.document_version, document.latest_version) )
self.assertEqual(signature.key_id, TEST_KEY_ID) self.assertEqual(self.test_signature.key_id, TEST_KEY_ID)
self.assertEqual(signature.public_key_fingerprint, key.fingerprint) self.assertEqual(
self.test_signature.public_key_fingerprint, key.fingerprint
)
key.delete() key.delete()

View File

@@ -2,11 +2,8 @@ from __future__ import absolute_import, unicode_literals
import logging import logging
from django.core.files import File
from django_downloadview.test import assert_download_response from django_downloadview.test import assert_download_response
from mayan.apps.django_gpg.models import Key
from mayan.apps.documents.models import DocumentVersion from mayan.apps.documents.models import DocumentVersion
from mayan.apps.documents.tests import ( from mayan.apps.documents.tests import (
GenericDocumentViewTestCase, TEST_DOCUMENT_PATH GenericDocumentViewTestCase, TEST_DOCUMENT_PATH
@@ -21,15 +18,14 @@ from ..permissions import (
permission_document_version_signature_view permission_document_version_signature_view
) )
from .literals import ( from .literals import TEST_SIGNATURE_FILE_PATH, TEST_SIGNED_DOCUMENT_PATH
TEST_SIGNATURE_FILE_PATH, TEST_SIGNED_DOCUMENT_PATH, TEST_KEY_FILE from .mixins import SignaturesTestMixin
)
TEST_UNSIGNED_DOCUMENT_COUNT = 4 TEST_UNSIGNED_DOCUMENT_COUNT = 4
TEST_SIGNED_DOCUMENT_COUNT = 2 TEST_SIGNED_DOCUMENT_COUNT = 2
class SignaturesViewTestCase(GenericDocumentViewTestCase): class SignaturesViewTestCase(SignaturesTestMixin, GenericDocumentViewTestCase):
def setUp(self): def setUp(self):
super(SignaturesViewTestCase, self).setUp() super(SignaturesViewTestCase, self).setUp()
self.login_user() self.login_user()
@@ -41,251 +37,198 @@ class SignaturesViewTestCase(GenericDocumentViewTestCase):
) )
def test_signature_list_view_no_permission(self): def test_signature_list_view_no_permission(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: self._create_test_key()
Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
response = self._request_document_version_signature_list_view( response = self._request_document_version_signature_list_view(
document=document document=self.document
) )
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
def test_signature_list_view_with_access(self): def test_signature_list_view_with_access(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: self._create_test_key()
Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_view permission=permission_document_version_signature_view
) )
response = self._request_document_version_signature_list_view( response = self._request_document_version_signature_list_view(
document=document document=self.document
) )
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.context['object_list'].count(), 1) self.assertEqual(response.context['object_list'].count(), 1)
def _request_document_version_signature_details_view(self, signature): def _request_document_version_signature_details_view(self):
return self.get( return self.get(
viewname='signatures:document_version_signature_details', viewname='signatures:document_version_signature_details',
args=(signature.pk,) args=(self.test_signature.pk,)
) )
def test_signature_detail_view_no_permission(self): def test_signature_detail_view_no_permission(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: self._create_test_key()
Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
signature = DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
response = self._request_document_version_signature_details_view( response = self._request_document_version_signature_details_view()
signature=signature
)
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
def test_signature_detail_view_with_access(self): def test_signature_detail_view_with_access(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: self._create_test_key()
Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
signature = DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_view permission=permission_document_version_signature_view
) )
response = self._request_document_version_signature_details_view( response = self._request_document_version_signature_details_view()
signature=signature
)
self.assertContains( self.assertContains(
response=response, text=signature.signature_id, status_code=200 response=response, text=self.test_signature.signature_id,
status_code=200
) )
def _request_document_version_signature_upload_view(self, document_version): def _request_document_version_signature_upload_view(self):
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object:
return self.post( return self.post(
viewname='signatures:document_version_signature_upload', viewname='signatures:document_version_signature_upload',
args=(document_version.pk,), kwargs={'pk': self.document.latest_version.pk},
data={'signature_file': file_object} data={'signature_file': file_object}
) )
def test_signature_upload_view_no_permission(self): def test_signature_upload_view_no_permission(self):
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
response = self._request_document_version_signature_upload_view( response = self._request_document_version_signature_upload_view()
document_version=document.latest_version
)
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
self.assertEqual(DetachedSignature.objects.count(), 0) self.assertEqual(DetachedSignature.objects.count(), 0)
def test_signature_upload_view_with_access(self): def test_signature_upload_view_with_access(self):
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_upload permission=permission_document_version_signature_upload
) )
response = self._request_document_version_signature_upload_view( response = self._request_document_version_signature_upload_view()
document_version=document.latest_version
)
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
self.assertEqual(DetachedSignature.objects.count(), 1) self.assertEqual(DetachedSignature.objects.count(), 1)
def _request_document_version_signature_download_view(self, signature): def _request_document_version_signature_download_view(self):
return self.get( return self.get(
viewname='signatures:document_version_signature_download', viewname='signatures:document_version_signature_download',
args=(signature.pk,), kwargs={'pk': self.test_signature.pk}
) )
def test_signature_download_view_no_permission(self): def test_signature_download_view_no_permission(self):
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
signature = DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
response = self._request_document_version_signature_download_view( response = self._request_document_version_signature_download_view()
signature=signature
)
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
def test_signature_download_view_with_access(self): def test_signature_download_view_with_access(self):
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
signature = DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_download permission=permission_document_version_signature_download
) )
self.expected_content_type = 'application/octet-stream; charset=utf-8' self.expected_content_type = 'application/octet-stream; charset=utf-8'
response = self._request_document_version_signature_download_view( response = self._request_document_version_signature_download_view()
signature=signature
)
with signature.signature_file as file_object: with self.test_signature.signature_file as file_object:
assert_download_response( assert_download_response(
self, response=response, content=file_object.read(), self, response=response, content=file_object.read(),
) )
def _request_document_version_signature_delete_view(self, signature): def _request_document_version_signature_delete_view(self):
return self.post( return self.post(
viewname='signatures:document_version_signature_delete', viewname='signatures:document_version_signature_delete',
args=(signature.pk,) kwargs={'pk': self.test_signature.pk}
) )
def test_signature_delete_view_no_permission(self): def test_signature_delete_view_no_permission(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: self._create_test_key()
Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
signature = DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_view permission=permission_document_version_signature_view
) )
response = self._request_document_version_signature_delete_view( response = self._request_document_version_signature_delete_view()
signature=signature
)
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
self.assertEqual(DetachedSignature.objects.count(), 1) self.assertEqual(DetachedSignature.objects.count(), 1)
def test_signature_delete_view_with_access(self): def test_signature_delete_view_with_access(self):
with open(TEST_KEY_FILE, mode='rb') as file_object: self._create_test_key()
Key.objects.create(key_data=file_object.read())
with open(TEST_DOCUMENT_PATH, mode='rb') as file_object: with open(TEST_DOCUMENT_PATH, mode='rb') as file_object:
document = self.document_type.new_document( self.document = self.document_type.new_document(
file_object=file_object file_object=file_object
) )
with open(TEST_SIGNATURE_FILE_PATH, mode='rb') as file_object: self._create_detached_signature()
signature = DetachedSignature.objects.create(
document_version=document.latest_version,
signature_file=File(file_object)
)
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_delete permission=permission_document_version_signature_delete
) )
self.grant_access( self.grant_access(
obj=document, obj=self.document,
permission=permission_document_version_signature_view permission=permission_document_version_signature_view
) )
response = self._request_document_version_signature_delete_view( response = self._request_document_version_signature_delete_view()
signature=signature
)
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
self.assertEqual(DetachedSignature.objects.count(), 0) self.assertEqual(DetachedSignature.objects.count(), 0)

View File

@@ -54,7 +54,7 @@ class DocumentVersionDetachedSignatureCreateView(FormView):
passphrase = form.cleaned_data['passphrase'] or None passphrase = form.cleaned_data['passphrase'] or None
AccessControlList.objects.check_access( AccessControlList.objects.check_access(
permissions=permission_key_sign, user=self.request.user, obj=key obj=key, permissions=permission_key_sign, user=self.request.user
) )
try: try:
@@ -124,14 +124,8 @@ class DocumentVersionDetachedSignatureCreateView(FormView):
) % self.get_document_version(), ) % self.get_document_version(),
} }
def get_form_kwargs(self): def get_form_extra_kwargs(self):
result = super( return {'user': self.request.user}
DocumentVersionDetachedSignatureCreateView, self
).get_form_kwargs()
result.update({'user': self.request.user})
return result
def get_post_action_redirect(self): def get_post_action_redirect(self):
return reverse( return reverse(
@@ -193,7 +187,7 @@ class DocumentVersionEmbeddedSignatureCreateView(FormView):
return HttpResponseRedirect( return HttpResponseRedirect(
reverse( reverse(
'signatures:document_version_signature_list', viewname='signatures:document_version_signature_list',
args=(new_version.pk,) args=(new_version.pk,)
) )
) )
@@ -223,14 +217,8 @@ class DocumentVersionEmbeddedSignatureCreateView(FormView):
) % self.get_document_version(), ) % self.get_document_version(),
} }
def get_form_kwargs(self): def get_form_extra_kwargs(self):
result = super( return {'user': self.request.user}
DocumentVersionEmbeddedSignatureCreateView, self
).get_form_kwargs()
result.update({'user': self.request.user})
return result
class DocumentVersionSignatureDeleteView(SingleObjectDeleteView): class DocumentVersionSignatureDeleteView(SingleObjectDeleteView):