Skip to content

Commit

Permalink
Merge branch 'master' into enable-trimming-dnskey
Browse files Browse the repository at this point in the history
  • Loading branch information
thiagoyoussef committed Oct 6, 2022
2 parents 2801564 + 6a18c59 commit ae738aa
Show file tree
Hide file tree
Showing 70 changed files with 1,103 additions and 478 deletions.
1 change: 0 additions & 1 deletion .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ exclude_patterns:
- "config/"
- "db/"
- "lib/core_monkey_patches/"
- "lib/daemons/"
- "lib/gem_monkey_patches/"
- "lib/tasks/api_log.rake"
- "lib/tasks/bootstrap.rake"
Expand Down
3 changes: 0 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,10 @@ gem 'omniauth-tara', github: 'internetee/omniauth-tara'
# gem 'omniauth-tara', path: 'vendor/gems/omniauth-tara'

gem 'airbrake'
gem 'daemons-rails', '1.2.1'
gem 'epp', github: 'internetee/epp', branch: :master
gem 'epp-xml', '1.2.0', github: 'internetee/epp-xml', branch: :master
gem 'jquery-ui-rails', '6.0.1'
gem 'pdfkit'
gem 'que'
gem 'que-web'
gem 'sidekiq', '>= 6.4.1'

gem 'company_register', github: 'internetee/company_register',
Expand Down
26 changes: 1 addition & 25 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -202,10 +202,6 @@ GEM
crack (0.4.5)
rexml
crass (1.0.6)
daemons (1.3.1)
daemons-rails (1.2.1)
daemons
multi_json (~> 1.0)
data_migrate (8.0.0)
activerecord (>= 5.0)
railties (>= 5.0)
Expand All @@ -227,7 +223,6 @@ GEM
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
erubi (1.10.0)
erubis (2.7.0)
execjs (2.7.0)
ffi (1.15.0)
figaro (1.2.0)
Expand Down Expand Up @@ -318,9 +313,6 @@ GEM
money (~> 6.13.2)
railties (>= 3.0)
msgpack (1.4.2)
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
netrc (0.11.0)
newrelic-infinite_tracing (8.1.0)
grpc (~> 1.34)
Expand Down Expand Up @@ -353,7 +345,7 @@ GEM
paper_trail (12.1.0)
activerecord (>= 5.2)
request_store (~> 1.1)
pdfkit (0.8.5)
pdfkit (0.8.7)
pg (1.4.3)
pg_query (2.1.2)
google-protobuf (>= 3.17.1)
Expand All @@ -365,11 +357,6 @@ GEM
public_suffix (4.0.6)
puma (5.6.4)
nio4r (~> 2.0)
que (0.14.3)
que-web (0.7.2)
erubis
que (~> 0.8)
sinatra
racc (1.6.0)
rack (2.2.4)
rack-oauth2 (1.16.0)
Expand All @@ -378,8 +365,6 @@ GEM
httpclient
json-jwt (>= 1.11.0)
rack (>= 2.1.0)
rack-protection (2.2.0)
rack
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (6.1.4.1)
Expand Down Expand Up @@ -427,7 +412,6 @@ GEM
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rexml (3.2.5)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
sass-rails (6.0.0)
sassc-rails (~> 2.1, >= 2.1.1)
Expand Down Expand Up @@ -463,11 +447,6 @@ GEM
simplecov-html (0.10.2)
simpleidn (0.2.1)
unf (~> 0.1.4)
sinatra (2.2.0)
mustermann (~> 1.0)
rack (~> 2.2)
rack-protection (= 2.2.0)
tilt (~> 2.0)
sixarm_ruby_unaccent (1.2.0)
socksify (1.7.1)
sprockets (4.0.2)
Expand Down Expand Up @@ -546,7 +525,6 @@ DEPENDENCIES
coffee-rails (>= 5.0)
company_register!
countries
daemons-rails (= 1.2.1)
data_migrate (~> 8.0)
database_cleaner
devise (~> 4.8)
Expand Down Expand Up @@ -582,8 +560,6 @@ DEPENDENCIES
pghero
pry (= 0.14.1)
puma
que
que-web
rails (~> 6.1.4)
ransack (~> 2.6.0)
rest-client
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,6 @@ sudo apt-get install libxext-dev libxrender1 fontconfig
### Deployment

* [Application build and update](/doc/application_build_doc.md)
* [Registry que server](/doc/que/README.md)

### Autotesting

Expand Down
43 changes: 39 additions & 4 deletions app/controllers/admin/api_users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ def create

if @api_user.valid?
@api_user.save!
redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user),
notice: t('.created')
redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), notice: t('.created')
else
render 'new'
end
Expand All @@ -35,8 +34,7 @@ def update

if @api_user.valid?
@api_user.save!
redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user),
notice: t('.updated')
redirect_to admin_registrar_api_user_path(@api_user.registrar, @api_user), notice: t('.updated')
else
render 'edit'
end
Expand All @@ -47,8 +45,45 @@ def 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: [] })
Expand Down
14 changes: 13 additions & 1 deletion app/controllers/admin/auctions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def create

if auction.save
reserved_domain = auction.domain if remove_from_reserved(auction)
flash[:notice] = "Auction #{params[:domain]} created.
flash[:notice] = "Auction #{params[:domain]} created.
#{reserved_domain.present? ? 'These domain will be removed from reserved list: ' + reserved_domain : ' '}"
else
flash[:alert] = 'Something goes wrong'
Expand All @@ -53,6 +53,18 @@ def create
redirect_to admin_auctions_path
end

def destroy
auction = Auction.find(params[:id])

