diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-03-17 11:59:18 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-03-17 12:02:45 +0100 |
commit | 323474c97ee4adc2b905c3c754f7a137e06d1e81 (patch) | |
tree | 87695c6a6ccad8521f2980fc670429f99c202f80 /app | |
parent | af7ae348d7cd6fcc56bbd757d8619b6c9a2bb261 (diff) |
Fix #2, add rake task for PuSH-unsubscribing from remote users who have no
local followers. Remote users' usernames SHOULD be case-sensitive
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/api/accounts_controller.rb | 9 | ||||
-rw-r--r-- | app/models/account.rb | 3 |
2 files changed, 9 insertions, 3 deletions
diff --git a/app/controllers/api/accounts_controller.rb b/app/controllers/api/accounts_controller.rb index 13c2b3d8a..782cc8102 100644 --- a/app/controllers/api/accounts_controller.rb +++ b/app/controllers/api/accounts_controller.rb @@ -19,12 +19,17 @@ class Api::AccountsController < ApiController end 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 end def unfollow - @unfollow = current_user.account.unfollow!(@account) + @unfollow = UnfollowService.new.(current_user.account, @account) render action: :show end diff --git a/app/models/account.rb b/app/models/account.rb index 524d05f86..e4295d735 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -1,7 +1,8 @@ class Account < ActiveRecord::Base # Local users 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 attr_reader :avatar_remote_url |