diff options
-rw-r--r-- | Gemfile | 1 | ||||
-rw-r--r-- | Gemfile.lock | 2 | ||||
-rw-r--r-- | app/controllers/comments_controller.rb | 6 | ||||
-rw-r--r-- | app/views/comments/_form.html.haml | 3 | ||||
-rw-r--r-- | config/credentials.yml.enc | 2 | ||||
-rw-r--r-- | config/credentials/production.yml.enc | 2 | ||||
-rw-r--r-- | config/initializers/recaptcha.rb | 4 |
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' | |||
87 | gem 'whenever', "~> 1.0.0", require: false | 87 | gem 'whenever', "~> 1.0.0", require: false |
88 | gem "webmention" | 88 | gem "webmention" |
89 | gem 'microformats', '~> 4.0', '>= 4.2.1' | 89 | gem 'microformats', '~> 4.0', '>= 4.2.1' |
90 | gem '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 @@ | |||
1 | Recaptcha.configure do |config| | ||
2 | config.site_key = Rails.application.credentials.recaptcha_site_key | ||
3 | config.secret_key = Rails.application.credentials.recaptcha_secret_key | ||
4 | end | ||