Check for posts permission in spam/reported/modqueue/unmoderated queries on multireddits and /r/mod.

This commit is contained in:
Logan Hanks
2013-02-20 12:01:55 -08:00
parent b0738c7902
commit a3c7dd0b10
3 changed files with 22 additions and 10 deletions

View File

@@ -349,9 +349,12 @@ def get_spam_comments(sr_id):
Comment.c._spam == True,
sort = db_sort('new'))
@merged_cached_query
def get_spam(sr):
def get_spam(sr, user=None):
if isinstance(sr, (ModContribSR, MultiReddit)):
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
if user:
srs = [sr for sr in srs
if sr.is_moderator_with_perms(user, 'posts')]
q = []
q.extend(get_spam_links(sr) for sr in srs)
q.extend(get_spam_comments(sr) for sr in srs)
@@ -396,9 +399,12 @@ def get_reported_comments(sr_id):
sort = db_sort('new'))
@merged_cached_query
def get_reported(sr):
def get_reported(sr, user=None):
if isinstance(sr, (ModContribSR, MultiReddit)):
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
if user:
srs = [sr for sr in srs
if sr.is_moderator_with_perms(user, 'posts')]
q = []
q.extend(get_reported_links(sr) for sr in srs)
q.extend(get_reported_comments(sr) for sr in srs)
@@ -419,10 +425,13 @@ def get_unmoderated_links(sr_id):
return q
@merged_cached_query
def get_modqueue(sr):
def get_modqueue(sr, user=None):
q = []
if isinstance(sr, (ModContribSR, MultiReddit)):
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
if user:
srs = [sr for sr in srs
if sr.is_moderator_with_perms(user, 'posts')]
q.extend(get_reported_links(sr) for sr in srs)
q.extend(get_reported_comments(sr) for sr in srs)
q.extend(get_spam_filtered_links(sr) for sr in srs)
@@ -435,10 +444,13 @@ def get_modqueue(sr):
return q
@merged_cached_query
def get_unmoderated(sr):
def get_unmoderated(sr, user=None):
q = []
if isinstance(sr, MultiReddit):
srs = Subreddit._byID(sr.sr_ids, return_dict=False)
if user:
srs = [sr for sr in srs
if sr.is_moderator_with_perms(user, 'posts')]
q.extend(get_unmoderated_links(sr) for sr in srs)
else:
q.append(get_unmoderated_links(sr))

View File

@@ -453,8 +453,8 @@ def merged_cached_query(fn):
results will be merged together into a final listing.
"""
def merge_wrapper(*args):
queries = fn(*args)
def merge_wrapper(*args, **kwargs):
queries = fn(*args, **kwargs)
return MergedCachedQuery(queries)
return merge_wrapper

View File

@@ -494,19 +494,19 @@ class Subreddit(Thing, Printable):
def get_spam(self):
from r2.lib.db import queries
return queries.get_spam(self)
return queries.get_spam(self, user=c.user)
def get_reported(self):
from r2.lib.db import queries
return queries.get_reported(self)
return queries.get_reported(self, user=c.user)
def get_modqueue(self):
from r2.lib.db import queries
return queries.get_modqueue(self)
return queries.get_modqueue(self, user=c.user)
def get_unmoderated(self):
from r2.lib.db import queries
return queries.get_unmoderated(self)
return queries.get_unmoderated(self, user=c.user)
def get_all_comments(self):
from r2.lib.db import queries