Add error message for SSH key linebreaks
This commit is contained in:
parent
dc6aa1d34a
commit
562d78a65a
|
@ -43,6 +43,7 @@ v 7.13.0 (unreleased)
|
|||
- Redesign project page. Show README as default instead of activity. Move project activity to separate page
|
||||
- Make left menu more hierarchical and less contextual by adding back item at top
|
||||
- A fork can’t have a visibility level that is greater than the original project.
|
||||
- Add error message for SSH key linebreaks
|
||||
|
||||
v 7.12.2
|
||||
- Correctly show anonymous authorized applications under Profile > Applications.
|
||||
|
|
|
@ -24,6 +24,7 @@ class Key < ActiveRecord::Base
|
|||
|
||||
validates :title, presence: true, length: { within: 0..255 }
|
||||
validates :key, presence: true, length: { within: 0..5000 }, format: { with: /\A(ssh|ecdsa)-.*\Z/ }, uniqueness: true
|
||||
validates :key, format: { without: /\n|\r/, message: 'should be a single line' }
|
||||
validates :fingerprint, uniqueness: true, presence: { message: 'cannot be generated' }
|
||||
|
||||
delegate :name, :email, to: :user, prefix: true
|
||||
|
|
|
@ -63,7 +63,7 @@ describe Key do
|
|||
key = build(:key)
|
||||
|
||||
# Not always the middle, but close enough
|
||||
key.key = key.key[0..100] + ' ' + key.key[100..-1]
|
||||
key.key = key.key[0..100] + ' ' + key.key[101..-1]
|
||||
|
||||
expect(key).not_to be_valid
|
||||
end
|
||||
|
@ -71,6 +71,12 @@ describe Key do
|
|||
it 'rejects the unfingerprintable key (not a key)' do
|
||||
expect(build(:key, key: 'ssh-rsa an-invalid-key==')).not_to be_valid
|
||||
end
|
||||
|
||||
it 'rejects the multiple line key' do
|
||||
key = build(:key)
|
||||
key.key.gsub!(' ', "\n")
|
||||
expect(key).not_to be_valid
|
||||
end
|
||||
end
|
||||
|
||||
context 'callbacks' do
|
||||
|
|
Loading…
Reference in New Issue