don't count bio metadata against bio length on server
This commit is contained in:
		
							parent
							
								
									56ca33a6d3
								
							
						
					
					
						commit
						4f36aad6e8
					
				| @ -60,7 +60,7 @@ class Account < ApplicationRecord | ||||
|   validates :username, format: { with: /\A[a-z0-9_]+\z/i }, uniqueness: { scope: :domain, case_sensitive: false }, length: { maximum: 30 }, if: -> { local? && will_save_change_to_username? } | ||||
|   validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? } | ||||
|   validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? } | ||||
|   validates :note, length: { maximum: 500 }, if: -> { local? && will_save_change_to_note? } | ||||
|   validate :note_length_does_not_exceed_length_limit, if: -> { local? && will_save_change_to_note? } | ||||
| 
 | ||||
|   # Timelines | ||||
|   has_many :stream_entries, inverse_of: :account, dependent: :destroy | ||||
| @ -251,6 +251,22 @@ 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 > 500 | ||||
|       errors.add(:note, "can't be longer than 500 graphemes") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def normalize_domain | ||||
|     return if local? | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user