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

27 lines
592 B
Ruby
Raw Permalink 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)
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