{{combo-box valueAttribute="value" content=previousRepliesOptions value=model.user_option.email_previous_replies}}
diff --git a/app/models/topic.rb b/app/models/topic.rb
index 1db44a557f2..a38c2b2e4e7 100644
--- a/app/models/topic.rb
+++ b/app/models/topic.rb
@@ -314,11 +314,14 @@ class Topic < ActiveRecord::Base
.joins("LEFT OUTER JOIN users ON users.id = topics.user_id")
.where(closed: false, archived: false)
.where("COALESCE(topic_users.notification_level, 1) <> ?", TopicUser.notification_levels[:muted])
- .where("COALESCE(users.trust_level, 0) > 0")
.created_since(since)
.listable_topics
.includes(:category)
+ unless user.user_option.try(:include_tl0_in_digests)
+ topics = topics.where("COALESCE(users.trust_level, 0) > 0")
+ end
+
if !!opts[:top_order]
topics = topics.joins("LEFT OUTER JOIN top_topics ON top_topics.topic_id = topics.id")
.order(TopicQuerySQL.order_top_for(score))
diff --git a/app/models/user_option.rb b/app/models/user_option.rb
index de4ec067a86..715b98e0c7a 100644
--- a/app/models/user_option.rb
+++ b/app/models/user_option.rb
@@ -49,6 +49,8 @@ class UserOption < ActiveRecord::Base
self.digest_after_minutes ||= SiteSetting.default_email_digest_frequency.to_i
end
+ self.include_tl0_in_digests = SiteSetting.default_include_tl0_in_digests
+
true
end
diff --git a/app/serializers/user_option_serializer.rb b/app/serializers/user_option_serializer.rb
index 6a40c7a2609..591b07e457c 100644
--- a/app/serializers/user_option_serializer.rb
+++ b/app/serializers/user_option_serializer.rb
@@ -16,7 +16,8 @@ class UserOptionSerializer < ApplicationSerializer
:new_topic_duration_minutes,
:email_previous_replies,
:email_in_reply_to,
- :like_notification_frequency
+ :like_notification_frequency,
+ :include_tl0_in_digests
def include_edit_history_public?
diff --git a/app/services/user_updater.rb b/app/services/user_updater.rb
index 25510fd2507..e7136f74e97 100644
--- a/app/services/user_updater.rb
+++ b/app/services/user_updater.rb
@@ -23,7 +23,8 @@ class UserUpdater
:auto_track_topics_after_msecs,
:email_previous_replies,
:email_in_reply_to,
- :like_notification_frequency
+ :like_notification_frequency,
+ :include_tl0_in_digests
]
def initialize(actor, user)
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 9d659236727..0ff27a0c40f 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -652,6 +652,7 @@ en:
weekly: "weekly"
every_two_weeks: "every two weeks"
+ include_tl0_in_digests: "Include posts from new users in digest emails"
email_in_reply_to: "Include an excerpt of replied to post in emails"
email_direct: "Send me an email when someone quotes me, replies to my post, mentions my @username, or invites me to a topic"
email_private_messages: "Send me an email when someone messages me"
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index 8385c043f3f..6dd216ece36 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -1267,6 +1267,7 @@ en:
notify_about_queued_posts_after: "If there are posts that have been waiting to be reviewed for more than this many hours, an email will be sent to the contact email. Set to 0 to disable these emails."
default_email_digest_frequency: "How often users receive digest emails by default."
+ default_include_tl0_in_digests: "Include posts from new users in digest emails by default. Users can change this in their preferences."
default_email_private_messages: "Send an email when someone messages the user by default."
default_email_direct: "Send an email when someone quotes/replies to/mentions or invites the user by default."
default_email_mailing_list_mode: "Send an email for every new post by default."
diff --git a/config/site_settings.yml b/config/site_settings.yml
index b4c4da72b94..dd1e45019a6 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -1085,6 +1085,7 @@ user_preferences:
default_email_digest_frequency:
enum: 'DigestEmailSiteSetting'
default: 10080
+ default_include_tl0_in_digests: false
default_email_private_messages: true
default_email_direct: true
default_email_mailing_list_mode: false
diff --git a/db/migrate/20160317201955_add_include_tl0_in_digests_to_user_options.rb b/db/migrate/20160317201955_add_include_tl0_in_digests_to_user_options.rb
new file mode 100644
index 00000000000..512f5d6df5b
--- /dev/null
+++ b/db/migrate/20160317201955_add_include_tl0_in_digests_to_user_options.rb
@@ -0,0 +1,5 @@
+class AddIncludeTl0InDigestsToUserOptions < ActiveRecord::Migration
+ def change
+ add_column :user_options, :include_tl0_in_digests, :boolean, default: false
+ end
+end
diff --git a/spec/controllers/post_actions_controller_spec.rb b/spec/controllers/post_actions_controller_spec.rb
index 4a828893ab5..0a441a0af0e 100644
--- a/spec/controllers/post_actions_controller_spec.rb
+++ b/spec/controllers/post_actions_controller_spec.rb
@@ -17,7 +17,6 @@ describe PostActionsController do
PostAction.expects(:act).once.raises(RateLimiter::LimitExceeded.new(60, 'create_like'))
expect(-> {
xhr :post, :create, id: @post.id, post_action_type_id: PostActionType.types[:like]
- puts response.success?
}).to change(UserHistory, :count).by(1)
end
end
diff --git a/spec/models/topic_spec.rb b/spec/models/topic_spec.rb
index 6d0e7074e20..e2ae6c0549f 100644
--- a/spec/models/topic_spec.rb
+++ b/spec/models/topic_spec.rb
@@ -1303,6 +1303,16 @@ describe Topic do
expect(Topic.for_digest(user, 1.year.ago, top_order: true)).to be_blank
end
+ it "returns topics from TL0 users if enabled in preferences" do
+ new_user = Fabricate(:user, trust_level: 0)
+ topic = Fabricate(:topic, user_id: new_user.id)
+
+ u = Fabricate(:user)
+ u.user_option.include_tl0_in_digests = true
+
+ expect(Topic.for_digest(u, 1.year.ago, top_order: true)).to eq([topic])
+ end
+
end
describe 'secured' do