about summary refs log tree commit diff
diff options
context:
space:
mode:
authormasarakki <masaki182@gmail.com>2018-08-22 20:20:50 +0900
committerEugen Rochko <eugen@zeonfederated.com>2018-08-22 13:20:50 +0200
commit4bdab203ac5ca06d757d08af8a2bc184c86e3bbe (patch)
tree603f68588f5912db3956edb7fafefb608d33fed4
parent2374a00c1062a70e9092d88579e1351e4c8128f9 (diff)
exclude-other-silenced-accounts (#7528)
-rw-r--r--app/models/status.rb3
-rw-r--r--spec/models/status_spec.rb11
2 files changed, 2 insertions, 12 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index 6ba7b7a50..35655bff2 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -384,7 +384,8 @@ class Status < ApplicationRecord
 
     def account_silencing_filter(account)
       if account.silenced?
-        including_silenced_accounts
+        including_myself = left_outer_joins(:account).where(account_id: account.id).references(:accounts)
+        excluding_silenced_accounts.or(including_myself)
       else
         excluding_silenced_accounts
       end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index d03005107..9d8670129 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -573,17 +573,6 @@ RSpec.describe Status, type: :model do
           expect(results).to include(es_status)
         end
       end
-
-      context 'where that account is silenced' do
-        it 'includes statuses from other accounts that are silenced' do
-          @account.update(silenced: true)
-          other_silenced_account = Fabricate(:account, silenced: true)
-          other_status = Fabricate(:status, account: other_silenced_account)
-
-          results = Status.as_public_timeline(@account)
-          expect(results).to include(other_status)
-        end
-      end
     end
   end