From 4aed1baea9a9075bca8f4170c83f7e91b5fe9f17 Mon Sep 17 00:00:00 2001 From: Logan Hanks Date: Wed, 12 Dec 2012 17:26:14 -0800 Subject: [PATCH] Add moderator permission for posts (approve/remove/distinguish/nsfw). --- r2/r2/controllers/front.py | 2 +- r2/r2/lib/pages/pages.py | 13 ++++++++----- r2/r2/lib/validator/validator.py | 2 +- r2/r2/models/subreddit.py | 6 +++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/r2/r2/controllers/front.py b/r2/r2/controllers/front.py index 786d2c710..95e9f2842 100755 --- a/r2/r2/controllers/front.py +++ b/r2/r2/controllers/front.py @@ -641,7 +641,7 @@ class FrontController(RedditController, OAuth2ResourceController): c.site.stylesheet_contents) pane = SubredditStylesheetSource(stylesheet_contents=stylesheet) elif (location in ('reports', 'spam', 'modqueue', 'unmoderated') - and is_moderator): + and is_moderator_with_perms('posts')): c.allow_styles = True pane = self._make_spamlisting(location, num, after, reverse, count) if c.user.pref_private_feeds: diff --git a/r2/r2/lib/pages/pages.py b/r2/r2/lib/pages/pages.py index ba3bc1e2a..77bfee77d 100755 --- a/r2/r2/lib/pages/pages.py +++ b/r2/r2/lib/pages/pages.py @@ -269,17 +269,20 @@ class Reddit(Templated): buttons.append(NamedButton("traffic", css_class="reddit-traffic")) - buttons += [NamedButton("modqueue", css_class="reddit-modqueue"), - NamedButton("reports", css_class="reddit-reported"), - NamedButton("spam", css_class="reddit-spam")] + if c.site.is_moderator_with_perms(c.user, 'posts'): + buttons += [NamedButton("modqueue", css_class="reddit-modqueue"), + NamedButton("reports", css_class="reddit-reported"), + NamedButton("spam", css_class="reddit-spam")] if is_single_subreddit: buttons.append(NamedButton("banned", css_class="reddit-ban")) if c.site.is_moderator_with_perms(c.user, 'flair'): buttons.append(NamedButton("flair", css_class="reddit-flair")) - buttons += [NamedButton("log", css_class="reddit-moderationlog"), - NamedButton("unmoderated", css_class="reddit-unmoderated")] + buttons.append(NamedButton("log", css_class="reddit-moderationlog")) + if c.site.is_moderator_with_perms(c.user, 'posts'): + buttons.append( + NamedButton("unmoderated", css_class="reddit-unmoderated")) return SideContentBox(_('moderation tools'), [NavMenu(buttons, diff --git a/r2/r2/lib/validator/validator.py b/r2/r2/lib/validator/validator.py index bd7ba7275..26e6724ee 100644 --- a/r2/r2/lib/validator/validator.py +++ b/r2/r2/lib/validator/validator.py @@ -918,7 +918,7 @@ class VSrCanBan(VByName): # comment, because this should only be used on links and # comments subreddit = item.subreddit_slow - if subreddit.is_moderator(c.user): + if subreddit.is_moderator_with_perms(c.user, 'posts'): return True abort(403,'forbidden') diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index 846b2a867..7bb4f6dc5 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -419,15 +419,15 @@ class Subreddit(Thing, Printable): else: return False - def can_ban(self,user): + def can_ban(self, user): return (user and (c.user_is_admin - or self.is_moderator(user))) + or self.is_moderator_with_perms(user, 'posts'))) def can_distinguish(self,user): return (user and (c.user_is_admin - or self.is_moderator(user))) + or self.is_moderator_with_perms(user, 'posts'))) def can_change_stylesheet(self, user): if c.user_is_loggedin: