Story#105842700 - registrant cannot see other contact domains (legacy from FRED)

This commit is contained in:
Vladimir Krylov 2016-03-15 14:55:51 +02:00
parent 1bf7315a91
commit 51a0449799
3 changed files with 16 additions and 6 deletions

View file

@ -1,19 +1,26 @@
class Registrant::ContactsController < RegistrantController class Registrant::ContactsController < RegistrantController
helper_method :domain_ids
def show def show
@contact = Contact.where(id: contacts).find_by(id: params[:id]) @contact = Contact.where(id: contacts).find_by(id: params[:id])
@current_user = current_user @current_user = current_user
authorize! :read, @contact authorize! :read, @contact
end end
def contacts def contacts
ident_cc, ident = @current_user.registrant_ident.to_s.split '-'
begin begin
DomainContact.where(domain_id: BusinessRegistryCache.fetch_by_ident_and_cc(ident, ident_cc).associated_domain_ids).pluck(:contact_id) DomainContact.where(domain_id: domain_ids).pluck(:contact_id)
rescue Soap::Arireg::NotAvailableError => error rescue Soap::Arireg::NotAvailableError => error
flash[:notice] = I18n.t(error.json[:message]) flash[:notice] = I18n.t(error.json[:message])
Rails.logger.fatal("[EXCEPTION] #{error.to_s}") Rails.logger.fatal("[EXCEPTION] #{error.to_s}")
[] []
end end
end end
def domain_ids
@domain_ids ||= begin
ident_cc, ident = @current_user.registrant_ident.to_s.split '-'
BusinessRegistryCache.fetch_by_ident_and_cc(ident, ident_cc).associated_domain_ids
end
end
end end

View file

@ -415,7 +415,10 @@ class Contact < ActiveRecord::Base
# fetch domains # fetch domains
domains = Domain.where("domains.id IN (#{filter_sql})").includes(:registrar).page(page).per(per) domains = Domain.where("domains.id IN (#{filter_sql})")
domains = domains.where("domains.id" => params[:leave_domains]) if params[:leave_domains]
domains = domains.includes(:registrar).page(page).per(per)
if sorts.first == "registrar_name".freeze if sorts.first == "registrar_name".freeze
# using small rails hack to generate outer join # using small rails hack to generate outer join
domains = domains.includes(:registrar).where.not(registrars: {id: nil}).order("registrars.name #{order} NULLS LAST") domains = domains.includes(:registrar).where.not(registrars: {id: nil}).order("registrars.name #{order} NULLS LAST")

View file

@ -1,4 +1,4 @@
- domains = contact.all_domains(page: params[:domain_page], per: 20, params: params) - domains = contact.all_domains(page: params[:domain_page], per: 20, params: params.merge(leave_domains: domain_ids))
#contacts.panel.panel-default #contacts.panel.panel-default
.panel-heading .panel-heading
.pull-left .pull-left