MediaEntry slugs usable in URLs, & decorator that grabs media from the request
This commit is contained in:
@@ -19,6 +19,6 @@ from routes.route import Route
|
||||
user_routes = [
|
||||
Route('mediagoblin.user_pages.user_home', "/{user}/",
|
||||
controller="mediagoblin.user_pages.views:user_home"),
|
||||
Route('mediagoblin.user_pages.media_home', '/{user}/m/{m_id}/',
|
||||
Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/',
|
||||
requirements=dict(m_id="[0-9a-fA-F]{24}"),
|
||||
controller="mediagoblin.user_pages.views:media_home")]
|
||||
|
||||
@@ -18,7 +18,7 @@ from webob import Response, exc
|
||||
from mediagoblin.db.util import ObjectId, DESCENDING
|
||||
from mediagoblin.util import Pagination
|
||||
|
||||
from mediagoblin.decorators import uses_pagination
|
||||
from mediagoblin.decorators import uses_pagination, get_media_entry
|
||||
|
||||
|
||||
@uses_pagination
|
||||
@@ -52,15 +52,11 @@ def user_home(request, page):
|
||||
'pagination': pagination}))
|
||||
|
||||
|
||||
def media_home(request):
|
||||
@get_media_entry
|
||||
def media_home(request, media):
|
||||
"""'Homepage' of a MediaEntry()"""
|
||||
media = request.db.MediaEntry.find_one({
|
||||
'_id': ObjectId(request.matchdict['m_id']),
|
||||
'state': 'processed'})
|
||||
|
||||
# Check that media uploader and user correspond.
|
||||
if not media or \
|
||||
media['uploader'].get('username') != request.matchdict['user']:
|
||||
if media['uploader'].get('username') != request.matchdict['user']:
|
||||
return exc.HTTPNotFound()
|
||||
|
||||
template = request.template_env.get_template(
|
||||
@@ -69,4 +65,3 @@ def media_home(request):
|
||||
template.render(
|
||||
{'request': request,
|
||||
'media': media}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user