diff options
Diffstat (limited to 'app/models/key.rb')
| -rw-r--r-- | app/models/key.rb | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/app/models/key.rb b/app/models/key.rb index 0e4088e4750..e59753681e8 100644 --- a/app/models/key.rb +++ b/app/models/key.rb @@ -1,7 +1,6 @@ -require 'unique_public_key_validator' - class Key < ActiveRecord::Base belongs_to :user + belongs_to :project validates :title, :presence => true, @@ -12,14 +11,16 @@ class Key < ActiveRecord::Base :uniqueness => true, :length => { :within => 0..5000 } - validates_with UniquePublicKeyValidator - before_save :set_identifier after_save :update_repository after_destroy :repository_delete_key def set_identifier - self.identifier = "#{user.identifier}_#{Time.now.to_i}" + if is_deploy_key + self.identifier = "deploy_#{project.code}_#{Time.now.to_i}" + else + self.identifier = "#{user.identifier}_#{Time.now.to_i}" + end end def update_repository @@ -35,10 +36,18 @@ class Key < ActiveRecord::Base c.update_projects(projects) end end + + def is_deploy_key + true if project_id + end #projects that has this key def projects - user.projects + if is_deploy_key + [project] + else + user.projects + end end end # == Schema Information |
