Fix staging file delete view

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-01-22 22:21:49 -04:00
parent 205ca594f5
commit a769cc92e3
3 changed files with 10 additions and 15 deletions

View File

@@ -19,7 +19,8 @@ from .literals import (
)
from .permissions import (
permission_sources_create, permission_sources_delete,
permission_sources_edit, permission_sources_view
permission_sources_edit, permission_sources_view,
permission_staging_file_delete
)
@@ -113,9 +114,9 @@ link_source_logs = Link(
)
link_staging_file_delete = Link(
keep_query=True, kwargs={
'staging_file_pk': 'source.pk',
'staging_folder_id': 'source.pk',
'encoded_filename': 'object.encoded_filename'
}, permissions=(permission_document_new_version, permission_document_create),
}, permissions=(permission_staging_file_delete,),
tags='dangerous', text=_('Delete'), view='sources:staging_file_delete'
)
link_upload_version = Link(

View File

@@ -200,7 +200,6 @@ class StagingFolderViewTestCase(GenericViewTestCase):
self.temporary_directory = mkdtemp()
shutil.copy(TEST_SMALL_DOCUMENT_PATH, self.temporary_directory)
self.filename = os.path.basename(TEST_SMALL_DOCUMENT_PATH)
self.login_user()
def tearDown(self):
fs_cleanup(self.temporary_directory)
@@ -233,7 +232,7 @@ class StagingFolderViewTestCase(GenericViewTestCase):
response = self._request_staging_file_delete_view(
staging_file=staging_file
)
self.assertEqual(response.status_code, 403)
self.assertEqual(response.status_code, 404)
self.assertEqual(len(list(self.staging_folder.get_files())), 1)
def test_staging_folder_delete_with_permission(self):
@@ -252,10 +251,6 @@ class StagingFolderViewTestCase(GenericViewTestCase):
class SourcesViewsTestCase(GenericViewTestCase):
def setUp(self):
super(SourcesViewsTestCase, self).setUp()
self.login_user()
def _create_web_source(self):
self.source = WebFormSource.objects.create(
enabled=True, label=TEST_SOURCE_LABEL,

View File

@@ -210,9 +210,10 @@ class SourceLogView(SingleObjectListView):
)
class StagingFileDeleteView(SingleObjectDeleteView):
object_permission = permission_staging_file_delete
object_permission_related = 'staging_folder'
class StagingFileDeleteView(ExternalObjectMixin, SingleObjectDeleteView):
external_object_class = StagingFolderSource
external_object_pk_url_kwarg = 'staging_folder_id'
external_object_permission = permission_staging_file_delete
def get_extra_context(self):
return {
@@ -228,9 +229,7 @@ class StagingFileDeleteView(SingleObjectDeleteView):
)
def get_source(self):
return get_object_or_404(
klass=StagingFolderSource, pk=self.kwargs['staging_folder_id']
)
return self.get_external_object()
class UploadBaseView(ListModeMixin, MultiFormView):