debian-mirror-gitlab/app/services/keys/revoke_service.rb

29 lines
654 B
Ruby
Raw Normal View History

2023-04-23 21:23:45 +05:30
# frozen_string_literal: true
module Keys
class RevokeService < ::Keys::DestroyService
def execute(key)
key.transaction do
unverify_associated_signatures(key)
raise ActiveRecord::Rollback unless super(key)
end
end
private
def unverify_associated_signatures(key)
return unless Feature.enabled?(:revoke_ssh_signatures)
key.ssh_signatures.each_batch do |batch|
batch.update_all(
verification_status: CommitSignatures::SshSignature.verification_statuses[:revoked_key],
updated_at: Time.zone.now
)
end
end
end
end
Keys::DestroyService.prepend_mod