Commit 48628d31d59f007fbf4b6958eb2a48adedaef8e4
1 parent
18fc0900
Exists in
master
and in
4 other branches
dont allow duplicates in ssh keys
Showing
1 changed file
with
3 additions
and
15 deletions
Show diff stats
app/models/key.rb
| ... | ... | @@ -24,8 +24,8 @@ class Key < ActiveRecord::Base |
| 24 | 24 | before_save :set_identifier |
| 25 | 25 | |
| 26 | 26 | validates :title, presence: true, length: { within: 0..255 } |
| 27 | - validates :key, presence: true, length: { within: 0..5000 }, format: { :with => /ssh-.{3} / } | |
| 28 | - validate :unique_key, :fingerprintable_key | |
| 27 | + validates :key, presence: true, length: { within: 0..5000 }, format: { :with => /ssh-.{3} / }, uniqueness: true | |
| 28 | + validate :fingerprintable_key | |
| 29 | 29 | |
| 30 | 30 | delegate :name, :email, to: :user, prefix: true |
| 31 | 31 | |
| ... | ... | @@ -33,14 +33,6 @@ class Key < ActiveRecord::Base |
| 33 | 33 | self.key = self.key.strip unless self.key.blank? |
| 34 | 34 | end |
| 35 | 35 | |
| 36 | - def unique_key | |
| 37 | - query = Key.where(key: key) | |
| 38 | - query = query.where('(project_id IS NULL OR project_id = ?)', project_id) if project_id | |
| 39 | - if (query.count > 0) | |
| 40 | - errors.add :key, 'already exist.' | |
| 41 | - end | |
| 42 | - end | |
| 43 | - | |
| 44 | 36 | def fingerprintable_key |
| 45 | 37 | return true unless key # Don't test if there is no key. |
| 46 | 38 | # `ssh-keygen -lf /dev/stdin <<< "#{key}"` errors with: redirection unexpected |
| ... | ... | @@ -65,7 +57,7 @@ class Key < ActiveRecord::Base |
| 65 | 57 | end |
| 66 | 58 | |
| 67 | 59 | def is_deploy_key |
| 68 | - true if project_id | |
| 60 | + !!project_id | |
| 69 | 61 | end |
| 70 | 62 | |
| 71 | 63 | # projects that has this key |
| ... | ... | @@ -77,10 +69,6 @@ class Key < ActiveRecord::Base |
| 77 | 69 | end |
| 78 | 70 | end |
| 79 | 71 | |
| 80 | - def last_deploy? | |
| 81 | - Key.where(identifier: identifier).count == 0 | |
| 82 | - end | |
| 83 | - | |
| 84 | 72 | def shell_id |
| 85 | 73 | "key-#{self.id}" |
| 86 | 74 | end | ... | ... |