summaryrefslogtreecommitdiff
path: root/app/models/gpg_key.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/gpg_key.rb')
-rw-r--r--app/models/gpg_key.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/models/gpg_key.rb b/app/models/gpg_key.rb
index ed09b44027c..6d3537b6fcf 100644
--- a/app/models/gpg_key.rb
+++ b/app/models/gpg_key.rb
@@ -40,6 +40,17 @@ class GpgKey < ActiveRecord::Base
after_commit :update_invalid_gpg_signatures, on: :create
after_create :generate_subkeys
+ def self.find_with_subkeys(fingerprint)
+ keys_table = arel_table
+ subkeys_table = GpgKeySubkey.arel_table
+
+ condition = keys_table[:primary_keyid].eq(fingerprint).or(
+ subkeys_table[:keyid].eq(fingerprint)
+ )
+
+ joins(:subkeys).where(condition).first
+ end
+
def primary_keyid
super&.upcase
end