mirror of
https://github.com/internetee/registry.git
synced 2025-07-28 05:26:17 +02:00
- Refactor certificate generation into a dedicated service object - Add Base64 encoding for p12 binary data storage - Implement serial number generation and storage - Remove deprecated certificate generation code - Simplify certificate status checks - Update certificate controller to use new generator - Add proper password handling for p12 containers The main changes include: - Moving certificate generation logic to CertificateGenerator service - Proper handling of binary data encoding - Implementing serial number tracking for future CRL support - Removing old certificate generation and validation code - Simplifying the certificate lifecycle management This commit provides a more maintainable and robust certificate generation system while preparing for future CRL implementation.
28 lines
No EOL
845 B
Ruby
28 lines
No EOL
845 B
Ruby
module Repp
|
|
module V1
|
|
module Certificates
|
|
class P12Controller < BaseController
|
|
load_and_authorize_resource class: 'Certificate', param_method: :p12_params
|
|
|
|
THROTTLED_ACTIONS = %i[create].freeze
|
|
include Shunter::Integration::Throttle
|
|
|
|
api :POST, '/repp/v1/certificates/p12'
|
|
desc 'Generate a P12 certificate'
|
|
def create
|
|
api_user_id = p12_params[:api_user_id]
|
|
render_error(I18n.t('errors.messages.not_found'), :not_found) and return if api_user_id.blank?
|
|
|
|
certificate = ::Certificates::CertificateGenerator.new(api_user_id: api_user_id).execute
|
|
render_success(data: { certificate: certificate })
|
|
end
|
|
|
|
private
|
|
|
|
def p12_params
|
|
params.require(:p12).permit(:api_user_id)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end |