about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTakeshi Umeda <noel.yoshiba@gmail.com>2019-09-21 16:11:21 +0900
committerEugen Rochko <eugen@zeonfederated.com>2019-09-21 09:11:21 +0200
commitf497d14b19ce150ee19e6478c9018833e28c7d52 (patch)
tree7c15a47c7a9ae346784a8fffa04f1ee30600d583
parente35636a0d16f3154970d71a305574e59fa2ad393 (diff)
Addition of update activity distribution by alias, minor correction (#11905)
* Addition of update activity distribution by alias, minor correction

* Distribute Update activity after adding alias
* Add uniqueness verification to alias uri
* accept acct starting with @

* fix double-quoted to single-quoted
-rw-r--r--app/controllers/settings/aliases_controller.rb1
-rw-r--r--app/models/account_alias.rb6
2 files changed, 7 insertions, 0 deletions
diff --git a/app/controllers/settings/aliases_controller.rb b/app/controllers/settings/aliases_controller.rb
index da0a4a9fa..b7c9a409d 100644
--- a/app/controllers/settings/aliases_controller.rb
+++ b/app/controllers/settings/aliases_controller.rb
@@ -15,6 +15,7 @@ class Settings::AliasesController < Settings::BaseController
     @alias = current_account.aliases.build(resource_params)
 
     if @alias.save
+      ActivityPub::UpdateDistributionWorker.perform_async(current_account.id)
       redirect_to settings_aliases_path, notice: I18n.t('aliases.created_msg')
     else
       render :index
diff --git a/app/models/account_alias.rb b/app/models/account_alias.rb
index e9a0dd79e..66f8ce409 100644
--- a/app/models/account_alias.rb
+++ b/app/models/account_alias.rb
@@ -17,11 +17,17 @@ class AccountAlias < ApplicationRecord
 
   validates :acct, presence: true, domain: { acct: true }
   validates :uri, presence: true
+  validates :uri, uniqueness: { scope: :account_id }
 
   before_validation :set_uri
   after_create :add_to_account
   after_destroy :remove_from_account
 
+  def acct=(val)
+    val = val.to_s.strip
+    super(val.start_with?('@') ? val[1..-1] : val)
+  end
+
   private
 
   def set_uri