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:
parent
8cd5d4f8c3
commit
0732236e9c
8
mediagoblin/edit/lib.py
Normal file
8
mediagoblin/edit/lib.py
Normal 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
|
@ -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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user