aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/user_pages
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/user_pages')
-rw-r--r--mediagoblin/user_pages/lib.py22
-rw-r--r--mediagoblin/user_pages/routing.py2
-rw-r--r--mediagoblin/user_pages/views.py29
3 files changed, 30 insertions, 23 deletions
diff --git a/mediagoblin/user_pages/lib.py b/mediagoblin/user_pages/lib.py
index f29c1796..80eb30bd 100644
--- a/mediagoblin/user_pages/lib.py
+++ b/mediagoblin/user_pages/lib.py
@@ -83,12 +83,22 @@ def build_report_object(report_form, media_entry=None, comment=None):
This function is used to convert a form object (from a User filing a
report) into either a MediaReport or CommentReport object.
- :param report_form should be a MediaReportForm or a CommentReportForm
- object
- :param
-
- :returns either of MediaReport or a CommentReport object that has not been
- saved. In case of an improper form_dict, returns None
+ :param report_form A MediaReportForm or a CommentReportForm object
+ with valid information from a POST request.
+ :param media_entry A MediaEntry object. The MediaEntry being repo-
+ -rted by a MediaReport. In a CommentReport,
+ this will be None.
+ :param comment A MediaComment object. The MediaComment being
+ reported by a CommentReport. In a MediaReport
+ this will be None.
+
+ :returns A MediaReport object if a valid MediaReportForm is
+ passed as kwarg media_entry. This MediaReport has
+ not been saved.
+ :returns A CommentReport object if a valid CommentReportForm
+ is passed as kwarg comment. This CommentReport
+ has not been saved.
+ :returns None if the form_dict is invalid.
"""
if report_form.validate() and comment is not None:
diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py
index b535bbf2..f0f4d8b7 100644
--- a/mediagoblin/user_pages/routing.py
+++ b/mediagoblin/user_pages/routing.py
@@ -50,7 +50,7 @@ add_route('mediagoblin.user_pages.media_home.view_comment',
add_route('mediagoblin.user_pages.media_home.report_comment',
'/u/<string:user>/m/<string:media>/c/<int:comment>/report/',
- 'mediagoblin.user_pages.views:file_a_comment_report')
+ 'mediagoblin.user_pages.views:file_a_report')
# User's tags gallery
add_route('mediagoblin.user_pages.user_tag_gallery',
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 83aecf31..931b740c 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -34,10 +34,10 @@ from mediagoblin.notifications import trigger_notification, \
add_comment_subscription, mark_comment_notification_seen
from mediagoblin.decorators import (uses_pagination, get_user_media_entry,
- get_media_entry_by_id, user_has_privilege,
+ get_media_entry_by_id, user_has_privilege, user_not_banned,
require_active_login, user_may_delete_media, user_may_alter_collection,
get_user_collection, get_user_collection_item, active_user_from_url,
- get_media_comment_by_id, user_not_banned)
+ get_optional_media_comment_by_id)
from werkzeug.contrib.atom import AtomFeed
from werkzeug.exceptions import MethodNotAllowed
@@ -161,7 +161,6 @@ def media_home(request, media, page, **kwargs):
@get_media_entry_by_id
-@require_active_login
@user_has_privilege(u'commenter')
def media_post_comment(request, media):
"""
@@ -291,7 +290,6 @@ def media_collect(request, media):
#TODO: Why does @user_may_delete_media not implicate @require_active_login?
-@user_not_banned
@get_media_entry_by_id
@require_active_login
@user_may_delete_media
@@ -380,7 +378,6 @@ def collection_list(request, url_user=None):
@get_user_collection_item
@require_active_login
@user_may_alter_collection
-@user_not_banned
def collection_item_confirm_remove(request, collection_item):
form = user_forms.ConfirmCollectionItemRemoveForm(request.form)
@@ -420,7 +417,7 @@ def collection_item_confirm_remove(request, collection_item):
{'collection_item': collection_item,
'form': form})
-@user_not_banned
+
@get_user_collection
@require_active_login
@user_may_alter_collection
@@ -604,7 +601,6 @@ def collection_atom_feed(request):
return feed.get_response()
-@user_not_banned
@require_active_login
def processing_panel(request):
"""
@@ -649,21 +645,27 @@ def processing_panel(request):
'failed_entries': failed_entries,
'processed_entries': processed_entries})
-@require_active_login
@get_user_media_entry
@user_has_privilege(u'reporter')
-def file_a_report(request, media, comment=None):
+@get_optional_media_comment_by_id
+def file_a_report(request, media, comment):
+ """
+ This view handles the filing of a MediaReport or a CommentReport.
+ """
if comment is not None:
+ if not comment.get_media_entry.id == media.id:
+ return render_404(request)
+
form = user_forms.CommentReportForm(request.form)
- form.reporter_id.data = request.user.id
context = {'media': media,
'comment':comment,
'form':form}
else:
form = user_forms.MediaReportForm(request.form)
- form.reporter_id.data = request.user.id
context = {'media': media,
'form':form}
+ form.reporter_id.data = request.user.id
+
if request.method == "POST":
report_object = build_report_object(form,
@@ -683,8 +685,3 @@ def file_a_report(request, media, comment=None):
'mediagoblin/user_pages/report.html',
context)
-@require_active_login
-@get_user_media_entry
-@get_media_comment_by_id
-def file_a_comment_report(request, media, comment):
- return file_a_report(request, comment=comment)