Allow a configurable delay to keep diary entries from being published in feeds

This is to provide another tool to help spam fighting.

The configuration value is set to zero hours for new deploys in
order to be 'least surprising'. You can change the setting without
interfering with your test suite.
This commit is contained in:
Andy Allan 2019-05-29 16:56:15 +02:00
parent 21bf5d79d6
commit 6ed749e7eb
4 changed files with 29 additions and 1 deletions

View file

@ -166,6 +166,10 @@ class DiaryEntriesController < ApplicationController
else
@entries = DiaryEntry.joins(:user).where(:users => { :status => %w[active confirmed] })
# Items can't be flagged as deleted in the RSS format.
# For the general feeds, allow a delay before publishing, to help spam fighting
@entries = @entries.where("created_at < :time", :time => Settings.diary_feed_delay.hours.ago)
if params[:language]
@entries = @entries.where(:language_code => params[:language])
@title = t("diary_entries.feed.language.title", :language_name => Language.find(params[:language]).english_name)
@ -177,7 +181,6 @@ class DiaryEntriesController < ApplicationController
@link = url_for :action => "index", :host => Settings.server_url, :protocol => Settings.server_protocol
end
end
@entries = @entries.visible.includes(:user).order("created_at DESC").limit(20)
end