Commit 6fe4cacdfbbe0012501e3fd5ef21af009c1dd518
1 parent
f72ac6a9
Exists in
master
and in
28 other branches
ActionItem1193: fixing user registration!
Showing
3 changed files
with
15 additions
and
0 deletions
Show diff stats
app/controllers/public/account_controller.rb
@@ -51,6 +51,7 @@ class AccountController < ApplicationController | @@ -51,6 +51,7 @@ class AccountController < ApplicationController | ||
51 | @user.terms_of_use = environment.terms_of_use | 51 | @user.terms_of_use = environment.terms_of_use |
52 | @user.environment = environment | 52 | @user.environment = environment |
53 | @terms_of_use = environment.terms_of_use | 53 | @terms_of_use = environment.terms_of_use |
54 | + @user.person_data = params[:profile_data] | ||
54 | @person = Person.new(params[:profile_data]) | 55 | @person = Person.new(params[:profile_data]) |
55 | @person.name = @user.login | 56 | @person.name = @user.login |
56 | @person.environment = @user.environment | 57 | @person.environment = @user.environment |
app/models/user.rb
@@ -29,10 +29,16 @@ class User < ActiveRecord::Base | @@ -29,10 +29,16 @@ class User < ActiveRecord::Base | ||
29 | 29 | ||
30 | after_create do |user| | 30 | after_create do |user| |
31 | user.person ||= Person.new | 31 | user.person ||= Person.new |
32 | + user.person.attributes = user.person_data | ||
32 | user.person.name ||= user.login | 33 | user.person.name ||= user.login |
33 | user.person.update_attributes(:identifier => user.login, :user_id => user.id, :environment_id => user.environment_id) | 34 | user.person.update_attributes(:identifier => user.login, :user_id => user.id, :environment_id => user.environment_id) |
34 | end | 35 | end |
35 | 36 | ||
37 | + attr_writer :person_data | ||
38 | + def person_data | ||
39 | + @person_data || {} | ||
40 | + end | ||
41 | + | ||
36 | before_update do |user| | 42 | before_update do |user| |
37 | if !User.find(user.id).enable_email and user.enable_email and !user.environment.nil? | 43 | if !User.find(user.id).enable_email and user.enable_email and !user.environment.nil? |
38 | User::Mailer.deliver_activation_email_notify(user) | 44 | User::Mailer.deliver_activation_email_notify(user) |
test/functional/account_controller_test.rb
@@ -635,6 +635,14 @@ class AccountControllerTest < Test::Unit::TestCase | @@ -635,6 +635,14 @@ class AccountControllerTest < Test::Unit::TestCase | ||
635 | end | 635 | end |
636 | end | 636 | end |
637 | 637 | ||
638 | + should 'signup filling in mandatory person fields' do | ||
639 | + Person.any_instance.stubs(:required_fields).returns(['organization_website']) | ||
640 | + assert_difference User, :count do | ||
641 | + post :signup, :user => { :login => 'testuser', :password => '123456', :password_confirmation => '123456', :email => 'testuser@example.com' }, :profile_data => { :organization_website => 'example.com' } | ||
642 | + assert_redirected_to :controller => 'profile_editor', :profile => 'testuser' | ||
643 | + end | ||
644 | + end | ||
645 | + | ||
638 | protected | 646 | protected |
639 | def new_user(options = {}, extra_options ={}) | 647 | def new_user(options = {}, extra_options ={}) |
640 | data = {:profile_data => person_data} | 648 | data = {:profile_data => person_data} |