Update user role position range limit (#33349)
This commit is contained in:
		
							parent
							
								
									aee64a465c
								
							
						
					
					
						commit
						22caddaa24
					
				| @ -41,7 +41,7 @@ class UserRole < ApplicationRecord | ||||
|   EVERYONE_ROLE_ID = -99 | ||||
|   NOBODY_POSITION = -1 | ||||
| 
 | ||||
|   POSITION_LIMIT = 2**31 | ||||
|   POSITION_LIMIT = (2**31) - 1 | ||||
| 
 | ||||
|   module Flags | ||||
|     NONE = 0 | ||||
| @ -91,7 +91,7 @@ class UserRole < ApplicationRecord | ||||
| 
 | ||||
|   validates :name, presence: true, unless: :everyone? | ||||
|   validates :color, format: { with: /\A#?(?:[A-F0-9]{3}){1,2}\z/i }, unless: -> { color.blank? } | ||||
|   validates :position, numericality: { greater_than_or_equal_to: -POSITION_LIMIT, less_than_or_equal_to: POSITION_LIMIT } | ||||
|   validates :position, numericality: { in: (-POSITION_LIMIT..POSITION_LIMIT) } | ||||
| 
 | ||||
|   validate :validate_permissions_elevation | ||||
|   validate :validate_position_elevation | ||||
|  | ||||
| @ -21,11 +21,9 @@ RSpec.describe UserRole do | ||||
|     describe 'position' do | ||||
|       subject { Fabricate.build :user_role } | ||||
| 
 | ||||
|       let(:excess) { 2**32 } | ||||
|       let(:limit) { 2**31 } | ||||
|       let(:limit) { described_class::POSITION_LIMIT } | ||||
| 
 | ||||
|       it { is_expected.to_not allow_values(-excess, excess).for(:position) } | ||||
|       it { is_expected.to allow_values(-limit, limit).for(:position) } | ||||
|       it { is_expected.to validate_numericality_of(:position).is_in(-limit..limit) } | ||||
|     end | ||||
| 
 | ||||
|     describe 'color' do | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user