Fixed #15920 -- Removed COMMENTS_BANNED_USERS_GROUP setting in favor of the established comments app customization. Thanks, Daniel Lindsley.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16124 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
22892c31f6
commit
0fa8bd3d92
|
@ -453,10 +453,6 @@ COMMENTS_ALLOW_PROFANITIES = False
|
||||||
# 'hasNoProfanities' validator. All of these should be in lowercase.
|
# 'hasNoProfanities' validator. All of these should be in lowercase.
|
||||||
PROFANITIES_LIST = ()
|
PROFANITIES_LIST = ()
|
||||||
|
|
||||||
# The group ID that designates which users are banned.
|
|
||||||
# Set to None if you're not using it.
|
|
||||||
COMMENTS_BANNED_USERS_GROUP = None
|
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# AUTHENTICATION #
|
# AUTHENTICATION #
|
||||||
##################
|
##################
|
||||||
|
|
|
@ -28,10 +28,6 @@ class LatestCommentFeed(Feed):
|
||||||
is_public = True,
|
is_public = True,
|
||||||
is_removed = False,
|
is_removed = False,
|
||||||
)
|
)
|
||||||
if getattr(settings, 'COMMENTS_BANNED_USERS_GROUP', None):
|
|
||||||
where = ['user_id NOT IN (SELECT user_id FROM auth_user_groups WHERE group_id = %s)']
|
|
||||||
params = [settings.COMMENTS_BANNED_USERS_GROUP]
|
|
||||||
qs = qs.extra(where=where, params=params)
|
|
||||||
return qs.order_by('-submit_date')[:40]
|
return qs.order_by('-submit_date')[:40]
|
||||||
|
|
||||||
def item_pubdate(self, item):
|
def item_pubdate(self, item):
|
||||||
|
|
|
@ -117,3 +117,45 @@ subsequently raise a 404. Requesting ``/notaflatpageoravalidurl`` now will
|
||||||
immediately raise a 404. Additionally redirects returned by flatpages are now
|
immediately raise a 404. Additionally redirects returned by flatpages are now
|
||||||
permanent (301 status code) to match the behaviour of the
|
permanent (301 status code) to match the behaviour of the
|
||||||
:class:`~django.middleware.common.CommonMiddleware`.
|
:class:`~django.middleware.common.CommonMiddleware`.
|
||||||
|
|
||||||
|
`COMMENTS_BANNED_USERS_GROUP` setting
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Django's :doc:`comments app </ref/contrib/comments/index>` has historically
|
||||||
|
supported excluding the comments of a special user group but never documented
|
||||||
|
the feature properly and didn't enforce the exclusion in other parts of the
|
||||||
|
app, e.g. the template tags. To fix this problem the code was removed from
|
||||||
|
the feed class.
|
||||||
|
|
||||||
|
If you rely on the feature and want to restore the old behaviour, simply use
|
||||||
|
a custom comment model manager to exclude the user group, e.g.::
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.comments.managers import CommentManager
|
||||||
|
|
||||||
|
class BanningCommentManager(CommentManager):
|
||||||
|
|
||||||
|
def get_query_set(self):
|
||||||
|
qs = super(BanningCommentManager, self).get_query_set()
|
||||||
|
if getattr(settings, 'COMMENTS_BANNED_USERS_GROUP', None):
|
||||||
|
where = ['user_id NOT IN (SELECT user_id FROM auth_user_groups WHERE group_id = %s)']
|
||||||
|
params = [settings.COMMENTS_BANNED_USERS_GROUP]
|
||||||
|
qs = qs.extra(where=where, params=params)
|
||||||
|
return qs
|
||||||
|
|
||||||
|
Save this model manager in your custom comment app (e.g. in
|
||||||
|
``my_comments_app/managers.py``) and add it your
|
||||||
|
:ref:`custom comment app model <custom-comment-app-api>`::
|
||||||
|
|
||||||
|
from django.db import models
|
||||||
|
from django.contrib.comments.models import Comment
|
||||||
|
|
||||||
|
from my_comments_app.managers import BanningCommentManager
|
||||||
|
|
||||||
|
class CommentWithTitle(Comment):
|
||||||
|
title = models.CharField(max_length=300)
|
||||||
|
|
||||||
|
objects = BanningCommentManager()
|
||||||
|
|
||||||
|
For more details see the docs about
|
||||||
|
:doc:`customizing the comments framework </ref/contrib/comments/custom>`.
|
||||||
|
|
Loading…
Reference in New Issue