if auction.destroy
flash[:notice] = I18n.t('record_deleted')
else
flash.now[:alert] = I18n.t('failed_to_delete_record')
end

redirect_to admin_auctions_path
end

def upload_spreadsheet
if params[:q].nil?
flash[:alert] = 'No file upload! Look at the left of upload button!'
Expand Down
7 changes: 6 additions & 1 deletion app/controllers/admin/domains_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Admin
class DomainsController < BaseController
DEFAULT_VERSIONS_PER_PAGE = 10

before_action :set_domain, only: %i[show edit update keep]
before_action :set_domain, only: %i[show edit update download keep]
authorize_resource

# rubocop:disable Metrics/MethodLength
Expand Down Expand Up @@ -65,6 +65,11 @@ def versions
.per(DEFAULT_VERSIONS_PER_PAGE)
end

def download
filename = "#{@domain.name}.pdf"
send_data @domain.as_pdf, filename: filename
end

def keep
@domain.keep
redirect_to edit_admin_domain_url(@domain), notice: t('.kept')
Expand Down
50 changes: 50 additions & 0 deletions app/controllers/admin/registrars_controller.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require 'net/http'

module Admin
class RegistrarsController < BaseController # rubocop:disable Metrics/ClassLength
load_and_authorize_resource
Expand Down Expand Up @@ -55,8 +57,56 @@ def destroy
end
end

def set_test_date
registrar = Registrar.find(params[:registrar_id])

uri = URI.parse((ENV['registry_demo_registrar_results_url']) + "?registrar_name=#{registrar.name}")

response = base_get_request(uri: uri, port: ENV['registry_demo_registrar_port'])

if response.code == "200"
return record_result_for_each_api_user(response: response)
else
return redirect_to request.referer, notice: 'Registrar no found'
end

redirect_to request.referer, notice: 'Something goes wrong'
end

def remove_test_date
registrar = Registrar.find(params[:registrar_id])
registrar.api_users.each do |api|
api.accreditation_date = nil
api.accreditation_expire_date = nil
api.save
end

redirect_to request.referer
end

private

def record_result_for_each_api_user(response:)
result = JSON.parse(response.body)
registrar_users = result['registrar_users']

return redirect_to request.referer, notice: 'Registrar found, but not accreditated yet' if registrar_users.empty?

registrar_users.each do |api|
a = ApiUser.find_by(username: api['username'], identity_code: api['identity_code'])
Actions::RecordDateOfTest.record_result_to_api_user(api_user: a, date: api['accreditation_date']) unless a.nil?
end

redirect_to request.referer, notice: 'Registrar found'
end

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 filter_by_status
case params[:status]
when 'Active'
Expand Down
30 changes: 16 additions & 14 deletions app/controllers/api/v1/accreditation_center/base_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,25 @@ module Api
module V1
module AccreditationCenter
class BaseController < ActionController::API
rescue_from ActiveRecord::RecordNotFound, with: :show_not_found_error
rescue_from ActiveRecord::RecordInvalid, with: :show_invalid_record_error
rescue_from(ActionController::ParameterMissing) do |parameter_missing_exception|
error = {}
error[parameter_missing_exception.param] = ['parameter is required']
response = { errors: [error] }
render json: response, status: :unprocessable_entity
end
if Feature.allow_accr_endspoints?
rescue_from ActiveRecord::RecordNotFound, with: :show_not_found_error
rescue_from ActiveRecord::RecordInvalid, with: :show_invalid_record_error
rescue_from(ActionController::ParameterMissing) do |parameter_missing_exception|
error = {}
error[parameter_missing_exception.param] = ['parameter is required']
response = { errors: [error] }
render json: response, status: :unprocessable_entity
end

private
private

def show_not_found_error
render json: { errors: [{ base: ['Not found'] }] }, status: :not_found
end
def show_not_found_error
render json: { errors: [{ base: ['Not found'] }] }, status: :not_found
end

def show_invalid_record_error(exception)
render json: { errors: exception.record.errors }, status: :bad_request
def show_invalid_record_error(exception)
render json: { errors: exception.record.errors }, status: :bad_request
end
end
end
end
Expand Down
40 changes: 40 additions & 0 deletions app/controllers/api/v1/accreditation_center/results_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
require 'serializers/repp/contact'

module Api
module V1
module AccreditationCenter
class ResultsController < ::Api::V1::AccreditationCenter::BaseController
def show
accr_users = []
registrar = Registrar.find_by(name: params[:registrar_name])

return render json: { errors: 'Registrar not found' }, status: :not_found if registrar.nil?

registrar.api_users.where.not(accreditation_date: nil).each do |u|
accr_users << u
end

render json: { code: 1000, registrar_users: accr_users }
end

def show_api_user
user_api = User.find_by(username: params[:username], identity_code: params[:identity_code])

return render json: { errors: 'User not found' }, status: :not_found if user_api.nil?

return render json: { errors: 'No accreditated yet' }, status: :not_found if user_api.accreditation_date.nil?

render json: { code: 1000, user_api: user_api }
end

def list_accreditated_api_users
users = User.where.not(accreditation_date: nil)

return render json: { errors: 'Accreditated users not found' }, status: :not_found if users.empty?

render json: { code: 1000, users: users }
end
end
end
end
end
1 change: 1 addition & 0 deletions app/controllers/api/v1/auctions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ def update
end

auction.mark_deadline(params[:registration_deadline]) if params[:registration_deadline]
auction.platform = params[:platform] == 'english' ? :manual : :auto

if auction.payment_not_received? || auction.domain_not_registered?
update_whois_from_auction(Auction.pending(auction.domain))
Expand Down
Loading

0 comments on commit ae738aa

Please sign in to comment.