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

Fix #2, add rake task for PuSH-unsubscribing from remote users who have no

local followers. Remote users' usernames SHOULD be case-sensitive
parent af7ae348
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -19,12 +19,17 @@ class Api::AccountsController < ApiController ...@@ -19,12 +19,17 @@ class Api::AccountsController < ApiController
end end
def follow def follow
@follow = current_user.account.follow!(@account) if @account.local?
@follow = current_user.account.follow!(@account)
else
@follow = FollowService.new.(current_user.account, @account.acct)
end
render action: :show render action: :show
end end
def unfollow def unfollow
@unfollow = current_user.account.unfollow!(@account) @unfollow = UnfollowService.new.(current_user.account, @account)
render action: :show render action: :show
end end
......
class Account < ActiveRecord::Base class Account < ActiveRecord::Base
# Local users # Local users
has_one :user, inverse_of: :account has_one :user, inverse_of: :account
validates :username, uniqueness: { scope: :domain, case_sensitive: false } validates :username, uniqueness: { scope: :domain, case_sensitive: false }, if: 'local?'
validates :username, uniqueness: { scope: :domain, case_sensitive: true }, unless: 'local?'
# Avatar upload # Avatar upload
attr_reader :avatar_remote_url attr_reader :avatar_remote_url
......
namespace :subscriptions do
desc "For all remote accounts that have no local followers, unsubscribe from PuSH"
task clear: :environment do
accounts = Account.where('(select count(f.id) from follows as f where f.target_account_id = accounts.id) = 0').where.not(domain: nil)
accounts.each do |a|
a.subscription(api_subscription_url(a.id)).unsubscribe
a.update!(verify_token: '', secret: '')
end
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