From 111459785dc6208ddf3f8540aabeca0e654e3b29 Mon Sep 17 00:00:00 2001 From: Jason Harvey Date: Thu, 18 Jul 2013 12:05:55 -0700 Subject: [PATCH] Allow a maximum of 50 pending mod invites. --- r2/example.ini | 1 + r2/r2/controllers/api.py | 7 +++++++ r2/r2/lib/app_globals.py | 1 + 3 files changed, 9 insertions(+) diff --git a/r2/example.ini b/r2/example.ini index a3c8b825b..71e42a5de 100644 --- a/r2/example.ini +++ b/r2/example.ini @@ -480,6 +480,7 @@ sr_contributor_quota = 10000 sr_wikibanned_quota = 10000 sr_wikicontributor_quota = 10000 sr_quota_time = 7200 +sr_invite_limit = 25 # -- email -- # smtp server diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index 57fbc16b3..3f968aa0b 100755 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -765,6 +765,13 @@ class ApiController(RedditController, OAuth2ResourceController): if not has_perms: abort(403, 'forbidden') + if type == 'moderator_invite': + invites = sum(1 for i in container.each_moderator_invite()) + if invites >= g.sr_invite_limit: + c.errors.add(errors.SUBREDDIT_RATELIMIT, field="name") + form.set_error(errors.SUBREDDIT_RATELIMIT, "name") + return + if type in self._sr_friend_types and not c.user_is_admin: quota_key = "sr%squota-%s" % (str(type), container._id36) g.cache.add(quota_key, 0, time=g.sr_quota_time) diff --git a/r2/r2/lib/app_globals.py b/r2/r2/lib/app_globals.py index a4a97668a..db21e3183 100755 --- a/r2/r2/lib/app_globals.py +++ b/r2/r2/lib/app_globals.py @@ -123,6 +123,7 @@ class Globals(object): 'sr_moderator_invite_quota', 'sr_contributor_quota', 'sr_quota_time', + 'sr_invite_limit', 'wiki_keep_recent_days', 'wiki_max_page_length_bytes', 'wiki_max_page_name_length',