mirror of
https://github.com/internetee/registry.git
synced 2025-07-27 21:16:12 +02:00
96 lines
2.6 KiB
Ruby
96 lines
2.6 KiB
Ruby
module Admin
|
|
class ApiUsersController < BaseController
|
|
load_and_authorize_resource
|
|
|
|
def index
|
|
@q = ApiUser.includes(:registrar).ransack(params[:q])
|
|
@api_users = @q.result.page(params[:page])
|
|
@api_users = @api_users.per(params[:results_per_page]) if paginate?
|
|
end
|
|
|
|
def new
|
|
@api_user = registrar.api_users.build
|
|
end
|
|
|
|
def create
|
|
@api_user = registrar.api_users.build(api_user_params)
|
|
|
|
if @api_user.valid?
|
|
@api_user.save!
|
|
redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), notice: t('.created')
|
|
else
|
|
render 'new'
|
|
end
|
|
end
|
|
|
|
def show;
|
|
end
|
|
|
|
def edit;
|
|
end
|
|
|
|
def update
|
|
@api_user.attributes = api_user_params
|
|
|
|
if @api_user.valid?
|
|
@api_user.save!
|
|
redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), notice: t('.updated')
|
|
else
|
|
render 'edit'
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@api_user.destroy!
|
|
redirect_to admin_registrar_path(@api_user.registrar), notice: t('.deleted')
|
|
end
|
|
|
|
def set_test_date_to_api_user
|
|
user_api = User.find(params[:user_api_id])
|
|
|
|
uri = URI.parse((ENV['registry_demo_registrar_api_user_url']) + "?username=#{user_api.username}&identity_code=#{user_api.identity_code}")
|
|
|
|
response = base_get_request(uri: uri, port: ENV['registry_demo_registrar_port'])
|
|
|
|
if response.code == "200"
|
|
result = JSON.parse(response.body)
|
|
demo_user_api = result['user_api']
|
|
|
|
Actions::RecordDateOfTest.record_result_to_api_user(api_user:user_api,
|
|
date: demo_user_api['accreditation_date']) unless demo_user_api.empty?
|
|
return redirect_to request.referrer, notice: 'User Api found'
|
|
else
|
|
return redirect_to request.referrer, notice: 'User Api no found or not accriditated yet'
|
|
end
|
|
|
|
redirect_to request.referrer, notice: 'Something goes wrong'
|
|
end
|
|
|
|
def remove_test_date_to_api_user
|
|
user_api = User.find(params[:user_api_id])
|
|
user_api.accreditation_date = nil
|
|
user_api.accreditation_expire_date = nil
|
|
user_api.save
|
|
|
|
redirect_to request.referrer
|
|
end
|
|
|
|
private
|
|
|
|
def base_get_request(uri:, port:)
|
|
http = Net::HTTP.new(uri.host, port)
|
|
req = Net::HTTP::Get.new(uri.request_uri)
|
|
|
|
http.request(req)
|
|
end
|
|
|
|
def api_user_params
|
|
params.require(:api_user).permit(:username, :plain_text_password, :active,
|
|
:identity_code, { roles: [] })
|
|
end
|
|
|
|
def registrar
|
|
Registrar.find(params[:registrar_id])
|
|
end
|
|
end
|
|
end
|