25 lines
572 B
Ruby
25 lines
572 B
Ruby
module UserManager
|
|
class UpdatePgpKey < UserManagerService
|
|
def initialize(user:)
|
|
@user = user
|
|
end
|
|
|
|
def call
|
|
if @user.pgp_pubkey.blank?
|
|
@user.update! pgp_fpr: nil
|
|
else
|
|
result = GPGME::Key.import(@user.pgp_pubkey)
|
|
|
|
if result.imports.present?
|
|
@user.update! pgp_fpr: result.imports.first.fpr
|
|
else
|
|
# TODO notify Sentry, user
|
|
raise "Failed to import OpenPGP pubkey"
|
|
end
|
|
end
|
|
|
|
LdapManager::UpdatePgpKey.call(dn: @user.dn, pubkey: @user.pgp_pubkey)
|
|
end
|
|
end
|
|
end
|