Commit 50c2d5c8d970879d18d4a30f2301cb45639c6cc1

Authored by Antonio Terceiro
2 parents b10e27f5 8ee125a8

Merge branch 'AI3292_signup_image_upload' into 'master'

Ai3292 signup image upload

Action Item: http://noosfero.org/Development/ActionItem3292

See merge request !318
app/controllers/public/account_controller.rb
... ... @@ -97,6 +97,7 @@ class AccountController < ApplicationController
97 97 @user.return_to = session[:return_to]
98 98 @person = Person.new(params[:profile_data])
99 99 @person.environment = @user.environment
  100 +
100 101 if request.post?
101 102 if may_be_a_bot
102 103 set_signup_start_time_for_now
... ... @@ -115,6 +116,14 @@ class AccountController < ApplicationController
115 116 invitation.update_attributes!({:friend => @user.person})
116 117 invitation.finish
117 118 end
  119 +
  120 + unless params[:file].nil?
  121 + image = Image::new :uploaded_data=> params[:file][:image]
  122 +
  123 + @user.person.image = image
  124 + @user.person.save
  125 + end
  126 +
118 127 if @user.activated?
119 128 self.current_user = @user
120 129 check_join_in_community(@user)
... ...
app/views/profile_editor/_person_form.html.erb
... ... @@ -25,6 +25,7 @@
25 25 <%= optional_field(@person, 'address', labelled_form_field(_('Address (street and number)'), text_field(:profile_data, :address, :rel => _('Address')))) %>
26 26 <%= optional_field(@person, 'address_reference', labelled_form_field(_('Address reference'), text_field(:profile_data, :address_reference, :rel => _('Address reference')))) %>
27 27 <%= optional_field(@person, 'district', labelled_form_field(_('District'), text_field(:profile_data, :district, :rel => _('District')))) %>
  28 +<%= optional_field(@person, 'image', labelled_form_field(_('Image'), file_field(:file, :image, :rel => _('Image')))) %>
28 29  
29 30 <% optional_field(@person, 'schooling') do %>
30 31 <div class="formfieldline">
... ...
test/functional/account_controller_test.rb
... ... @@ -637,6 +637,23 @@ class AccountControllerTest &lt; ActionController::TestCase
637 637 assert_equal 'example.com', Person['testuser'].organization
638 638 end
639 639  
  640 + should "create a new user with image" do
  641 + post :signup, :user => {
  642 + :login => 'testuser', :password => '123456', :password_confirmation => '123456', :email => 'testuser@example.com'
  643 + },
  644 + :profile_data => {
  645 + :organization => 'example.com'
  646 + },
  647 + :file => {
  648 + :image => fixture_file_upload('/files/rails.png', 'image/png')
  649 + }
  650 +
  651 + assert_response :successs
  652 +
  653 + person = Person["testuser"]
  654 + assert_equal "rails.png", person.image.filename
  655 + end
  656 +
640 657 should 'activate user after signup if environment is set to skip confirmation' do
641 658 env = Environment.default
642 659 env.enable('skip_new_user_email_confirmation')
... ... @@ -965,6 +982,7 @@ class AccountControllerTest &lt; ActionController::TestCase
965 982 end
966 983  
967 984 protected
  985 +
968 986 def new_user(options = {}, extra_options ={})
969 987 data = {:profile_data => person_data}
970 988 if extra_options[:profile_data]
... ...