about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock2
-rw-r--r--app/controllers/comments_controller.rb6
-rw-r--r--app/views/comments/_form.html.haml3
-rw-r--r--config/credentials.yml.enc2
-rw-r--r--config/credentials/production.yml.enc2
-rw-r--r--config/initializers/recaptcha.rb4
7 files changed, 18 insertions, 2 deletions
diff --git a/Gemfile b/Gemfile index d6ca5e9..74a0c62 100644 --- a/Gemfile +++ b/Gemfile
@@ -87,3 +87,4 @@ gem 'rails_autolink'
87gem 'whenever', "~> 1.0.0", require: false 87gem 'whenever', "~> 1.0.0", require: false
88gem "webmention" 88gem "webmention"
89gem 'microformats', '~> 4.0', '>= 4.2.1' 89gem 'microformats', '~> 4.0', '>= 4.2.1'
90gem 'recaptcha'
diff --git a/Gemfile.lock b/Gemfile.lock index cc60005..0afbc47 100644 --- a/Gemfile.lock +++ b/Gemfile.lock
@@ -301,6 +301,7 @@ GEM
301 ffi (~> 1.0) 301 ffi (~> 1.0)
302 rdoc (6.6.0) 302 rdoc (6.6.0)
303 psych (>= 4.0.0) 303 psych (>= 4.0.0)
304 recaptcha (5.19.0)
304 redcarpet (3.6.0) 305 redcarpet (3.6.0)
305 reline (0.3.9) 306 reline (0.3.9)
306 io-console (~> 0.5) 307 io-console (~> 0.5)
@@ -416,6 +417,7 @@ DEPENDENCIES
416 paperclip 417 paperclip
417 rails (~> 7.1.0) 418 rails (~> 7.1.0)
418 rails_autolink 419 rails_autolink
420 recaptcha
419 redcarpet 421 redcarpet
420 rouge 422 rouge
421 sassc-rails 423 sassc-rails
diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 9413339..31fe411 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb
@@ -5,6 +5,12 @@ class CommentsController < ApplicationController
5 raise ActiveRecord::RecordNotFound unless @blog 5 raise ActiveRecord::RecordNotFound unless @blog
6 raise ActiveRecord::RecordNotFound unless @blog.published 6 raise ActiveRecord::RecordNotFound unless @blog.published
7 7
8 unless verify_recaptcha
9 flash.alert = "Error posting comment."
10 render "blogs/show"
11 return
12 end
13
8 @comment = @blog.comments.new(comment_params) 14 @comment = @blog.comments.new(comment_params)
9 @comment.request_ip = request.ip 15 @comment.request_ip = request.ip
10 @comment.user_agent = request.user_agent 16 @comment.user_agent = request.user_agent
diff --git a/app/views/comments/_form.html.haml b/app/views/comments/_form.html.haml index 13a0903..12692c2 100644 --- a/app/views/comments/_form.html.haml +++ b/app/views/comments/_form.html.haml
@@ -24,6 +24,9 @@
24 .comment-website-field.comment-field 24 .comment-website-field.comment-field
25 .comment-field-label= f.label :website, "Website (Optional)" 25 .comment-field-label= f.label :website, "Website (Optional)"
26 .comment-field-input= f.text_field :website, type: :url 26 .comment-field-input= f.text_field :website, type: :url
27 .comment-website-field.comment-field
28 .comment-field-label
29 .comment-field-input= recaptcha_tags
27 .comment-submit-button.comment-field 30 .comment-submit-button.comment-field
28 .comment-field-label 31 .comment-field-label
29 .comment-field-input= f.submit "Post" 32 .comment-field-input= f.submit "Post"
diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc index 90d7ee5..cd9cac5 100644 --- a/config/credentials.yml.enc +++ b/config/credentials.yml.enc
@@ -1 +1 @@
KrLA+ftWWLuC9JQBmExf5RXFOqp9q+CZCY6DJ8d0sgVUQXxcDToVqntxRRsqrTHvJ48xmRUgA4OmXUI1ZE3JtJQOuRmQHJf3bMtSlXDOzQTgNeIyzH3++Kcss3dIeM2+gnT8wxE2y6Tj2+KyB4tJGMeX1elSFK41rGz4zQzYVva3MVNKUmD1wV9p28sxtUSkDbiFxa2tDLGddor3Nqf7n4nuBLxpU4G1b7lhsAAQ4MYALvll0q3Uk54vEqyoiWEDC0fzqi1eWH/MQjcY6h6tXKEgElrXekx8N3agScXS50n2OzGx2ZbW99AwD0DxY6v1PtlAuW2OwEPFPvYaTu5cfsfaAJ5NKEMN4ahkHAerZpuJuoYgPOmnoM+mUZVPkaUWTRFkPBFRomrXtZ6e6OTAi/6Tnq9r/PAgpK9xeK0t8B2g0EpY/1FGvoByC0GDrzF2iJZg79y7B5xqhP9APrkTSJLCiNB3IdWwc2n45U6lPqt8ew1s9uxHQ5M9olBOkXnTDsj2--XBeKpE20qGij/dTL--9IG+AQxUdaR/ZcaUQ/cRvQ== \ No newline at end of file TMbFARKxiuopoIWE/n0a8KMCh28dFjTGFpfXoXHUQmDlVhA40doz/aLWCYDE00djC70eM4BwXZmaDFC7tly1miU0OymvYijYKNb5Kv9bu2rihSprleyjnBrCF4qykWpDh8XfzXGfiDegSuZzw5RUGKkEU+EGJNIPTnPKAm2MSSnPStVFt1gGxGuYRd0pXCgFUW/USVYnbJEPv6DOxqh3HmKmneP29fcx1V+N/RccyzHsjL2S5lej5s8Q4oAy+SZ4+xLK9Pdh6nA3dZ82fNTLffqmnFxEovuW5n6Cjt0Ka2MZRvYg6sBNDvUVvQSw4u1BRXx7JOHcIWiKdykF/uHdrSwmIPepwd+zs/HCxrthdMSry+yrLwJpZ67JiMA/VKIMYzgLy8yk2JEblBXq3FGo44TWwumIkfTn4H/6UZNb4jGJ4dH+LAFiE7il2X3BbvBb4EkYB3xbu+zqvnohOzuVKkJtjILV6RBrEFzbCijwi3PBOoX8O9fwW8B0BduSp4AhFa+dyenOkD2HjtyEMttJAPuuw3neQKhkv/4SaPaugcD4vKONSwU3F/7nB7yMVQqofVLIc2a1tJaTjWIlNIwVssZS2HS5OZFTpv1XJpCyMcLO/EAe9poqiPieE8WwpdXntRs9O/QQqPWyt2ZdHD8RMKerZjbU1wV58h4rJmmAKUkTCuo=--Jo9AwrM/hr9nWWoS--iHpkNsZwBWB0lySmzkcLdA== \ No newline at end of file
diff --git a/config/credentials/production.yml.enc b/config/credentials/production.yml.enc index a4724d9..af415a7 100644 --- a/config/credentials/production.yml.enc +++ b/config/credentials/production.yml.enc
@@ -1 +1 @@
d4uIaJsejFxp80UN6tMjOdA63ERQWbOxbgHuo+FyTRTHXAJbriKgcx2GLhMFOjk7ft8IZm0Nv5/e6NOzaqTYRiwNMG+X4jaX267pIAccMYBDoZmIhfQGqkav8bEMvA3PODeoaEVHTEP1dOFtI5u2rGi2EUYRThPXLzdOpoOjFAnC8cQawiFJn6B9EpYu5zlAfCJ9LonCVPCaOlWqzjd+8RbgqLvtw7fNBlIX8u1cli8JwBiV8C1UNlqmv6b1Lqp1S20PizOnUA2GU2Pi2EWEtjavO82MCakS2I0rt90Cikd9mlp+LOcWpk3AgVr3dhi86XepTk5Ds3v6g7axzvTxUZjV9ACXhSHufPlDvqVqAcwpEE5C/o7WHj3T3xy4kVs36LScMcyQ/bg85wYxgT+Wl0EVSMg7DPsl/pY/QkttizStx++r8x6sExcPxD5n8ZLA5aOXjcfeYJC+BYg+7OWlPYHqup8s/70gjm8hZ75Rv+yPD7PEz6MIJu+pG2MUfgJspmYag0Wc2hrHxHnMi4S+Jf+kK+7x44nVXPJ5kT8WXYVQkHdj6ibgwPqe4OWbr0dWkoowIcyztmdj+nKRulzwgYNgyd23XZqu30TTuyqVtzzyVfXLteGDSDS4kmXyn/hx2LtG6LHzAeptsIChPJOCu9+1Zp4M9haCSw8mX/d8/nAt5MyxZUm/2SXogD2dE4eNbGhMFeDJkeJ/--T1kw8AC3IoFq+eQx--2bqSYqOxBpLVMJnddXLegQ== \ No newline at end of file V//BL1LV+HIfxWVXgfAHG5TrUakYlbjN5V3gkDi9StysvSQ0rM3Opo2/Vt0KbU4FHhjiHoGAOZRPdf08j5k3zS3i4YroBfR3HwOj7snvq2mdBleL9D1UqkBLldjdaco1MnSLSfS2yJe8F3VhtVxesz/Sh4LXoZWemsWGJLu0GfRxPDwswTvdWBgyASnKUOlFyQNypgRTWGMqCe99Z5pw8co8JqZho29Dk6Tp7UJzoim8j5YU+tfgBZ4GF81c0eT8SvBJhHHbcTm/DPUMGxvUJAT9adjQnjPq0tferHziTGl54/ROQCXqrJHKLUOH5JRqh2lAkY3EK3SvTezuYSoV0MwsOxntxC54bQYznN5Dz6/I31UbWpydPGY8P+/Sjdh4QInD51VcDeuJ/QaDSeqJFxHUWDJ0Da55rwsZFr6jmpgbqcmunXLl2B+VDH7sSQOn71IEyNikq5l/9m2dYEdXZpWFsujkyVXzg4O5WFkLtmqoe4wudN7kk8nEZffd6xPtKNpl51Ml1BpSoNMNwGAf72Xxq5/5Z9QFK7mtyPhBVYqalR0kEZPbxmeZGmedcE/fgQXlZYNw4tzBy2/24hJokMLRoX5prmOGMf+6f62wEbBozyaDU2eAMC0HCwg/rb22hDPvzs1XKu2TTEGK7iT3BvdsUHIVnHdUd//hLEeNHeI43FLxPKgyaG7Ovnn8DmNrvUuapaFHjykVsQ2GOLQ9a7GGrwObqr0w33HG/UAwhzEE8s9KwF6qMdqPCCPuYOsbj5xgTyv5X5s0oIgCinvkfAIyFV7WXwLbbE9yxc6UumXbLLTSQE2s8mZ2yL+gdE+iYkSOhz8Z3bj9agOQD5zHMu/NxzTdpNwH6rsLLXq5EfToIWNXEl9kTU8=--x7Ic40D296IOMLm6--VBDaN0LLlyO8zeyfWW+UBA== \ No newline at end of file
diff --git a/config/initializers/recaptcha.rb b/config/initializers/recaptcha.rb new file mode 100644 index 0000000..807a23c --- /dev/null +++ b/config/initializers/recaptcha.rb
@@ -0,0 +1,4 @@
1Recaptcha.configure do |config|
2 config.site_key = Rails.application.credentials.recaptcha_site_key
3 config.secret_key = Rails.application.credentials.recaptcha_secret_key
4end