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 webob import Response, exc
|
||||||
|
|
||||||
from mediagoblin.edit import forms
|
from mediagoblin.edit import forms
|
||||||
|
from mediagoblin.edit.lib import may_edit_media
|
||||||
from mediagoblin.decorators import require_active_login, get_user_media_entry
|
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
|
@get_user_media_entry
|
||||||
@require_active_login
|
@require_active_login
|
||||||
def edit_media(request, media):
|
def edit_media(request, media):
|
||||||
@ -30,7 +22,10 @@ def edit_media(request, media):
|
|||||||
media['title'] = request.POST['title']
|
media['title'] = request.POST['title']
|
||||||
media['description'] = request.POST['description']
|
media['description'] = request.POST['description']
|
||||||
media['slug'] = request.POST['slug']
|
media['slug'] = request.POST['slug']
|
||||||
media.save()
|
try:
|
||||||
|
media.save()
|
||||||
|
except Exception as e:
|
||||||
|
return exc.HTTPConflict(detail = str(e))
|
||||||
|
|
||||||
# redirect
|
# redirect
|
||||||
return exc.HTTPFound(
|
return exc.HTTPFound(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user