about summary refs log tree commit diff
path: root/app/models/account.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/account.rb')
-rw-r--r--app/models/account.rb23
1 files changed, 6 insertions, 17 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index 722e47d65..1ee63c738 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -44,6 +44,7 @@
 #  fields                  :jsonb
 #  actor_type              :string
 #  discoverable            :boolean
+#  also_known_as           :string           is an Array
 #
 
 class Account < ApplicationRecord
@@ -78,7 +79,7 @@ class Account < ApplicationRecord
   validates_with UniqueUsernameValidator, if: -> { local? && will_save_change_to_username? }
   validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? }
   validates :display_name, length: { maximum: MAX_DISPLAY_NAME_LENGTH }, if: -> { local? && will_save_change_to_display_name? }
-  validate :note_length_does_not_exceed_length_limit, if: -> { local? && will_save_change_to_note? }
+  validates :note, note_length: { maximum: MAX_NOTE_LENGTH }, if: -> { local? && will_save_change_to_note? }
   validates :fields, length: { maximum: MAX_FIELDS }, if: -> { local? && will_save_change_to_fields? }
 
   scope :remote, -> { where.not(domain: nil) }
@@ -232,6 +233,10 @@ class Account < ApplicationRecord
     end
   end
 
+  def also_known_as
+    self[:also_known_as] || []
+  end
+
   def fields
     (self[:fields] || []).map { |f| Field.new(self, f) }
   end
@@ -483,22 +488,6 @@ class Account < ApplicationRecord
     self.public_key  = keypair.public_key.to_pem
   end
 
-  YAML_START = "---\r\n"
-  YAML_END = "\r\n...\r\n"
-
-  def note_length_does_not_exceed_length_limit
-    note_without_metadata = note
-    if note.start_with? YAML_START
-      idx = note.index YAML_END
-      unless idx.nil?
-        note_without_metadata = note[(idx + YAML_END.length) .. -1]
-      end
-    end
-    if note_without_metadata.mb_chars.grapheme_length > MAX_NOTE_LENGTH
-      errors.add(:note, "can't be longer than 500 graphemes")
-    end
-  end
-
   def normalize_domain
     return if local?