From 2f2b4cbacb72cbeb21d51323296fb90a20c81737 Mon Sep 17 00:00:00 2001 From: ayleph Date: Tue, 27 Jun 2017 22:45:42 -0700 Subject: Fix #5513 - Can't delete blog post drafts Modify the @get_media_entry_by_id decorator to return media regardless of processing state. Separately modify all view functions that use the @get_media_entry_by_id decorator to require that the media be in the processed state, other than for the media_confirm_delete view. This allows blog post drafts to be deleted without returning a 404. Further, it adds the ability to delete unprocessed media in the future, which would be a nice addition to the user processing panel. --- mediagoblin/edit/views.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'mediagoblin/edit') diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index b15fb2e7..17aea922 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -55,6 +55,10 @@ import mimetypes @get_media_entry_by_id @require_active_login def edit_media(request, media): + # If media is not processed, return NotFound. + if not media.state == u'processed': + return render_404(request) + if not may_edit_media(request, media): raise Forbidden("User may not edit this media") @@ -115,6 +119,10 @@ UNSAFE_MIMETYPES = [ @get_media_entry_by_id @require_active_login def edit_attachments(request, media): + # If media is not processed, return NotFound. + if not media.state == u'processed': + return render_404(request) + if mg_globals.app_config['allow_attachments']: form = forms.EditAttachmentsForm() @@ -499,6 +507,10 @@ def change_email(request): @require_active_login @get_media_entry_by_id def edit_metadata(request, media): + # If media is not processed, return NotFound. + if not media.state == u'processed': + return render_404(request) + form = forms.EditMetaDataForm(request.form) if request.method == "POST" and form.validate(): metadata_dict = dict([(row['identifier'],row['value']) -- cgit v1.2.3