Add mobile signup page captcha. Add test for user.sign_up method. Rewrite simple_captcha views to haml. Revert .rvmrc, fix indentation in config examp$

This commit is contained in:
Jason Robinson 2014-01-02 22:58:03 +02:00
parent c17a474142
commit db71c9c50b
12 changed files with 81 additions and 27 deletions

23
.rvmrc
View file

@ -1,2 +1,21 @@
rvm use 1.9.3-p484
rvm gemset use diaspora
#!/bin/sh
rvm rvmrc warning ignore
. ./script/env/ruby_env
if [ -e '.rvmrc.local' ]; then
. ./.rvmrc.local;
elif [ -e '.rvmrc_custom' ] ; then
. ./.rvmrc_custom;
else
if rvm list strings | grep -q "$ruby_version" ; then
rvm --create use "$ruby_version@$gemset"
else
printf "\e[00;31mPLEASE INSTALL RUBY $ruby_version WITH \`rvm install $ruby_version\`\n"
printf "Don't forget to run \`cd .. && cd -\` afterwards!\e[00m\n"
return 1
fi
fi
. ./script/env/ensure_right_rubygems

View file

@ -76,6 +76,7 @@ For more details see https://wiki.diasporafoundation.org/Updating
* Add actions on aspects on the contact page [#4570](https://github.com/diaspora/diaspora/pull/4570)
* Added a statistics route with general pod information, and if enabled in pod settings, total user, half year/monthly active users and local post counts [#4602](https://github.com/diaspora/diaspora/pull/4602)
* Add indication about markdown formatting in the publisher [#4589](https://github.com/diaspora/diaspora/pull/4589)
* Add captcha to signup form [#4659](https://github.com/diaspora/diaspora/pull/4659)
## Gem updates
* selenium-webdriver 2.34.0 -> 2.39.0

View file

@ -17,7 +17,7 @@ gem 'devise', '3.0.2'
# Captcha
gem 'galetahub-simple_captcha', :require => 'simple_captcha'
gem 'galetahub-simple_captcha', '0.1.5', :require => 'simple_captcha'
# Background processing

View file

@ -449,7 +449,7 @@ DEPENDENCIES
foreigner (= 1.4.2)
foreman (= 0.62)
fuubar (= 1.1.1)
galetahub-simple_captcha
galetahub-simple_captcha (= 0.1.5)
gon (= 4.1.1)
guard-cucumber (= 1.4.0)
guard-rspec (= 3.0.2)

View file

@ -485,6 +485,7 @@ class User < ActiveRecord::Base
save
end
end
private
def clearable_fields
self.attributes.keys - ["id", "username", "encrypted_password",

View file

@ -43,6 +43,9 @@
= f.label :password_confirmation, t('password_confirmation').upcase
.controls
= f.password_field :password_confirmation, :placeholder => "••••••••"
- if AppConfig.settings.captcha.enable?
= show_simple_captcha(:object => 'user', :code_type => 'numeric')
.controls
= f.submit t('registrations.new.create_my_account'), :class => 'btn primary', :disable_with => t('registrations.new.submitting')

View file

@ -1,8 +0,0 @@
<div class='control-label'>
<%= simple_captcha_options[:image] %>
</div>
<div class='controls'>
<%= simple_captcha_options[:field] %>
</div>

View file

@ -0,0 +1,4 @@
.control-label
= simple_captcha_options[:image]
.controls
= simple_captcha_options[:field]

View file

@ -0,0 +1,4 @@
.control-group#captcha
= simple_captcha_options[:image]
.controls
= simple_captcha_options[:field]

View file

@ -227,24 +227,24 @@ configuration: ## Section
## Settings about captcha
captcha: ## Section
## Set this to false if you don't want to use captcha for signup process
#enable: true
## Set this to false if you don't want to use captcha for signup process
#enable: true
## Change this value to use different captcha image size
#image_size: '120x20'
## Change this value to use different captcha image size
#image_size: '120x20'
## Length of captcha text. Default value is 5
#captcha_length: 5
## Length of captcha text. Default value is 5
#captcha_length: 5
## Change this value to use various image style.
## Available options are: 'simply_blue', 'simply_red'
## 'simply_green', 'charcoal_grey', 'embosed_silver', 'all_black',
## 'distorted_black', 'almost_invisible', 'random'
#image_style: 'simply_green'
## Change this value to use various image style.
## Available options are: 'simply_blue', 'simply_red'
## 'simply_green', 'charcoal_grey', 'embosed_silver', 'all_black',
## 'distorted_black', 'almost_invisible', 'random'
#image_style: 'simply_green'
## Set this value to use various level of distortion
## Available options are: 'low', 'medium', 'high', 'random'
#distortion: 'low'
## Set this value to use various level of distortion
## Available options are: 'low', 'medium', 'high', 'random'
#distortion: 'low'
## Settings about invitations
invitations: ## Section

View file

@ -316,8 +316,8 @@ ActiveRecord::Schema.define(:version => 20131213171804) do
t.boolean "favorite", :default => false
t.string "facebook_id"
t.string "tweet_id"
t.integer "open_graph_cache_id"
t.text "tumblr_ids"
t.integer "open_graph_cache_id"
end
add_index "posts", ["author_id", "root_guid"], :name => "index_posts_on_author_id_and_root_guid", :unique => true

View file

@ -1018,4 +1018,34 @@ describe User do
end
end
end
describe "sign up" do
before do
params = {:username => "ohai",
:email => "ohai@example.com",
:password => "password",
:password_confirmation => "password",
:captcha => "12345",
:person =>
{:profile =>
{:first_name => "O",
:last_name => "Hai"}
}
}
@user = User.build(params)
end
it "saves with captcha off" do
AppConfig.settings.captcha.enable = false
@user.should_receive(:save).and_return(true)
@user.sign_up
end
it "saves with captcha on" do
AppConfig.settings.captcha.enable = true
@user.should_receive(:save_with_captcha).and_return(true)
@user.sign_up
end
end
end