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 :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_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? } | ||||||
|   validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? } |   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 |   # Timelines | ||||||
|   has_many :stream_entries, inverse_of: :account, dependent: :destroy |   has_many :stream_entries, inverse_of: :account, dependent: :destroy | ||||||
| @ -251,6 +251,22 @@ class Account < ApplicationRecord | |||||||
|     self.public_key  = keypair.public_key.to_pem |     self.public_key  = keypair.public_key.to_pem | ||||||
|   end |   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 |   def normalize_domain | ||||||
|     return if local? |     return if local? | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user