Renamed the document type permission namespace from "Document setup" to "Document types".
Add support for granting the document type edit, document type delete, and document type view permissions to individual document type instances. Improved tests by testing for accesses. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -17,6 +17,10 @@
|
||||
- Switch the order of the DEFAULT_AUTHENTICATION_CLASSES of DRF. GitLab #400.
|
||||
- Backport document's version list view permission.
|
||||
- Improve code to unbind menu entries.
|
||||
- Renamed the document type permission namespace from "Document setup" to "Document types".
|
||||
- Add support for granting the document type edit, document type delete, and document type view
|
||||
permissions to individual document type instances.
|
||||
- Improved tests by testing for accesses.
|
||||
|
||||
2.5.2 (2017-07-08)
|
||||
==================
|
||||
|
||||
@@ -59,6 +59,20 @@ access control now works on two levels. Now to attach a tag to a document,
|
||||
the permission to attach tags must be granted to the tag to attach and to the
|
||||
document that will receive the tag.
|
||||
|
||||
ACL changes
|
||||
-----------
|
||||
The document type permissions namespace was renamed from "Document setup" to
|
||||
"Document types" for clarity. Along with that change, support was added
|
||||
for granting the document type edit, document type delete, and document type view
|
||||
permissions to individual document type instances instead of just globally.
|
||||
|
||||
Testing
|
||||
-------
|
||||
The documents app view tests now test for view access and not just permission.
|
||||
Testing against access is more robust and also tests for permissions
|
||||
implicitly.
|
||||
|
||||
|
||||
Other Changes
|
||||
-------------
|
||||
- Fix HTML mark up in window title. GitLab #397.
|
||||
|
||||
@@ -31,7 +31,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
self.assertEqual(Cabinet.objects.count(), 0)
|
||||
|
||||
def test_cabinet_create_view_with_permission(self):
|
||||
self.grant(permission=permission_cabinet_create)
|
||||
self.grant_permission(permission=permission_cabinet_create)
|
||||
|
||||
response = self._request_create_cabinet(label=TEST_CABINET_LABEL)
|
||||
|
||||
@@ -41,7 +41,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
def test_cabinet_create_duplicate_view_with_permission(self):
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
self.grant(permission=permission_cabinet_create)
|
||||
self.grant_permission(permission=permission_cabinet_create)
|
||||
response = self._request_create_cabinet(label=TEST_CABINET_LABEL)
|
||||
|
||||
# HTTP 200 with error message
|
||||
@@ -60,7 +60,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
self.assertEqual(Cabinet.objects.count(), 1)
|
||||
|
||||
def test_cabinet_delete_view_with_permission(self):
|
||||
self.grant(permission=permission_cabinet_delete)
|
||||
self.grant_permission(permission=permission_cabinet_delete)
|
||||
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
|
||||
@@ -89,7 +89,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_cabinet_edit_view_with_permission(self):
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
|
||||
self.grant(permission=permission_cabinet_edit)
|
||||
self.grant_permission(permission=permission_cabinet_edit)
|
||||
|
||||
response = self._edit_cabinet(
|
||||
cabinet=cabinet, label=TEST_CABINET_EDITED_LABEL
|
||||
@@ -109,7 +109,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_cabinet_add_document_view_no_permission(self):
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
|
||||
self.grant(permission=permission_cabinet_view)
|
||||
self.grant_permission(permission=permission_cabinet_view)
|
||||
|
||||
response = self._add_document_to_cabinet(cabinet=cabinet)
|
||||
|
||||
@@ -122,9 +122,9 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_cabinet_add_document_view_with_permission(self):
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
|
||||
self.grant(permission=permission_cabinet_view)
|
||||
self.grant(permission=permission_cabinet_add_document)
|
||||
self.grant(permission=permission_document_view)
|
||||
self.grant_permission(permission=permission_cabinet_view)
|
||||
self.grant_permission(permission=permission_cabinet_add_document)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
|
||||
response = self._add_document_to_cabinet(cabinet=cabinet)
|
||||
|
||||
@@ -146,7 +146,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_cabinet_add_multiple_documents_view_no_permission(self):
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
|
||||
self.grant(permission=permission_cabinet_view)
|
||||
self.grant_permission(permission=permission_cabinet_view)
|
||||
|
||||
response = self._add_multiple_documents_to_cabinet(cabinet=cabinet)
|
||||
|
||||
@@ -159,8 +159,8 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_cabinet_add_multiple_documents_view_with_permission(self):
|
||||
cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL)
|
||||
|
||||
self.grant(permission=permission_cabinet_view)
|
||||
self.grant(permission=permission_cabinet_add_document)
|
||||
self.grant_permission(permission=permission_cabinet_view)
|
||||
self.grant_permission(permission=permission_cabinet_add_document)
|
||||
|
||||
response = self._add_multiple_documents_to_cabinet(cabinet=cabinet)
|
||||
|
||||
@@ -198,7 +198,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
cabinet.documents.add(self.document)
|
||||
|
||||
self.grant(permission=permission_cabinet_remove_document)
|
||||
self.grant_permission(permission=permission_cabinet_remove_document)
|
||||
|
||||
response = self._remove_document_from_cabinet(cabinet=cabinet)
|
||||
|
||||
@@ -221,7 +221,7 @@ class CabinetViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
def test_cabinet_list_view_with_permission(self):
|
||||
self._create_cabinet()
|
||||
self.grant(permission=permission_cabinet_view)
|
||||
self.grant_permission(permission=permission_cabinet_view)
|
||||
response = self._request_cabinet_list()
|
||||
|
||||
self.assertContains(
|
||||
|
||||
@@ -7,6 +7,7 @@ from django.core.urlresolvers import clear_url_caches, reverse
|
||||
from django.http import HttpResponse
|
||||
from django.template import Context, Template
|
||||
|
||||
from acls.models import AccessControlList
|
||||
from permissions.models import Role
|
||||
from permissions.tests.literals import TEST_ROLE_LABEL
|
||||
from user_management.tests import (
|
||||
@@ -74,7 +75,12 @@ class GenericViewTestCase(BaseTestCase):
|
||||
data=data, follow=follow
|
||||
)
|
||||
|
||||
def grant(self, permission):
|
||||
def grant_access(self, permission, obj):
|
||||
AccessControlList.objects.grant(
|
||||
permission=permission, role=self.role, obj=obj
|
||||
)
|
||||
|
||||
def grant_permission(self, permission):
|
||||
self.role.permissions.add(
|
||||
permission.stored_permission
|
||||
)
|
||||
|
||||
@@ -32,7 +32,7 @@ class TransformationViewsTestCase(GenericDocumentViewTestCase):
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_transformation_list_view_with_permissions(self):
|
||||
self.grant(permission=permission_transformation_view)
|
||||
self.grant_permission(permission=permission_transformation_view)
|
||||
response = self._transformation_list_view()
|
||||
|
||||
self.assertContains(
|
||||
@@ -57,7 +57,7 @@ class TransformationViewsTestCase(GenericDocumentViewTestCase):
|
||||
self.assertEqual(Transformation.objects.count(), 0)
|
||||
|
||||
def test_transformation_create_view_with_permissions(self):
|
||||
self.grant(permission=permission_transformation_create)
|
||||
self.grant_permission(permission=permission_transformation_create)
|
||||
response = self._transformation_create_view()
|
||||
|
||||
self.assertEqual(response.status_code, 302)
|
||||
@@ -85,7 +85,7 @@ class TransformationViewsTestCase(GenericDocumentViewTestCase):
|
||||
self.assertEqual(Transformation.objects.count(), 1)
|
||||
|
||||
def test_transformation_delete_view_with_permissions(self):
|
||||
self.grant(permission=permission_transformation_delete)
|
||||
self.grant_permission(permission=permission_transformation_delete)
|
||||
response = self._transformation_delete_view()
|
||||
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
@@ -197,7 +197,7 @@ class DocumentStateToolViewTestCase(GenericDocumentViewTestCase):
|
||||
self._create_workflow_transition()
|
||||
|
||||
self.login_user()
|
||||
self.grant(permission_workflow_tools)
|
||||
self.grant_permission(permission=permission_workflow_tools)
|
||||
|
||||
self.assertEqual(self.document.workflows.count(), 0)
|
||||
|
||||
@@ -287,7 +287,7 @@ class DocumentStateTransitionViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
workflow_instance = self.document_2.workflows.first()
|
||||
|
||||
self.grant(permission_workflow_transition)
|
||||
self.grant_permission(permission=permission_workflow_transition)
|
||||
response = self._request_workflow_transition(
|
||||
workflow_instance=workflow_instance
|
||||
)
|
||||
|
||||
@@ -70,7 +70,9 @@ from .permissions import (
|
||||
permission_document_download, permission_document_edit,
|
||||
permission_document_new_version, permission_document_print,
|
||||
permission_document_properties_edit, permission_document_restore,
|
||||
permission_document_trash, permission_document_version_revert,
|
||||
permission_document_trash, permission_document_type_delete,
|
||||
permission_document_type_edit, permission_document_type_view,
|
||||
permission_document_version_revert, permission_document_version_view,
|
||||
permission_document_view
|
||||
)
|
||||
from .queues import * # NOQA
|
||||
@@ -173,7 +175,8 @@ class DocumentsApp(MayanAppConfig):
|
||||
permission_document_edit, permission_document_new_version,
|
||||
permission_document_print, permission_document_properties_edit,
|
||||
permission_document_restore, permission_document_trash,
|
||||
permission_document_version_revert, permission_document_view,
|
||||
permission_document_version_revert,
|
||||
permission_document_version_view, permission_document_view,
|
||||
permission_events_view, permission_transformation_create,
|
||||
permission_transformation_delete,
|
||||
permission_transformation_edit, permission_transformation_view,
|
||||
@@ -181,7 +184,10 @@ class DocumentsApp(MayanAppConfig):
|
||||
)
|
||||
|
||||
ModelPermission.register(
|
||||
model=DocumentType, permissions=(permission_document_create,)
|
||||
model=DocumentType, permissions=(
|
||||
permission_document_create, permission_document_type_delete,
|
||||
permission_document_type_edit, permission_document_type_view
|
||||
)
|
||||
)
|
||||
|
||||
ModelPermission.register_proxy(
|
||||
@@ -191,14 +197,15 @@ class DocumentsApp(MayanAppConfig):
|
||||
ModelPermission.register_inheritance(
|
||||
model=Document, related='document_type',
|
||||
)
|
||||
|
||||
ModelPermission.register_inheritance(
|
||||
model=DocumentVersion, related='document',
|
||||
)
|
||||
|
||||
ModelPermission.register_inheritance(
|
||||
model=DocumentPage, related='document',
|
||||
)
|
||||
ModelPermission.register_inheritance(
|
||||
model=DocumentTypeFilename, related='document_type',
|
||||
)
|
||||
ModelPermission.register_inheritance(
|
||||
model=DocumentVersion, related='document',
|
||||
)
|
||||
|
||||
# Document and document page thumbnail widget
|
||||
document_thumbnail_widget = DocumentThumbnailWidget()
|
||||
|
||||
@@ -51,8 +51,9 @@ permission_empty_trash = namespace.add_permission(
|
||||
name='document_empty_trash', label=_('Empty trash')
|
||||
)
|
||||
|
||||
# TODO: rename 'document_setup' to 'document_types' on the next major version
|
||||
setup_namespace = PermissionNamespace(
|
||||
'documents_setup', label=_('Documents setup')
|
||||
'documents_setup', label=_('Document types')
|
||||
)
|
||||
permission_document_type_create = setup_namespace.add_permission(
|
||||
name='document_type_create', label=_('Create document types')
|
||||
|
||||
@@ -9,10 +9,10 @@ __all__ = (
|
||||
'TEST_COMPRESSED_DOCUMENTS_FILENAME', 'TEST_COMPRESSED_DOCUMENT_PATH',
|
||||
'TEST_DEU_DOCUMENT_FILENAME', 'TEST_DEU_DOCUMENT_PATH',
|
||||
'TEST_DOCUMENT_PATH', 'TEST_HYBRID_DOCUMENT_PATH',
|
||||
'TEST_DOCUMENT_FILENAME', 'TEST_DOCUMENT_TYPE',
|
||||
'TEST_DOCUMENT_DESCRIPTION', 'TEST_HYBRID_DOCUMENT',
|
||||
'TEST_MULTI_PAGE_TIFF', 'TEST_MULTI_PAGE_TIFF_PATH',
|
||||
'TEST_NON_ASCII_COMPRESSED_DOCUMENT_FILENAME',
|
||||
'TEST_DOCUMENT_FILENAME', 'TEST_DOCUMENT_TYPE_LABEL',
|
||||
'TEST_DOCUMENT_TYPE_LABEL_EDITED', 'TEST_DOCUMENT_DESCRIPTION',
|
||||
'TEST_HYBRID_DOCUMENT', 'TEST_MULTI_PAGE_TIFF',
|
||||
'TEST_MULTI_PAGE_TIFF_PATH', 'TEST_NON_ASCII_COMPRESSED_DOCUMENT_FILENAME',
|
||||
'TEST_NON_ASCII_COMPRESSED_DOCUMENT_PATH',
|
||||
'TEST_NON_ASCII_DOCUMENT_FILENAME', 'TEST_NON_ASCII_DOCUMENT_PATH',
|
||||
'TEST_SMALL_DOCUMENT_CHECKSUM', 'TEST_SMALL_DOCUMENT_FILENAME',
|
||||
@@ -25,8 +25,11 @@ TEST_DEU_DOCUMENT_FILENAME = 'deu_website.png'
|
||||
TEST_DOCUMENT_DESCRIPTION = 'test description'
|
||||
TEST_DOCUMENT_DESCRIPTION_EDITED = 'test document description edited'
|
||||
TEST_DOCUMENT_FILENAME = 'mayan_11_1.pdf'
|
||||
TEST_DOCUMENT_TYPE = 'test_document_type'
|
||||
TEST_DOCUMENT_TYPE_2 = 'test document type 2'
|
||||
TEST_DOCUMENT_TYPE_LABEL = 'test_document_type'
|
||||
TEST_DOCUMENT_TYPE_2_LABEL = 'test document type 2'
|
||||
TEST_DOCUMENT_TYPE_LABEL_EDITED = 'test document type edited label'
|
||||
TEST_DOCUMENT_TYPE_QUICK_LABEL = 'test quick label'
|
||||
TEST_DOCUMENT_TYPE_QUICK_LABEL_EDITED = 'test quick label edited'
|
||||
TEST_DOCUMENT_VERSION_COMMENT_EDITED = 'test document version comment edited'
|
||||
TEST_HYBRID_DOCUMENT = 'hybrid_text_and_image.pdf'
|
||||
TEST_MULTI_PAGE_TIFF = 'multi_page.tiff'
|
||||
@@ -36,6 +39,8 @@ TEST_OFFICE_DOCUMENT = 'simple_2_page_document.doc'
|
||||
TEST_SMALL_DOCUMENT_FILENAME = 'title_page.png'
|
||||
TEST_SMALL_DOCUMENT_CHECKSUM = 'efa10e6cc21f83078aaa94d5cbe51de67b51af706143b\
|
||||
afc7fd6d4c02124879a'
|
||||
TEST_TRANSFORMATION_NAME = 'rotate'
|
||||
TEST_TRANSFORMATION_ARGUMENT = 'degrees: 180'
|
||||
|
||||
# File paths
|
||||
TEST_COMPRESSED_DOCUMENT_PATH = os.path.join(
|
||||
@@ -50,7 +55,6 @@ TEST_DOCUMENT_PATH = os.path.join(
|
||||
settings.BASE_DIR, 'apps', 'documents', 'tests', 'contrib',
|
||||
'sample_documents', TEST_DOCUMENT_FILENAME
|
||||
)
|
||||
TEST_DOCUMENT_TYPE_QUICK_LABEL = 'test quick label'
|
||||
TEST_HYBRID_DOCUMENT_PATH = os.path.join(
|
||||
settings.BASE_DIR, 'apps', 'documents', 'tests', 'contrib',
|
||||
'sample_documents', TEST_HYBRID_DOCUMENT
|
||||
|
||||
@@ -21,9 +21,9 @@ from user_management.tests.literals import (
|
||||
|
||||
from .literals import (
|
||||
TEST_DOCUMENT_DESCRIPTION_EDITED, TEST_DOCUMENT_FILENAME,
|
||||
TEST_DOCUMENT_PATH, TEST_DOCUMENT_TYPE,
|
||||
TEST_DOCUMENT_VERSION_COMMENT_EDITED, TEST_SMALL_DOCUMENT_FILENAME,
|
||||
TEST_SMALL_DOCUMENT_PATH
|
||||
TEST_DOCUMENT_PATH, TEST_DOCUMENT_TYPE_LABEL,
|
||||
TEST_DOCUMENT_TYPE_LABEL_EDITED, TEST_DOCUMENT_VERSION_COMMENT_EDITED,
|
||||
TEST_SMALL_DOCUMENT_FILENAME, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
from ..models import Document, DocumentType
|
||||
|
||||
@@ -49,40 +49,46 @@ class DocumentTypeAPITestCase(BaseAPITestCase):
|
||||
|
||||
response = self.client.post(
|
||||
reverse('rest_api:documenttype-list'), data={
|
||||
'label': TEST_DOCUMENT_TYPE
|
||||
'label': TEST_DOCUMENT_TYPE_LABEL
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 201)
|
||||
self.assertEqual(DocumentType.objects.all().count(), 1)
|
||||
self.assertEqual(
|
||||
DocumentType.objects.all().first().label, TEST_DOCUMENT_TYPE
|
||||
DocumentType.objects.all().first().label, TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
def test_document_type_edit_via_put(self):
|
||||
document_type = DocumentType.objects.create(label=TEST_DOCUMENT_TYPE)
|
||||
document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
self.client.put(
|
||||
reverse('rest_api:documenttype-detail', args=(document_type.pk,)),
|
||||
{'label': TEST_DOCUMENT_TYPE + 'edited'}
|
||||
{'label': TEST_DOCUMENT_TYPE_LABEL_EDITED}
|
||||
)
|
||||
|
||||
document_type = DocumentType.objects.get(pk=document_type.pk)
|
||||
self.assertEqual(document_type.label, TEST_DOCUMENT_TYPE + 'edited')
|
||||
self.assertEqual(document_type.label, TEST_DOCUMENT_TYPE_LABEL_EDITED)
|
||||
|
||||
def test_document_type_edit_via_patch(self):
|
||||
document_type = DocumentType.objects.create(label=TEST_DOCUMENT_TYPE)
|
||||
document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
self.client.patch(
|
||||
reverse('rest_api:documenttype-detail', args=(document_type.pk,)),
|
||||
{'label': TEST_DOCUMENT_TYPE + 'edited'}
|
||||
{'label': TEST_DOCUMENT_TYPE_LABEL_EDITED}
|
||||
)
|
||||
|
||||
document_type = DocumentType.objects.get(pk=document_type.pk)
|
||||
self.assertEqual(document_type.label, TEST_DOCUMENT_TYPE + 'edited')
|
||||
self.assertEqual(document_type.label, TEST_DOCUMENT_TYPE_LABEL_EDITED)
|
||||
|
||||
def test_document_type_delete(self):
|
||||
document_type = DocumentType.objects.create(label=TEST_DOCUMENT_TYPE)
|
||||
document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
self.client.delete(
|
||||
reverse('rest_api:documenttype-detail', args=(document_type.pk,))
|
||||
@@ -105,7 +111,7 @@ class DocumentAPITestCase(BaseAPITestCase):
|
||||
)
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
@@ -361,7 +367,7 @@ class TrashedDocumentAPITestCase(BaseAPITestCase):
|
||||
)
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
@@ -430,6 +436,3 @@ class TrashedDocumentAPITestCase(BaseAPITestCase):
|
||||
|
||||
self.assertEqual(Document.trash.count(), 0)
|
||||
self.assertEqual(Document.objects.count(), 1)
|
||||
|
||||
# TODO: def test_document_set_document_type(self):
|
||||
# pass
|
||||
|
||||
@@ -10,7 +10,7 @@ from ..literals import STUB_EXPIRATION_INTERVAL
|
||||
from ..models import DeletedDocument, Document, DocumentType
|
||||
|
||||
from .literals import (
|
||||
TEST_DOCUMENT_TYPE, TEST_DOCUMENT_PATH, TEST_MULTI_PAGE_TIFF_PATH,
|
||||
TEST_DOCUMENT_TYPE_LABEL, TEST_DOCUMENT_PATH, TEST_MULTI_PAGE_TIFF_PATH,
|
||||
TEST_OFFICE_DOCUMENT_PATH, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
|
||||
@@ -21,7 +21,7 @@ class GenericDocumentTestCase(BaseTestCase):
|
||||
super(GenericDocumentTestCase, self).setUp()
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
@@ -40,7 +40,7 @@ class DocumentTestCase(BaseTestCase):
|
||||
super(DocumentTestCase, self).setUp()
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
with open(TEST_DOCUMENT_PATH) as file_object:
|
||||
@@ -53,7 +53,7 @@ class DocumentTestCase(BaseTestCase):
|
||||
super(DocumentTestCase, self).tearDown()
|
||||
|
||||
def test_document_creation(self):
|
||||
self.assertEqual(self.document_type.label, TEST_DOCUMENT_TYPE)
|
||||
self.assertEqual(self.document_type.label, TEST_DOCUMENT_TYPE_LABEL)
|
||||
|
||||
self.assertEqual(self.document.exists(), True)
|
||||
self.assertEqual(self.document.size, 272213)
|
||||
@@ -162,7 +162,7 @@ class OfficeDocumentTestCase(BaseTestCase):
|
||||
super(OfficeDocumentTestCase, self).setUp()
|
||||
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
with open(TEST_OFFICE_DOCUMENT_PATH) as file_object:
|
||||
@@ -191,7 +191,7 @@ class MultiPageTiffTestCase(BaseTestCase):
|
||||
def setUp(self):
|
||||
super(MultiPageTiffTestCase, self).setUp()
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
with open(TEST_MULTI_PAGE_TIFF_PATH) as file_object:
|
||||
@@ -253,7 +253,7 @@ class DocumentManagerTestCase(BaseTestCase):
|
||||
def setUp(self):
|
||||
super(DocumentManagerTestCase, self).setUp()
|
||||
self.document_type = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
label=TEST_DOCUMENT_TYPE_LABEL
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,7 @@ class DocumentTypeDocumentListView(DocumentListView):
|
||||
|
||||
class DocumentTypeListView(SingleObjectListView):
|
||||
model = DocumentType
|
||||
view_permission = permission_document_type_view
|
||||
object_permission = permission_document_type_view
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
@@ -70,8 +70,8 @@ class DocumentTypeCreateView(SingleObjectCreateView):
|
||||
|
||||
class DocumentTypeDeleteView(SingleObjectDeleteView):
|
||||
model = DocumentType
|
||||
object_permission = permission_document_type_delete
|
||||
post_action_redirect = reverse_lazy('documents:document_type_list')
|
||||
view_permission = permission_document_type_delete
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
@@ -87,8 +87,8 @@ class DocumentTypeEditView(SingleObjectEditView):
|
||||
'delete_time_unit'
|
||||
)
|
||||
model = DocumentType
|
||||
object_permission = permission_document_type_edit
|
||||
post_action_redirect = reverse_lazy('documents:document_type_list')
|
||||
view_permission = permission_document_type_edit
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
@@ -129,7 +129,7 @@ class DocumentTypeFilenameCreateView(SingleObjectCreateView):
|
||||
class DocumentTypeFilenameEditView(SingleObjectEditView):
|
||||
fields = ('enabled', 'filename',)
|
||||
model = DocumentTypeFilename
|
||||
view_permission = permission_document_type_edit
|
||||
object_permission = permission_document_type_edit
|
||||
|
||||
def get_extra_context(self):
|
||||
document_type_filename = self.get_object()
|
||||
@@ -156,7 +156,7 @@ class DocumentTypeFilenameEditView(SingleObjectEditView):
|
||||
|
||||
class DocumentTypeFilenameDeleteView(SingleObjectDeleteView):
|
||||
model = DocumentTypeFilename
|
||||
view_permission = permission_document_type_edit
|
||||
object_permission = permission_document_type_edit
|
||||
|
||||
def get_extra_context(self):
|
||||
return {
|
||||
@@ -181,7 +181,7 @@ class DocumentTypeFilenameDeleteView(SingleObjectDeleteView):
|
||||
|
||||
class DocumentTypeFilenameListView(SingleObjectListView):
|
||||
model = DocumentType
|
||||
view_permission = permission_document_type_view
|
||||
object_permission = permission_document_type_view
|
||||
|
||||
def get_document_type(self):
|
||||
return get_object_or_404(DocumentType, pk=self.kwargs['pk'])
|
||||
|
||||
@@ -7,7 +7,7 @@ from django.test import override_settings
|
||||
|
||||
from common.tests import BaseTestCase
|
||||
from documents.models import DocumentType
|
||||
from documents.tests import TEST_DOCUMENT_PATH, TEST_DOCUMENT_TYPE
|
||||
from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE
|
||||
from user_management.tests.literals import (
|
||||
TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME
|
||||
)
|
||||
@@ -25,7 +25,7 @@ class SmartLinkTestCase(BaseTestCase):
|
||||
label=TEST_DOCUMENT_TYPE
|
||||
)
|
||||
|
||||
with open(TEST_DOCUMENT_PATH) as file_object:
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
self.document = self.document_type.new_document(
|
||||
file_object=file_object
|
||||
)
|
||||
|
||||
@@ -62,8 +62,8 @@ class MailerViewsTestCase(MailerTestMixin, GenericDocumentViewTestCase):
|
||||
self._create_user_mailer()
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_mailing_link)
|
||||
self.grant(permission_user_mailer_use)
|
||||
self.grant_permission(permission=permission_mailing_link)
|
||||
self.grant_permission(permission=permission_user_mailer_use)
|
||||
|
||||
self._request_document_link_send()
|
||||
|
||||
@@ -83,8 +83,8 @@ class MailerViewsTestCase(MailerTestMixin, GenericDocumentViewTestCase):
|
||||
self._create_user_mailer()
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_mailing_send_document)
|
||||
self.grant(permission_user_mailer_use)
|
||||
self.grant_permission(permission=permission_mailing_send_document)
|
||||
self.grant_permission(permission=permission_user_mailer_use)
|
||||
|
||||
self._request_document_send()
|
||||
|
||||
@@ -113,7 +113,7 @@ class UserMailerViewTestCase(MailerTestMixin, GenericViewTestCase):
|
||||
self._create_user_mailer()
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_user_mailer_view)
|
||||
self.grant_permission(permission=permission_user_mailer_view)
|
||||
|
||||
response = self.get(
|
||||
'mailer:user_mailer_list',
|
||||
@@ -137,7 +137,7 @@ class UserMailerViewTestCase(MailerTestMixin, GenericViewTestCase):
|
||||
self._create_user_mailer()
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_user_mailer_view)
|
||||
self.grant_permission(permission=permission_user_mailer_view)
|
||||
|
||||
self._request_user_mailer_delete()
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
def test_metadata_add_view_no_permission(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_document_view)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
|
||||
response = self.post(
|
||||
'metadata:metadata_add', args=(self.document.pk,),
|
||||
@@ -51,9 +51,9 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
def test_metadata_add_view_with_permission(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_document_view)
|
||||
self.grant(permission_metadata_document_add)
|
||||
self.grant(permission_metadata_document_edit)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
self.grant_permission(permission=permission_metadata_document_add)
|
||||
self.grant_permission(permission=permission_metadata_document_edit)
|
||||
|
||||
response = self.post(
|
||||
'metadata:metadata_add', args=(self.document.pk,),
|
||||
@@ -69,8 +69,8 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_document_properties_edit)
|
||||
self.grant(permission_metadata_document_edit)
|
||||
self.grant_permission(permission=permission_document_properties_edit)
|
||||
self.grant_permission(permission=permission_metadata_document_edit)
|
||||
|
||||
document_type_2 = DocumentType.objects.create(
|
||||
label=TEST_DOCUMENT_TYPE_2
|
||||
@@ -119,7 +119,7 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(len(self.document.metadata.all()), 1)
|
||||
|
||||
self.grant(permission_document_view)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
|
||||
# Test display of metadata removal form
|
||||
response = self.get(
|
||||
@@ -154,8 +154,8 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(len(self.document.metadata.all()), 1)
|
||||
|
||||
self.grant(permission_document_view)
|
||||
self.grant(permission_metadata_document_remove)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
self.grant_permission(permission=permission_metadata_document_remove)
|
||||
|
||||
# Test display of metadata removal form
|
||||
response = self.get(
|
||||
@@ -186,9 +186,9 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
def test_multiple_document_metadata_edit(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_document_view)
|
||||
self.grant(permission_metadata_document_add)
|
||||
self.grant(permission_metadata_document_edit)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
self.grant_permission(permission=permission_metadata_document_add)
|
||||
self.grant_permission(permission=permission_metadata_document_edit)
|
||||
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
document_2 = self.document_type.new_document(
|
||||
@@ -209,9 +209,9 @@ class DocumentMetadataTestCase(GenericDocumentViewTestCase):
|
||||
def test_multiple_document_metadata_add(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_document_view)
|
||||
self.grant(permission_metadata_document_add)
|
||||
self.grant(permission_metadata_document_edit)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
self.grant_permission(permission=permission_metadata_document_add)
|
||||
self.grant_permission(permission=permission_metadata_document_edit)
|
||||
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
document_2 = self.document_type.new_document(
|
||||
|
||||
@@ -30,7 +30,7 @@ class OCRViewsTestCase(GenericDocumentViewTestCase):
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_document_content_view_with_permission(self):
|
||||
self.grant(permission_ocr_content_view)
|
||||
self.grant_permission(permission=permission_ocr_content_view)
|
||||
|
||||
response = self._document_content_view()
|
||||
|
||||
@@ -48,7 +48,7 @@ class OCRViewsTestCase(GenericDocumentViewTestCase):
|
||||
def test_document_download_view_with_permission(self):
|
||||
self.expected_content_type = 'application/octet-stream; charset=utf-8'
|
||||
|
||||
self.grant(permission=permission_ocr_content_view)
|
||||
self.grant_permission(permission=permission_ocr_content_view)
|
||||
response = self.get(
|
||||
'ocr:document_ocr_download', args=(self.document.pk,)
|
||||
)
|
||||
|
||||
@@ -21,7 +21,7 @@ class SmartSettingViewPermissionsTestCase(GenericViewTestCase):
|
||||
self.assertEqual(response.status_code, 403)
|
||||
|
||||
def test_view_access_permitted(self):
|
||||
self.grant(permission_settings_view)
|
||||
self.grant_permission(permission=permission_settings_view)
|
||||
|
||||
response = self.get('settings:namespace_list')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@@ -12,7 +12,7 @@ from common.utils import fs_cleanup, mkdtemp
|
||||
from documents.models import Document, DocumentType
|
||||
from documents.permissions import permission_document_create
|
||||
from documents.tests import (
|
||||
TEST_DOCUMENT_DESCRIPTION, TEST_DOCUMENT_PATH, TEST_DOCUMENT_TYPE,
|
||||
TEST_DOCUMENT_DESCRIPTION, TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE,
|
||||
TEST_SMALL_DOCUMENT_CHECKSUM, TEST_SMALL_DOCUMENT_PATH
|
||||
)
|
||||
from documents.tests.test_views import GenericDocumentViewTestCase
|
||||
@@ -60,7 +60,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase):
|
||||
def test_upload_wizard_with_permission(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_document_create)
|
||||
self.grant_permission(permission=permission_document_create)
|
||||
|
||||
response = self._request_upload_wizard()
|
||||
|
||||
@@ -85,7 +85,7 @@ class DocumentUploadTestCase(GenericDocumentViewTestCase):
|
||||
)
|
||||
acl.permissions.add(permission_document_create.stored_permission)
|
||||
|
||||
with open(TEST_DOCUMENT_PATH) as file_object:
|
||||
with open(TEST_SMALL_DOCUMENT_PATH) as file_object:
|
||||
response = self.post(
|
||||
'sources:upload_interactive', args=(self.source.pk,), data={
|
||||
'source-file': file_object,
|
||||
@@ -227,7 +227,7 @@ class StagingFolderTestCase(GenericViewTestCase):
|
||||
def test_staging_folder_delete_with_permission(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_staging_file_delete)
|
||||
self.grant_permission(permission=permission_staging_file_delete)
|
||||
|
||||
staging_folder = StagingFolderSource.objects.create(
|
||||
label=TEST_SOURCE_LABEL,
|
||||
@@ -262,7 +262,7 @@ class SourcesTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_sources_setup_view)
|
||||
self.grant_permission(permission=permission_sources_setup_view)
|
||||
|
||||
response = self.get(viewname='sources:setup_source_list')
|
||||
|
||||
@@ -280,8 +280,8 @@ class SourcesTestCase(GenericDocumentViewTestCase):
|
||||
def test_source_create_view_with_permission(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_sources_setup_create)
|
||||
self.grant(permission_sources_setup_view)
|
||||
self.grant_permission(permission=permission_sources_setup_create)
|
||||
self.grant_permission(permission=permission_sources_setup_view)
|
||||
|
||||
response = self.post(
|
||||
args=(SOURCE_CHOICE_WEB_FORM,), follow=True,
|
||||
@@ -301,7 +301,7 @@ class SourcesTestCase(GenericDocumentViewTestCase):
|
||||
def test_source_create_view_no_permission(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_sources_setup_view)
|
||||
self.grant_permission(permission=permission_sources_setup_view)
|
||||
|
||||
response = self.post(
|
||||
args=(SOURCE_CHOICE_WEB_FORM,), follow=True,
|
||||
@@ -319,8 +319,8 @@ class SourcesTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_sources_setup_delete)
|
||||
self.grant(permission_sources_setup_view)
|
||||
self.grant_permission(permission=permission_sources_setup_delete)
|
||||
self.grant_permission(permission=permission_sources_setup_view)
|
||||
|
||||
response = self.post(
|
||||
args=(self.source.pk,), follow=True,
|
||||
@@ -335,7 +335,7 @@ class SourcesTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_sources_setup_view)
|
||||
self.grant_permission(permission=permission_sources_setup_view)
|
||||
|
||||
response = self.post(
|
||||
args=(self.source.pk,), follow=True,
|
||||
|
||||
@@ -50,7 +50,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
self.tag.delete()
|
||||
self.assertEqual(Tag.objects.count(), 0)
|
||||
|
||||
self.grant(permission_tag_create)
|
||||
self.grant_permission(permission=permission_tag_create)
|
||||
|
||||
response = self.post(
|
||||
'tags:tag_create', data={
|
||||
@@ -83,7 +83,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
|
||||
self.grant(permission_tag_delete)
|
||||
self.grant_permission(permission=permission_tag_delete)
|
||||
|
||||
response = self.post(
|
||||
'tags:tag_delete', args=(self.tag.pk,), follow=True
|
||||
@@ -110,7 +110,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(Tag.objects.count(), 1)
|
||||
|
||||
self.grant(permission_tag_delete)
|
||||
self.grant_permission(permission=permission_tag_delete)
|
||||
|
||||
response = self.post(
|
||||
'tags:tag_multiple_delete', data={'id_list': self.tag.pk},
|
||||
@@ -138,7 +138,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
def test_tag_edit_view_with_permissions(self):
|
||||
self.login_user()
|
||||
|
||||
self.grant(permission_tag_edit)
|
||||
self.grant_permission(permission=permission_tag_edit)
|
||||
|
||||
response = self.post(
|
||||
'tags:tag_edit', args=(self.tag.pk,), data={
|
||||
@@ -163,8 +163,8 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.tag.documents.add(self.document)
|
||||
|
||||
self.grant(permission_tag_view)
|
||||
self.grant(permission_document_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
self.grant_permission(permission=permission_document_view)
|
||||
|
||||
response = self.get('documents:document_list')
|
||||
|
||||
@@ -175,7 +175,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(self.document.tags.count(), 0)
|
||||
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:tag_attach', args=(self.document.pk,), data={
|
||||
@@ -194,10 +194,10 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(self.document.tags.count(), 0)
|
||||
|
||||
self.grant(permission_tag_attach)
|
||||
self.grant_permission(permission=permission_tag_attach)
|
||||
# permission_tag_view is needed because the form filters the
|
||||
# choices
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:tag_attach', args=(self.document.pk,), data={
|
||||
@@ -216,7 +216,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
self.login_user()
|
||||
|
||||
self.assertEqual(self.document.tags.count(), 0)
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:multiple_documents_tag_attach', data={
|
||||
@@ -233,11 +233,11 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
|
||||
self.assertEqual(self.document.tags.count(), 0)
|
||||
|
||||
self.grant(permission_tag_attach)
|
||||
self.grant_permission(permission=permission_tag_attach)
|
||||
|
||||
# permission_tag_view is needed because the form filters the
|
||||
# choices
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:multiple_documents_tag_attach', data={
|
||||
@@ -258,7 +258,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
self.document.tags.add(self.tag)
|
||||
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
|
||||
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:single_document_multiple_tag_remove',
|
||||
@@ -277,8 +277,8 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
self.document.tags.add(self.tag)
|
||||
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
|
||||
|
||||
self.grant(permission_tag_remove)
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_remove)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:single_document_multiple_tag_remove',
|
||||
@@ -297,7 +297,7 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
self.document.tags.add(self.tag)
|
||||
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
|
||||
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:multiple_documents_selection_tag_remove',
|
||||
@@ -316,8 +316,8 @@ class TagViewTestCase(GenericDocumentViewTestCase):
|
||||
self.document.tags.add(self.tag)
|
||||
self.assertQuerysetEqual(self.document.tags.all(), (repr(self.tag),))
|
||||
|
||||
self.grant(permission_tag_remove)
|
||||
self.grant(permission_tag_view)
|
||||
self.grant_permission(permission=permission_tag_remove)
|
||||
self.grant_permission(permission=permission_tag_view)
|
||||
|
||||
response = self.post(
|
||||
'tags:multiple_documents_selection_tag_remove',
|
||||
|
||||
@@ -35,7 +35,7 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
)
|
||||
|
||||
def test_user_set_password_view_no_permissions(self):
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self._set_password(password=TEST_USER_PASSWORD_EDITED)
|
||||
|
||||
@@ -53,8 +53,8 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
def test_user_set_password_view_with_permissions(self):
|
||||
self.grant(permission=permission_user_edit)
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_edit)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self._set_password(password=TEST_USER_PASSWORD_EDITED)
|
||||
|
||||
@@ -78,7 +78,7 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
)
|
||||
|
||||
def test_user_multiple_set_password_view_no_permissions(self):
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self._multiple_user_set_password(
|
||||
password=TEST_USER_PASSWORD_EDITED
|
||||
@@ -98,8 +98,8 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
def test_user_multiple_set_password_view_with_permissions(self):
|
||||
self.grant(permission=permission_user_edit)
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_edit)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self._multiple_user_set_password(
|
||||
password=TEST_USER_PASSWORD_EDITED
|
||||
@@ -120,7 +120,7 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
username=TEST_USER_TO_DELETE_USERNAME
|
||||
)
|
||||
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self.post(
|
||||
'user_management:user_delete', args=(user.pk,)
|
||||
@@ -134,8 +134,8 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
username=TEST_USER_TO_DELETE_USERNAME
|
||||
)
|
||||
|
||||
self.grant(permission=permission_user_delete)
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_delete)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self.post(
|
||||
'user_management:user_delete', args=(user.pk,), follow=True
|
||||
@@ -149,7 +149,7 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
username=TEST_USER_TO_DELETE_USERNAME
|
||||
)
|
||||
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self.post(
|
||||
'user_management:user_multiple_delete', data={
|
||||
@@ -165,8 +165,8 @@ class UserManagementViewTestCase(GenericViewTestCase):
|
||||
username=TEST_USER_TO_DELETE_USERNAME
|
||||
)
|
||||
|
||||
self.grant(permission=permission_user_delete)
|
||||
self.grant(permission=permission_user_view)
|
||||
self.grant_permission(permission=permission_user_delete)
|
||||
self.grant_permission(permission=permission_user_view)
|
||||
|
||||
response = self.post(
|
||||
'user_management:user_multiple_delete', data={
|
||||
|
||||
Reference in New Issue
Block a user