docbrown/app/helpers/rate_limit_checker_helper.rb
dependabot[bot] 816855ce3b
Bump rubocop from 1.17.0 to 1.18.0 (#14107)
* Bump rubocop from 1.17.0 to 1.18.0

Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.17.0 to 1.18.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* yarn install

* Fix violations

* Restore the default aligned setting

* Trigger Travis CI

* Escape HTML

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <github@rhymes.dev>
2021-07-01 13:51:49 +02:00

112 lines
3.9 KiB
Ruby

module RateLimitCheckerHelper
NEW_USER_MESSAGE = "How many %<thing>s can a new member (%<timeframe>s or less) " \
"create within any 5 minute period?".freeze
def self.new_user_message(thing)
timeframe = "day".pluralize(Settings::RateLimit.user_considered_new_days)
format(NEW_USER_MESSAGE, thing: thing, timeframe: timeframe)
end
CONFIGURABLE_RATES = {
published_article_creation: {
min: 0,
placeholder: 9,
title: "Limit number of posts created",
description: "How many posts can someone create within any 30 second period?"
},
published_article_antispam_creation: {
min: 0,
placeholder: 1,
title: "Limit number of posts created by a new member",
description: new_user_message("posts")
},
article_update: {
min: 1,
placeholder: 30,
title: "Limit number of updates to a post",
description: "How many updates can someone make within any 30 second period? Update API docs when changed."
},
image_upload: {
min: 0,
placeholder: 9,
title: "Limit number of images uploaded",
description: "How many images can someone upload within any 30 second period?"
},
user_update: {
min: 1,
placeholder: 5,
title: "Limit number of changes someone can make to their account",
description: "How many changes can someone make to their user account within any 30 second period?"
},
follow_count_daily: {
min: 0,
placeholder: 500,
title: "Limit number of followers someone can follow daily",
description: "How many people can someone follow in a day?"
},
reaction_creation: {
min: 1,
placeholder: 10,
title: "Limit number of reactions to a post or comment",
description: "How many times can someone react to a post or comment within any 30 second period?"
},
feedback_message_creation: {
min: 1,
placeholder: 5,
title: "Limit number of times someone can report abuse",
description: "How many times can someone report abuse within any 5 minute period?"
},
comment_creation: {
min: 0,
placeholder: 9,
title: "Limit number of comments created",
description: "How many comments can someone create within any 30 second period?"
},
comment_antispam_creation: {
min: 0,
placeholder: 1,
title: "Limit number of comments created by a new member",
description: new_user_message("comments")
},
mention_creation: {
min: 0,
placeholder: 7,
title: "Limit number of @-mentions in a post or comment",
description: "How many times can someone @-mention other users in a post or comment?"
},
listing_creation: {
min: 1,
placeholder: 1,
title: "Limit number of listings created",
description: "How many listings can someone create within any 1 minute period?"
},
organization_creation: {
min: 1,
placeholder: 1,
title: "Limit number of organizations created",
description: "How many organizations can someone create within any 5 minute period?"
},
user_subscription_creation: {
min: 0,
placeholder: 3,
title: "Limit number of times someone can subscribe to mailing list liquid tag",
description: "How many times can someone subscribe to a mailing list within any 30 second period?"
},
email_recipient: {
min: 0,
placeholder: 5,
title: "Limit number of general emails we send",
description: "How many emails can we send to someone within any 2 minute period?"
},
send_email_confirmation: {
min: 1,
placeholder: 2,
title: "Limit number of confirmation emails we send",
description: "How many times can we send a confirmation email to someone within a 2 minute period?"
}
}.freeze
def configurable_rate_limits
CONFIGURABLE_RATES
end
end