diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index 5975d7c62..9cefebe18 100755 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -1736,6 +1736,7 @@ class ApiController(RedditController, OAuth2ResourceController): over_18 = VBoolean('over_18'), allow_top = VBoolean('allow_top'), show_media = VBoolean('show_media'), + public_traffic = VBoolean('public_traffic'), exclude_banned_modqueue = VBoolean('exclude_banned_modqueue'), show_cname_sidebar = VBoolean('show_cname_sidebar'), type = VOneOf('type', ('public', 'private', 'restricted', 'gold_restricted', 'archived')), @@ -1785,7 +1786,7 @@ class ApiController(RedditController, OAuth2ResourceController): kw = dict((k, v) for k, v in kw.iteritems() if k in ('name', 'title', 'domain', 'description', 'show_media', 'exclude_banned_modqueue', - 'show_cname_sidebar', 'type', + 'show_cname_sidebar', 'type', 'public_traffic', 'link_type', 'submit_link_label', 'comment_score_hide_mins', 'submit_text_label', 'lang', 'css_on_cname', 'header_title', 'over_18', 'wikimode', 'wiki_edit_karma', diff --git a/r2/r2/controllers/front.py b/r2/r2/controllers/front.py index dd645192c..d060025c7 100755 --- a/r2/r2/controllers/front.py +++ b/r2/r2/controllers/front.py @@ -638,7 +638,8 @@ class FrontController(RedditController, OAuth2ResourceController): stylesheet = (c.site.stylesheet_contents_user or c.site.stylesheet_contents) pane = SubredditStylesheetSource(stylesheet_contents=stylesheet) - elif (is_moderator or c.user_is_sponsor) and location == 'traffic': + elif location == 'traffic' and (c.site.public_traffic or + (is_moderator or c.user_is_sponsor)): pane = trafficpages.SubredditTraffic() elif (location == "about") and is_api(): return self.redirect(add_sr('about.json'), code=301) diff --git a/r2/r2/models/modaction.py b/r2/r2/models/modaction.py index 46f1e4009..b9096c306 100644 --- a/r2/r2/models/modaction.py +++ b/r2/r2/models/modaction.py @@ -135,6 +135,7 @@ class ModAction(tdb_cassandra.UuidThing, Printable): 'over_18': _('toggle viewers must be over 18'), 'allow_top': _('toggle allow in default set'), 'show_media': _('toggle show thumbnail images of content'), + 'public_traffic': _('toggle public traffic stats page'), 'exclude_banned_modqueue': _('toggle exclude banned users\' posts from modqueue'), 'domain': _('domain'), 'show_cname_sidebar': _('toggle show sidebar from cname'), diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index 4a4dcd0cb..17f316d25 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -104,6 +104,7 @@ class Subreddit(Thing, Printable): prev_public_description_id = "", allow_comment_gilding=True, hide_subscribers=False, + public_traffic=False, ) _essentials = ('type', 'name', 'lang') _data_int_props = Thing._data_int_props + ('mod_actions', 'reported', diff --git a/r2/r2/templates/createsubreddit.html b/r2/r2/templates/createsubreddit.html index a6f1079be..4135e59a4 100644 --- a/r2/r2/templates/createsubreddit.html +++ b/r2/r2/templates/createsubreddit.html @@ -264,6 +264,14 @@ ${_("exclude posts by site-wide banned users from modqueue")} +
  • + + +