Handle Exceptions from save(); Move may_edit_media

Turn .save() excpetions into a HTTPConflict. Not nice, but
at least the user gets the error.  Until there is a proper
way to validate things and get nice errors.

Move may_edit_media() to lib.py, as it's not a view.
This commit is contained in:
Elrond 2011-06-02 17:43:54 +02:00
parent 8cd5d4f8c3
commit 0732236e9c
2 changed files with 13 additions and 10 deletions

8
mediagoblin/edit/lib.py Normal file
View File

@ -0,0 +1,8 @@
def may_edit_media(request, media):
"""Check, if the request's user may edit the media details"""
if media['uploader'] == request.user['_id']:
return True
if request.user['is_admin']:
return True
return False

View File

@ -3,18 +3,10 @@
from webob import Response, exc
from mediagoblin.edit import forms
from mediagoblin.edit.lib import may_edit_media
from mediagoblin.decorators import require_active_login, get_user_media_entry
def may_edit_media(request, media):
"""Check, if the request's user may edit the media details"""
if media['uploader'] == request.user['_id']:
return True
if request.user['is_admin']:
return True
return False
@get_user_media_entry
@require_active_login
def edit_media(request, media):
@ -30,7 +22,10 @@ def edit_media(request, media):
media['title'] = request.POST['title']
media['description'] = request.POST['description']
media['slug'] = request.POST['slug']
media.save()
try:
media.save()
except Exception as e:
return exc.HTTPConflict(detail = str(e))
# redirect
return exc.HTTPFound(