summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiks <miks@cubesystems.lv>2012-02-08 00:32:20 +0200
committermiks <miks@cubesystems.lv>2012-02-08 00:32:20 +0200
commitf5a16663f0b038aeb397bda19ebdefa6ad873955 (patch)
tree2af58dd24d9e8c45d95f4aef411b584b8a9780b4
parente3e9db9509a14032b692597b5134446a5adc137f (diff)
downloadgitlab-ce-f5a16663f0b038aeb397bda19ebdefa6ad873955.tar.gz
Improved validation. Strip key.
-rw-r--r--app/models/key.rb11
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