Skip to content
Extraits de code Groupes Projets
Valider 7376af90 rédigé par Eugen Rochko's avatar Eugen Rochko
Parcourir les fichiers

Don't show statuses to blocked users

parent 32824488
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -15,7 +15,37 @@ ...@@ -15,7 +15,37 @@
"sourceType": "module", "sourceType": "module",
"ecmaFeatures": { "ecmaFeatures": {
"jsx": true "arrowFunctions": true,
}, "jsx": true,
"destructuring": true,
"modules": true,
"spread": true
}
}, },
"rules": {
"no-cond-assign": 2,
"no-console": 1,
"no-irregular-whitespace": 2,
"no-unreachable": 2,
"valid-typeof": 2,
"consistent-return": 2,
"dot-notation": 2,
"eqeqeq": 2,
"no-fallthrough": 2,
"no-unused-expressions": 2,
"strict": 0,
"no-catch-shadow": 2,
"indent": [1, 2],
"brace-style": 1,
"comma-spacing": [1, {"before": false, "after": true}],
"comma-style": [1, "last"],
"no-mixed-spaces-and-tabs": 1,
"no-nested-ternary": 1,
"no-trailing-spaces": 1,
"react/wrap-multilines": 2,
"react/self-closing-comp": 2,
"react/prop-types": 2,
"react/no-multi-comp": 0
}
} }
...@@ -31,7 +31,6 @@ class Status < ApplicationRecord ...@@ -31,7 +31,6 @@ class Status < ApplicationRecord
scope :remote, -> { where.not(uri: nil) } scope :remote, -> { where.not(uri: nil) }
scope :local, -> { where(uri: nil) } scope :local, -> { where(uri: nil) }
scope :permitted_for, ->(target_account, account) { account&.id == target_account.id || account&.following?(target_account) ? where('1=1') : where.not(visibility: :private) }
cache_associated :account, :media_attachments, :tags, :stream_entry, mentions: :account, reblog: [:account, :stream_entry, :tags, :media_attachments, mentions: :account], thread: :account cache_associated :account, :media_attachments, :tags, :stream_entry, mentions: :account, reblog: [:account, :stream_entry, :tags, :media_attachments, mentions: :account], thread: :account
...@@ -72,7 +71,7 @@ class Status < ApplicationRecord ...@@ -72,7 +71,7 @@ class Status < ApplicationRecord
end end
def permitted?(other_account = nil) def permitted?(other_account = nil)
private_visibility? ? (account.id == other_account&.id || other_account&.following?(account)) : true private_visibility? ? (account.id == other_account&.id || other_account&.following?(account)) : other_account.nil? || !account.blocking?(other_account)
end end
def ancestors(account = nil) def ancestors(account = nil)
...@@ -145,6 +144,16 @@ class Status < ApplicationRecord ...@@ -145,6 +144,16 @@ class Status < ApplicationRecord
end end
end end
def permitted_for(target_account, account)
if account&.id == target_account.id || account&.following?(target_account)
where('1 = 1')
elsif !account.nil? && target_account.blocking?(account)
where('1 = 0')
else
where.not(visibility: :private)
end
end
private private
def filter_timeline(query, account) def filter_timeline(query, account)
......
...@@ -30,7 +30,7 @@ class ProcessInteractionService < BaseService ...@@ -30,7 +30,7 @@ class ProcessInteractionService < BaseService
case verb(xml) case verb(xml)
when :follow when :follow
follow!(account, target_account) unless target_account.locked? follow!(account, target_account) unless target_account.locked? || target_account.blocking?(account)
when :unfollow when :unfollow
unfollow!(account, target_account) unfollow!(account, target_account)
when :favorite when :favorite
......
...@@ -7,7 +7,6 @@ RSpec.describe Api::V1::StatusesController, type: :controller do ...@@ -7,7 +7,6 @@ RSpec.describe Api::V1::StatusesController, type: :controller do
let(:token) { double acceptable?: true, resource_owner_id: user.id } let(:token) { double acceptable?: true, resource_owner_id: user.id }
before do before do
stub_request(:post, "https://pubsubhubbub.superfeedr.com/").to_return(:status => 200, :body => "", :headers => {})
allow(controller).to receive(:doorkeeper_token) { token } allow(controller).to receive(:doorkeeper_token) { token }
end end
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter