diff --git a/app/assets/javascripts/discourse/models/user.js.es6 b/app/assets/javascripts/discourse/models/user.js.es6 index 62874c5b2e5..23816363eaa 100644 --- a/app/assets/javascripts/discourse/models/user.js.es6 +++ b/app/assets/javascripts/discourse/models/user.js.es6 @@ -181,7 +181,6 @@ const User = Discourse.Model.extend({ 'email_direct', 'email_always', 'email_private_messages', - 'allow_private_messages', 'dynamic_favicon', 'digest_after_days', 'new_topic_duration_minutes', diff --git a/app/assets/javascripts/discourse/templates/user/preferences.hbs b/app/assets/javascripts/discourse/templates/user/preferences.hbs index 7d9ee810c45..d7cc7b20c34 100644 --- a/app/assets/javascripts/discourse/templates/user/preferences.hbs +++ b/app/assets/javascripts/discourse/templates/user/preferences.hbs @@ -211,7 +211,6 @@ {{preference-checkbox labelKey="user.enable_quoting" checked=enable_quoting}} {{preference-checkbox labelKey="user.dynamic_favicon" checked=dynamic_favicon}} {{preference-checkbox labelKey="user.disable_jump_reply" checked=disable_jump_reply}} - {{preference-checkbox labelKey="user.allow_private_messages" checked=allow_private_messages}} {{#unless editHistoryVisible}} {{preference-checkbox labelKey="user.edit_history_public" checked=edit_history_public}} {{/unless}} diff --git a/app/serializers/user_serializer.rb b/app/serializers/user_serializer.rb index 31273a8a987..f589b329fe4 100644 --- a/app/serializers/user_serializer.rb +++ b/app/serializers/user_serializer.rb @@ -95,8 +95,7 @@ class UserSerializer < BasicUserSerializer :custom_avatar_upload_id, :has_title_badges, :card_image_badge, - :card_image_badge_id, - :allow_private_messages + :card_image_badge_id untrusted_attributes :bio_raw, :bio_cooked, @@ -158,10 +157,6 @@ class UserSerializer < BasicUserSerializer object.user_profile.location end - def allow_private_messages - object.user_profile.allow_private_messages - end - def can_edit scope.can_edit?(object) end diff --git a/app/services/user_updater.rb b/app/services/user_updater.rb index 8dc753cb9b7..1881f40a782 100644 --- a/app/services/user_updater.rb +++ b/app/services/user_updater.rb @@ -28,9 +28,6 @@ class UserUpdater user_profile = user.user_profile user_profile.website = format_url(attributes.fetch(:website) { user_profile.website }) user_profile.bio_raw = attributes.fetch(:bio_raw) { user_profile.bio_raw } - user_profile.allow_private_messages = attributes.fetch(:allow_private_messages) { - user_profile.allow_private_messages - } user.name = attributes.fetch(:name) { user.name } user.locale = attributes.fetch(:locale) { user.locale } diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 2a1d3522bf8..3294e75a412 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -335,7 +335,6 @@ en: dismiss_notifications: "Mark all as Read" dismiss_notifications_tooltip: "Mark all unread notifications as read" disable_jump_reply: "Don't jump to my post after I reply" - allow_private_messages: "Allow users to send me private messages" dynamic_favicon: "Show incoming message notifications on favicon (experimental)" edit_history_public: "Let other users view my post revisions" external_links_in_new_tab: "Open all external links in a new tab" diff --git a/lib/guardian.rb b/lib/guardian.rb index 3cff6901205..d3e2911ee1a 100644 --- a/lib/guardian.rb +++ b/lib/guardian.rb @@ -260,8 +260,6 @@ class Guardian (SiteSetting.enable_private_messages || @user.username == SiteSetting.site_contact_username || @user == Discourse.system_user) && - # Only staff can send PMs to users that opt-out - (!target.is_a?(User) || is_staff? || target.user_profile.allow_private_messages) && # Can't send PMs to suspended users (is_staff? || target.is_a?(Group) || !target.suspended?) end diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb index bd64f97f2d3..77d658f08c5 100644 --- a/spec/components/post_creator_spec.rb +++ b/spec/components/post_creator_spec.rb @@ -393,30 +393,14 @@ describe PostCreator do let(:target_user1) { Fabricate(:coding_horror) } let(:target_user2) { Fabricate(:moderator) } let(:unrelated) { Fabricate(:user) } - - def create_pm(from, to) - PostCreator.create(from, title: 'hi there welcome to my topic', + let(:post) do + PostCreator.create(user, title: 'hi there welcome to my topic', raw: "this is my awesome message @#{unrelated.username_lower}", archetype: Archetype.private_message, - target_usernames: to.join(','), + target_usernames: [target_user1.username, target_user2.username].join(','), category: 1) end - let(:post) do - create_pm(user, [target_user1.username, target_user2.username]) - end - - it 'disallows PM to end users that disable it' do - profile = target_user2.user_profile - profile.allow_private_messages = false - profile.save - - post = create_pm(user, [target_user2.username]) - - expect(post).to be_nil - - end - it 'acts correctly' do # It's not a warning expect(post.topic.warning).to be_blank @@ -492,11 +476,10 @@ describe PostCreator do end let(:unrelated) { Fabricate(:user) } let(:post) do - PostCreator.new(user, title: 'hi there welcome to my topic', + PostCreator.create(user, title: 'hi there welcome to my topic', raw: "this is my awesome message @#{unrelated.username_lower}", archetype: Archetype.private_message, - target_group_names: group.name).create - + target_group_names: group.name) end it 'acts correctly' do