diff options
| author | miks <miks@cubesystems.lv> | 2011-12-31 16:24:10 +0200 |
|---|---|---|
| committer | miks <miks@cubesystems.lv> | 2011-12-31 16:24:10 +0200 |
| commit | 99b8b577e92831d9cfe4f98fca4c6b8017c95a7a (patch) | |
| tree | bfd2f324e913f099562ca37e5ca9e47f532231b3 /app/models | |
| parent | 5b4382e12e060528c42bd3e19f61df88d6316785 (diff) | |
| download | gitlab-ce-99b8b577e92831d9cfe4f98fca4c6b8017c95a7a.tar.gz | |
DeployKey moved to Key model
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/deploy_key.rb | 53 | ||||
| -rw-r--r-- | app/models/key.rb | 21 | ||||
| -rw-r--r-- | app/models/project.rb | 10 |
3 files changed, 20 insertions, 64 deletions
diff --git a/app/models/deploy_key.rb b/app/models/deploy_key.rb deleted file mode 100644 index c720f09baf7..00000000000 --- a/app/models/deploy_key.rb +++ /dev/null @@ -1,53 +0,0 @@ -require 'unique_public_key_validator' - -class DeployKey < ActiveRecord::Base - belongs_to :project - - validates :title, - :presence => true, - :length => { :within => 0..255 } - - validates :key, - :presence => true, - :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 = "deploy_#{project.code}_#{Time.now.to_i}" - end - - def update_repository - Gitlabhq::GitHost.system.new.configure do |c| - c.update_keys(identifier, key) - c.update_project(project.path, project) - end - end - - def repository_delete_key - Gitlabhq::GitHost.system.new.configure do |c| - c.delete_key(identifier) - c.update_project(project.path, project) - end - end - -end -# == Schema Information -# -# Table name: keys -# -# id :integer not null, primary key -# project_id :integer not null -# created_at :datetime -# updated_at :datetime -# key :text -# title :string(255) -# identifier :string(255) -# - - 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 diff --git a/app/models/project.rb b/app/models/project.rb index 05b2dd8f281..102efc45f50 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -14,7 +14,7 @@ class Project < ActiveRecord::Base has_many :users, :through => :users_projects has_many :notes, :dependent => :destroy has_many :snippets, :dependent => :destroy - has_many :deploy_keys, :dependent => :destroy + has_many :keys, :dependent => :destroy has_many :web_hooks, :dependent => :destroy acts_as_taggable @@ -189,15 +189,15 @@ class Project < ActiveRecord::Base end def repository_readers - keys = Key.joins({:user => :users_projects}). + read_keys = Key.joins({:user => :users_projects}). where("users_projects.project_id = ? AND users_projects.repo_access = ?", id, Repository::REPO_R) - keys.map(&:identifier) + deploy_keys.map(&:identifier) + read_keys.map(&:identifier) + keys.map(&:identifier) end def repository_writers - keys = Key.joins({:user => :users_projects}). + write_keys = Key.joins({:user => :users_projects}). where("users_projects.project_id = ? AND users_projects.repo_access = ?", id, Repository::REPO_RW) - keys.map(&:identifier) + write_keys.map(&:identifier) end def readers |
