summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2018-10-30 17:48:06 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2018-11-01 14:20:38 +0100
commit3e6358585147a39b09cd639a75ffa3b2f13a2003 (patch)
treee7830dada9856f55fccac310a8849cd5b2f08930
parent0345b6833051f5115b3912616a955c72b8bc8eaa (diff)
downloadgitlab-ce-3e6358585147a39b09cd639a75ffa3b2f13a2003.tar.gz
Use a method for the has_many :keys in Projectuser-model-merge-conflicts
This moves the `where` in the `has_many :keys` association in Project to the Key model. This allows EE to override this method, instead of modifying the source code directly.
-rw-r--r--app/models/key.rb4
-rw-r--r--app/models/user.rb2
2 files changed, 5 insertions, 1 deletions
diff --git a/app/models/key.rb b/app/models/key.rb
index bdb83e12793..8f93418b88b 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -34,6 +34,10 @@ class Key < ActiveRecord::Base
after_destroy :post_destroy_hook
after_destroy :refresh_user_cache
+ def self.regular_keys
+ where(type: ['Key', nil])
+ end
+
def key=(value)
write_attribute(:key, value.present? ? Gitlab::SSHPublicKey.sanitize(value) : nil)
diff --git a/app/models/user.rb b/app/models/user.rb
index ad038039ade..d3eb7162174 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -88,7 +88,7 @@ class User < ActiveRecord::Base
has_one :namespace, -> { where(type: nil) }, dependent: :destroy, foreign_key: :owner_id, inverse_of: :owner, autosave: true # rubocop:disable Cop/ActiveRecordDependent
# Profile
- has_many :keys, -> { where(type: ['Key', nil]) }, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent
+ has_many :keys, -> { regular_keys }, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent
has_many :deploy_keys, -> { where(type: 'DeployKey') }, dependent: :nullify # rubocop:disable Cop/ActiveRecordDependent
has_many :gpg_keys