Merge pull request #4024 from gschlager/username-suggester
FIX: Don't suggest invalid username
This commit is contained in:
commit
16629401fa
|
@ -42,14 +42,21 @@ module UserNameSuggester
|
||||||
# 2. removes unallowed leading characters
|
# 2. removes unallowed leading characters
|
||||||
name.gsub!(/^\W+/, "")
|
name.gsub!(/^\W+/, "")
|
||||||
# 3. removes unallowed trailing characters
|
# 3. removes unallowed trailing characters
|
||||||
name.gsub!(/[^A-Za-z0-9]+$/, "")
|
name = remove_unallowed_trailing_characters(name)
|
||||||
# 4. unify special characters
|
# 4. unify special characters
|
||||||
name.gsub!(/[-_.]{2,}/, "_")
|
name.gsub!(/[-_.]{2,}/, "_")
|
||||||
name
|
name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.remove_unallowed_trailing_characters(name)
|
||||||
|
name.gsub!(/[^A-Za-z0-9]+$/, "")
|
||||||
|
name
|
||||||
|
end
|
||||||
|
|
||||||
def self.rightsize_username(name)
|
def self.rightsize_username(name)
|
||||||
name.ljust(User.username_length.begin, '1')[0, User.username_length.end]
|
name = name[0, User.username_length.end]
|
||||||
|
name = remove_unallowed_trailing_characters(name)
|
||||||
|
name.ljust(User.username_length.begin, '1')
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -93,6 +93,15 @@ describe UserNameSuggester do
|
||||||
it 'should handle typical facebook usernames' do
|
it 'should handle typical facebook usernames' do
|
||||||
expect(UserNameSuggester.suggest('roger.nelson.3344913')).to eq('roger.nelson.33')
|
expect(UserNameSuggester.suggest('roger.nelson.3344913')).to eq('roger.nelson.33')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'removes underscore at the end of long usernames that get truncated' do
|
||||||
|
expect(UserNameSuggester.suggest('uuuuuuuuuuuuuu_u')).to_not end_with('_')
|
||||||
|
end
|
||||||
|
|
||||||
|
it "adds number if it's too short after removing trailing underscore" do
|
||||||
|
User.stubs(:username_length).returns(8..8)
|
||||||
|
expect(UserNameSuggester.suggest('uuuuuuu_u')).to eq('uuuuuuu1')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue