about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-03-17 11:59:18 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-03-17 12:02:45 +0100
commit323474c97ee4adc2b905c3c754f7a137e06d1e81 (patch)
tree87695c6a6ccad8521f2980fc670429f99c202f80 /app
parentaf7ae348d7cd6fcc56bbd757d8619b6c9a2bb261 (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.rb9
-rw-r--r--app/models/account.rb3
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