summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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