This commit is contained in:
Nicolas Bally 2019-08-26 16:07:27 +02:00
parent 0d50f90c67
commit b456490186
4 changed files with 69 additions and 26 deletions

View File

@ -8,37 +8,69 @@ class ContactController < ApplicationController
def create
@lang = LangSite.first
@params = params
DemandeMail.prise(@params).deliver
DemandeMail.remerciement(@params).deliver
if valid_captcha?(params['g-recaptcha-response'])
if true
@params = params
DemandeMail.prise(@params).deliver
DemandeMail.remerciement(@params).deliver
api_url = "http://#{UAL_API_HOST}/admin/contacts/api"
api_url = "http://#{UAL_API_HOST}/admin/contacts/api"
@c = Curl::Easy.new(api_url) do |curl|
curl.verbose = true
@c = Curl::Easy.new(api_url) do |curl|
curl.verbose = true
end
@c.http_post(
Curl::PostField.content(:name, @params[:name]),
Curl::PostField.content(:address, @params[:address]),
Curl::PostField.content(:address2, @params[:address2]),
Curl::PostField.content(:cp, @params[:cp]),
Curl::PostField.content(:city, @params[:city]),
Curl::PostField.content(:tel, @params[:tel]),
Curl::PostField.content(:mail, @params[:mail]),
Curl::PostField.content(:place, @params[:place]),
Curl::PostField.content(:type, @params[:type].to_s),
Curl::PostField.content(:owner, @params[:owner].to_s),
Curl::PostField.content(:message, @params[:message])
)
@debug = @c.body_str
else
render :inline => "ok"
end
else
redirect_to :back
end
@c.http_post(
Curl::PostField.content(:name, @params[:name]),
Curl::PostField.content(:address, @params[:address]),
Curl::PostField.content(:address2, @params[:address2]),
Curl::PostField.content(:cp, @params[:cp]),
Curl::PostField.content(:city, @params[:city]),
Curl::PostField.content(:tel, @params[:tel]),
Curl::PostField.content(:mail, @params[:mail]),
Curl::PostField.content(:place, @params[:place]),
Curl::PostField.content(:type, @params[:type].to_s),
Curl::PostField.content(:owner, @params[:owner].to_s),
Curl::PostField.content(:message, @params[:message])
)
@debug = @c.body_str
end
def valid_captcha?(recaptcha_response)
return true if Rails.env.test?
@c = Curl::Easy.new("https://www.google.com/recaptcha/api/siteverify") do |curl|
curl.verbose = true
end
@c.http_post(
Curl::PostField.content(:secret, RECAPTCHA_SECRET_KEY),
Curl::PostField.content(:response, recaptcha_response)
)
@debug = JSON.parse(@c.body_str) #["successe"]
return @debug["success"]
end
end

View File

@ -96,7 +96,11 @@
%label Message
=text_area_tag :message, "", :placeholder => "Message", :style => "height:10em;"
%p Les champs marqués d'un * sont requis.
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
=raw '<div class="g-recaptcha" data-sitekey="'+RECAPTCHA_SITE_KEY+'"></div>'
=submit_tag "Envoyer", :style => "display:block;text-align:center;margin:auto;color:white;background:#9ab354;border-radius:1em; padding:0.5em 1em; font-size:1em; border:0px;"
:javascript

View File

@ -46,4 +46,8 @@ Rails.application.configure do
config.action_mailer.default_url_options = { :host => HOSTNAME }
UAL_API_HOST = "localhost:3000"
RECAPTCHA_SITE_KEY = '6Ldj6LQUAAAAACY6SmePKeUcpbcY9WVD47-u8l_s'
RECAPTCHA_SECRET_KEY = '6Ldj6LQUAAAAAO-11feITBPmDATAF--NqcXh5_WP'
end

View File

@ -82,6 +82,9 @@ Rails.application.configure do
#config.action_mailer.delivery_method = :file
config.action_mailer.default_url_options = { :host => HOSTNAME }
RECAPTCHA_SITE_KEY = '6Ldj6LQUAAAAACY6SmePKeUcpbcY9WVD47-u8l_s'
RECAPTCHA_SECRET_KEY = '6Ldj6LQUAAAAAO-11feITBPmDATAF--NqcXh5_WP'
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "localhost",