diff options
author | Alexis Reigel <mail@koffeinfrei.org> | 2017-06-13 13:46:43 +0200 |
---|---|---|
committer | Alexis Reigel <mail@koffeinfrei.org> | 2017-07-27 15:42:53 +0200 |
commit | 3c42d730986222d891c9b7985edf3942021afcef (patch) | |
tree | 4631a62e7cbfba445e8cf6b89f9b5e6582aa4cc3 /app/models/gpg_key.rb | |
parent | 7e13d96715750f74db399bf40ee4ec9679bbe806 (diff) | |
download | gitlab-ce-3c42d730986222d891c9b7985edf3942021afcef.tar.gz |
add primary keyid attribute to gpg keys
Diffstat (limited to 'app/models/gpg_key.rb')
-rw-r--r-- | app/models/gpg_key.rb | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/app/models/gpg_key.rb b/app/models/gpg_key.rb index d4570e36e06..26f9a3975c9 100644 --- a/app/models/gpg_key.rb +++ b/app/models/gpg_key.rb @@ -20,7 +20,14 @@ class GpgKey < ActiveRecord::Base # the error about the fingerprint unless: -> { errors.has_key?(:key) } - before_validation :extract_fingerprint + validates :primary_keyid, + presence: true, + uniqueness: true, + # only validate when the `key` is valid, as we don't want the user to show + # the error about the fingerprint + unless: -> { errors.has_key?(:key) } + + before_validation :extract_fingerprint, :extract_primary_keyid after_create :notify_user def key=(value) @@ -49,6 +56,12 @@ class GpgKey < ActiveRecord::Base self.fingerprint = Gitlab::Gpg.fingerprints_from_key(key).first end + def extract_primary_keyid + # we can assume that the result only contains one item as the validation + # only allows one key + self.primary_keyid = Gitlab::Gpg.primary_keyids_from_key(key).first + end + def notify_user run_after_commit { NotificationService.new.new_gpg_key(self) } end |