Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Implemented the antispam solution

  • Loading branch information...
commit b23fa9bb926875243d62405c8faaaf9d17aae60b 1 parent 20ef4cb
@xHire authored
View
21 app/controllers/database/providers_controller.rb
@@ -1,5 +1,7 @@
# encoding: utf-8
class Database::ProvidersController < Database::BaseController
+ include RMathGuard::Validation
+
before_filter :translate_type
before_filter :select_category
@@ -17,22 +19,25 @@ def new
end
def create
- redirect_to db_providers_path(params[:type])
- return
-
data = params[@type.gsub('-', '_')]
data[:created_at] = Time.now
data[:updated_at] = Time.now
data[:ip] = request.env['REMOTE_ADDR']
data[:seoname] = data[:name].seolize
- @provider = get_obj.create data
- if @provider.save
- @provider.texts.create [ :author => data[:author], :email => data[:email], :ip => data[:ip], :created_at => data[:created_at], :content => params[:content] ] unless params[:content].nil? || params[:content].empty?
- redirect_to db_providers_path(params[:type])
- else
+ @provider = get_obj.new data
+ unless guard_valid?
+ @provider.errors.add_to_base :antispam
get_title
render :action => 'new'
+ else
+ if @provider.save
+ @provider.texts.create [ :author => data[:author], :email => data[:email], :ip => data[:ip], :created_at => data[:created_at], :content => params[:content] ] unless params[:content].nil? || params[:content].empty?
+ redirect_to db_providers_path(params[:type])
+ else
+ get_title
+ render :action => 'new'
+ end
end
end
View
2  app/views/database/providers/new.html.erb
@@ -1,7 +1,6 @@
<!-- Box -->
<div class="box">
<div id="topstory-txt">
- <p><strong>POZOR! Přidávání nových záznamů je dočasně vypnuto kvůli nové invazi SPAMu. Tuto funkci opět zprovozníme po dokončení našeho antispamového řešení. Děkujeme za pochopení.</strong></p>
<% unless @provider.nil? -%>
<% form_for @provider, :url => db_provider_create_path(params[:type]), :html => { :method => :post, :id => 'db' } do |f| -%>
<%= f.error_messages %>
@@ -14,6 +13,7 @@
</table>
<p class="nomb botspace">Pokud jste vedli s daným poskytovatelem na téma IPv6 nějakou komunikaci (např. e-mail či IM), můžete ji vložit níže (vkládáte-li záznam poprvé, <%= link_to '<strong>přečtěte si instrukce!</strong>', '#instrukce' %>):</p>
<%= text_area_tag :content, params[:content] %>
+ <div class="rmathguard"><%= label_tag :rmathguard, 'Před odesláním formuláře prosím spočtěte následující jednoduchý příklad:' %><br /><%= rmathguard :column_count => 5, :sep_size => 3 %>(Jedná se o ochranu před SPAMovacími roboty. Děkujeme za pochopení.)</div>
<p class="submit"><%= submit_tag "Přidat záznam", :class => 'submit' %></p>
<% end -%>
View
3  app/views/layouts/base.html.erb
@@ -90,6 +90,9 @@
<div class="in">
<dl id="news" class="box">
+ <dt>14. 4. 2010</dt>
+ <dd>Po dlouhé odmlce IPv6 Portál opět ožívá, <%= link_to "databáze", db_path %> je v provozu a budou přibývat další části webu.</dd>
+
<dt>24. 6. 2009</dt>
<dd>Přidána nová databázová kategorie&#160;&#8211; velkoobchodní ISP</dd>
View
3  config/locales/cs.yml
@@ -6,3 +6,6 @@ cs:
email: "Váš e-mail"
name: "Název společnosti"
url: "Web společnosti"
+ errors:
+ messages:
+ antispam: "Chybně vyplněný kontrolní výpočet"
View
5 public/stylesheets/main.css
@@ -126,12 +126,15 @@ table#db th.detail {width:10em; text-align:left;}
form#db input,
form#db select {width:248px;}
-form#db textarea {width:99%; height:200px;}
+form#db textarea {width:99%; height:200px; margin-bottom: 1em;}
form#db input.submit {width:auto; padding:0.3em 1em;}
form span.field-with-errors input,
form span.field-with-errors select {background-color:#ffb6b6;}
+form div.rmathguard table {margin-top:0.5em; margin-bottom:0.5em;}
+form div.rmathguard table tr td pre {font-weight:bold; font-size:8px; line-height:8px; margin-right:1em;}
+
input.submit {padding:0.3em 1em;}
p.submit {padding:1em 0; clear:left;}
p.botspace {padding-bottom:0.8em;}
Please sign in to comment.
Something went wrong with that request. Please try again.