mirror of
https://github.com/internetee/registry.git
synced 2025-06-05 20:27:30 +02:00
77 lines
No EOL
2.3 KiB
Ruby
77 lines
No EOL
2.3 KiB
Ruby
class Registrant::DomainsController < RegistrantController
|
|
def index
|
|
authorize! :view, :registrant_domains
|
|
|
|
params[:q] ||= {}
|
|
normalize_search_parameters do
|
|
@q = current_user_domains.search(search_params)
|
|
end
|
|
|
|
domains = @q.result
|
|
|
|
respond_to do |format|
|
|
format.html do
|
|
@domains = domains.page(params[:page])
|
|
domains_per_page = params[:results_per_page].to_i
|
|
@domains = @domains.per(domains_per_page) if domains_per_page.positive?
|
|
end
|
|
format.csv do
|
|
raw_csv = @q.result.to_csv
|
|
send_data raw_csv, filename: 'domains.csv', type: "#{Mime[:csv]}; charset=utf-8"
|
|
end
|
|
format.pdf do
|
|
@domains = domains
|
|
raw_pdf = domains.pdf(render_to_string('registrant/domains/download_list', layout: false))
|
|
send_data raw_pdf, filename: 'domains.pdf'
|
|
end
|
|
end
|
|
end
|
|
|
|
def show
|
|
@domain = current_user_domains.find(params[:id])
|
|
authorize! :read, @domain
|
|
end
|
|
|
|
def confirmation
|
|
authorize! :view, :registrant_domains
|
|
domain = current_user_domains.find(params[:id])
|
|
|
|
if (domain.statuses.include?(DomainStatus::PENDING_UPDATE) ||
|
|
domain.statuses.include?(DomainStatus::PENDING_DELETE_CONFIRMATION)) &&
|
|
domain.pending_json.present?
|
|
|
|
@domain = domain
|
|
@confirmation_url = confirmation_url(domain)
|
|
else
|
|
flash[:warning] = I18n.t('available_verification_url_not_found')
|
|
redirect_to registrant_domain_path(domain)
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def normalize_search_parameters
|
|
ca_cache = params[:q][:valid_to_lteq]
|
|
begin
|
|
end_time = params[:q][:valid_to_lteq].try(:to_date)
|
|
params[:q][:valid_to_lteq] = end_time.try(:end_of_day)
|
|
rescue
|
|
logger.warn('Invalid date')
|
|
end
|
|
yield
|
|
params[:q][:valid_to_lteq] = ca_cache
|
|
end
|
|
|
|
def confirmation_url(domain)
|
|
if domain.statuses.include?(DomainStatus::PENDING_UPDATE)
|
|
registrant_domain_update_confirm_url(token: domain.registrant_verification_token)
|
|
elsif domain.statuses.include?(DomainStatus::PENDING_DELETE_CONFIRMATION)
|
|
registrant_domain_delete_confirm_url(token: domain.registrant_verification_token)
|
|
end
|
|
end
|
|
|
|
def search_params
|
|
params.require(:q).permit(:name_matches, :registrant_ident_eq, :valid_to_gteq, :valid_to_lteq,
|
|
:results_per_page)
|
|
end
|
|
end |