diff options
| author | miks <miks@cubesystems.lv> | 2012-02-08 00:32:20 +0200 |
|---|---|---|
| committer | miks <miks@cubesystems.lv> | 2012-02-08 00:32:20 +0200 |
| commit | f5a16663f0b038aeb397bda19ebdefa6ad873955 (patch) | |
| tree | 2af58dd24d9e8c45d95f4aef411b584b8a9780b4 | |
| parent | e3e9db9509a14032b692597b5134446a5adc137f (diff) | |
| download | gitlab-ce-f5a16663f0b038aeb397bda19ebdefa6ad873955.tar.gz | |
Improved validation. Strip key.
| -rw-r--r-- | app/models/key.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/app/models/key.rb b/app/models/key.rb index 61c16c14bfe..14e191d9e9b 100644 --- a/app/models/key.rb +++ b/app/models/key.rb @@ -13,14 +13,19 @@ class Key < ActiveRecord::Base :length => { :within => 0..5000 } before_save :set_identifier + before_validation :strip_white_space after_save :update_repository after_destroy :repository_delete_key validate :unique_key + def strip_white_space + self.key = self.key.strip + end + def unique_key - query = 'key = ?' - query << ' AND project_id IS NULL' unless user_id - if (Key.where(query, key.strip).count > 0) + query = Key.where('key = ?', key) + query = query.where('(project_id IS NULL OR project_id = ?)', project_id) if project_id + if (query.count > 0) errors.add :key, 'already exist.' end end |
