diff --git a/r2/r2/lib/db/queries.py b/r2/r2/lib/db/queries.py index 515c8b1b1..6a13dfdc4 100755 --- a/r2/r2/lib/db/queries.py +++ b/r2/r2/lib/db/queries.py @@ -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)) diff --git a/r2/r2/models/query_cache.py b/r2/r2/models/query_cache.py index 11692fc3e..1989daac9 100644 --- a/r2/r2/models/query_cache.py +++ b/r2/r2/models/query_cache.py @@ -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 diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index cfef6118f..42ba23feb 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -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