From 5e5e86c3834166e5999e99f2bc79c4140d424058 Mon Sep 17 00:00:00 2001 From: Albert Yi Date: Tue, 2 Jul 2019 17:16:33 -0700 Subject: [PATCH] limit number of synchronous saved search updates --- app/models/saved_search.rb | 4 +++- script/fixes/056_message_nonascii_usernames.rb | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 script/fixes/056_message_nonascii_usernames.rb diff --git a/app/models/saved_search.rb b/app/models/saved_search.rb index 22234fc6d..62247f1b6 100644 --- a/app/models/saved_search.rb +++ b/app/models/saved_search.rb @@ -19,16 +19,18 @@ class SavedSearch < ApplicationRecord label = normalize_label(label) if label queries = queries_for(user_id, label: label) post_ids = Set.new + update_count = 0 queries.each do |query| redis_key = "search:#{query}" if redis.exists(redis_key) sub_ids = redis.smembers(redis_key).map(&:to_i) post_ids.merge(sub_ids) redis.expire(redis_key, REDIS_EXPIRY) - elsif CurrentUser.is_gold? + elsif CurrentUser.is_gold? && update_count < 5 SavedSearch.populate(query) sub_ids = redis.smembers(redis_key).map(&:to_i) post_ids.merge(sub_ids) + update_count += 1 else SavedSearch.delay(queue: "default").populate(query) end diff --git a/script/fixes/056_message_nonascii_usernames.rb b/script/fixes/056_message_nonascii_usernames.rb new file mode 100644 index 000000000..bb104dc3b --- /dev/null +++ b/script/fixes/056_message_nonascii_usernames.rb @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby + +require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')) + +CurrentUser.user = User.system +CurrentUser.ip_addr = "127.0.0.1" + +User.where("name !~ ?", "^[ -~]*$").find_each do |user| + Dmail.create_automated( + :to_id => user.id, + :title => "Name change required", + :body => "Because of issues with users exploiting various Unicode characters in their name, in the future all non-ASCII characters and any non-printable characters will be forbidden. This means you will have to change your name. You can visit \"this page\":/user_name_change_requests/new to change your name. You will have 30 days to change your name or else your account will be banned." + ) +end