mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-30 01:08:32 -05:00
Check for posts permission in spam/reported/modqueue/unmoderated queries on multireddits and /r/mod.
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user