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
+4 -3
View File
@@ -19,7 +19,8 @@ from .literals import (
) )
from .permissions import ( from .permissions import (
permission_sources_create, permission_sources_delete, 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( link_staging_file_delete = Link(
keep_query=True, kwargs={ keep_query=True, kwargs={
'staging_file_pk': 'source.pk', 'staging_folder_id': 'source.pk',
'encoded_filename': 'object.encoded_filename' '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' tags='dangerous', text=_('Delete'), view='sources:staging_file_delete'
) )
link_upload_version = Link( link_upload_version = Link(
+1 -6
View File
@@ -200,7 +200,6 @@ class StagingFolderViewTestCase(GenericViewTestCase):
self.temporary_directory = mkdtemp() self.temporary_directory = mkdtemp()
shutil.copy(TEST_SMALL_DOCUMENT_PATH, self.temporary_directory) shutil.copy(TEST_SMALL_DOCUMENT_PATH, self.temporary_directory)
self.filename = os.path.basename(TEST_SMALL_DOCUMENT_PATH) self.filename = os.path.basename(TEST_SMALL_DOCUMENT_PATH)
self.login_user()
def tearDown(self): def tearDown(self):
fs_cleanup(self.temporary_directory) fs_cleanup(self.temporary_directory)
@@ -233,7 +232,7 @@ class StagingFolderViewTestCase(GenericViewTestCase):
response = self._request_staging_file_delete_view( response = self._request_staging_file_delete_view(
staging_file=staging_file 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) self.assertEqual(len(list(self.staging_folder.get_files())), 1)
def test_staging_folder_delete_with_permission(self): def test_staging_folder_delete_with_permission(self):
@@ -252,10 +251,6 @@ class StagingFolderViewTestCase(GenericViewTestCase):
class SourcesViewsTestCase(GenericViewTestCase): class SourcesViewsTestCase(GenericViewTestCase):
def setUp(self):
super(SourcesViewsTestCase, self).setUp()
self.login_user()
def _create_web_source(self): def _create_web_source(self):
self.source = WebFormSource.objects.create( self.source = WebFormSource.objects.create(
enabled=True, label=TEST_SOURCE_LABEL, enabled=True, label=TEST_SOURCE_LABEL,
+5 -6
View File
@@ -210,9 +210,10 @@ class SourceLogView(SingleObjectListView):
) )
class StagingFileDeleteView(SingleObjectDeleteView): class StagingFileDeleteView(ExternalObjectMixin, SingleObjectDeleteView):
object_permission = permission_staging_file_delete external_object_class = StagingFolderSource
object_permission_related = 'staging_folder' external_object_pk_url_kwarg = 'staging_folder_id'
external_object_permission = permission_staging_file_delete
def get_extra_context(self): def get_extra_context(self):
return { return {
@@ -228,9 +229,7 @@ class StagingFileDeleteView(SingleObjectDeleteView):
) )
def get_source(self): def get_source(self):
return get_object_or_404( return self.get_external_object()
klass=StagingFolderSource, pk=self.kwargs['staging_folder_id']
)
class UploadBaseView(ListModeMixin, MultiFormView): class UploadBaseView(ListModeMixin, MultiFormView):