Commit 65f294e1bb36221c89ab3718addaaed8a26969a1
Committed by
Tallys Martins
1 parent
e6f4279a
Exists in
master
and in
22 other branches
Changed when user is created on moderation and removed unused user data
from task. (AI3036) Signed-off-by: André Bernardes <andrebsguedes@gmail.com> Signed-off-by: Hebert Douglas <hebertdougl@gmail.com>
Showing
2 changed files
with
48 additions
and
66 deletions
Show diff stats
app/controllers/public/account_controller.rb
| @@ -15,11 +15,27 @@ class AccountController < ApplicationController | @@ -15,11 +15,27 @@ class AccountController < ApplicationController | ||
| 15 | 15 | ||
| 16 | def activate | 16 | def activate |
| 17 | @user = User.find_by_activation_code(params[:activation_code]) if params[:activation_code] | 17 | @user = User.find_by_activation_code(params[:activation_code]) if params[:activation_code] |
| 18 | - if @user and @user.activate | ||
| 19 | - @message = _("Your account has been activated, now you can log in!") | ||
| 20 | - check_redirection | ||
| 21 | - session[:join] = params[:join] unless params[:join].blank? | ||
| 22 | - render :action => 'login', :userlogin => @user.login | 18 | + if @user |
| 19 | + unless @user.environment.enabled?('admin_must_approve_new_users') | ||
| 20 | + if @user.activate | ||
| 21 | + @message = _("Your account has been activated, now you can log in!") | ||
| 22 | + check_redirection | ||
| 23 | + session[:join] = params[:join] unless params[:join].blank? | ||
| 24 | + render :action => 'login', :userlogin => @user.login | ||
| 25 | + end | ||
| 26 | + else | ||
| 27 | + @task = CreateUser.new | ||
| 28 | + @task.user_id = @user.id | ||
| 29 | + @task.name = @user.name | ||
| 30 | + @task.email =@user.email | ||
| 31 | + @task.target = @user.environment | ||
| 32 | + if @task.save | ||
| 33 | + session[:notice] = _('Thanks for registering. The administrators were notified.') | ||
| 34 | + @register_pending = true | ||
| 35 | + @user.activation_code = nil | ||
| 36 | + @user.save! | ||
| 37 | + end | ||
| 38 | + end | ||
| 23 | else | 39 | else |
| 24 | session[:notice] = _("It looks like you're trying to activate an account. Perhaps have already activated this account?") | 40 | session[:notice] = _("It looks like you're trying to activate an account. Perhaps have already activated this account?") |
| 25 | redirect_to :controller => :home | 41 | redirect_to :controller => :home |
| @@ -85,45 +101,30 @@ class AccountController < ApplicationController | @@ -85,45 +101,30 @@ class AccountController < ApplicationController | ||
| 85 | @user.return_to = session[:return_to] | 101 | @user.return_to = session[:return_to] |
| 86 | @person = Person.new | 102 | @person = Person.new |
| 87 | @person.environment = @user.environment | 103 | @person.environment = @user.environment |
| 88 | - unless @user.environment.enabled?('admin_must_approve_new_users') | ||
| 89 | - if request.post? | ||
| 90 | - if may_be_a_bot | ||
| 91 | - set_signup_start_time_for_now | ||
| 92 | - @block_bot = true | ||
| 93 | - session[:may_be_a_bot] = true | ||
| 94 | - else | ||
| 95 | - if session[:may_be_a_bot] | ||
| 96 | - return false unless verify_recaptcha :model=>@user, :message=>_('Captcha (the human test)') | ||
| 97 | - end | ||
| 98 | - @user.community_to_join = session[:join] | ||
| 99 | - @user.signup! | ||
| 100 | - owner_role = Role.find_by_name('owner') | ||
| 101 | - @user.person.affiliate(@user.person, [owner_role]) if owner_role | ||
| 102 | - invitation = Task.find_by_code(@invitation_code) | ||
| 103 | - if invitation | ||
| 104 | - invitation.update_attributes!({:friend => @user.person}) | ||
| 105 | - invitation.finish | ||
| 106 | - end | ||
| 107 | - if @user.activated? | ||
| 108 | - self.current_user = @user | ||
| 109 | - check_join_in_community(@user) | ||
| 110 | - go_to_signup_initial_page | ||
| 111 | - else | ||
| 112 | - @register_pending = true | ||
| 113 | - end | 104 | + if request.post? |
| 105 | + @person.attributes = params[:profile_data] | ||
| 106 | + if may_be_a_bot | ||
| 107 | + set_signup_start_time_for_now | ||
| 108 | + @block_bot = true | ||
| 109 | + session[:may_be_a_bot] = true | ||
| 110 | + else | ||
| 111 | + if session[:may_be_a_bot] | ||
| 112 | + return false unless verify_recaptcha :model=>@user, :message=>_('Captcha (the human test)') | ||
| 114 | end | 113 | end |
| 115 | - end | ||
| 116 | - else | ||
| 117 | - @task = CreateUser.new(params[:user]) | ||
| 118 | - @task.person_data = @user.person_data | ||
| 119 | - if request.post? | ||
| 120 | - if @user.valid? | ||
| 121 | - @task.target = @user.environment | ||
| 122 | - @task.name = @user.name | ||
| 123 | - if @task.save | ||
| 124 | - session[:notice] = _('Thanks for registering. The administrators were notified.') | ||
| 125 | - @register_pending = true | ||
| 126 | - end | 114 | + @user.community_to_join = session[:join] |
| 115 | + @user.signup! | ||
| 116 | + owner_role = Role.find_by_name('owner') | ||
| 117 | + @user.person.affiliate(@user.person, [owner_role]) if owner_role | ||
| 118 | + invitation = Task.find_by_code(@invitation_code) | ||
| 119 | + if invitation | ||
| 120 | + invitation.update_attributes!({:friend => @user.person}) | ||
| 121 | + invitation.finish | ||
| 122 | + end | ||
| 123 | + if @user.activated? | ||
| 124 | + self.current_user = @user | ||
| 125 | + go_to_signup_initial_page | ||
| 126 | + else | ||
| 127 | + @register_pending = true | ||
| 127 | end | 128 | end |
| 128 | end | 129 | end |
| 129 | end | 130 | end |
app/models/create_user.rb
| 1 | class CreateUser < Task | 1 | class CreateUser < Task |
| 2 | 2 | ||
| 3 | - settings_items :email, :type => String | 3 | + settings_items :user_id, :type => String |
| 4 | settings_items :name, :type => String | 4 | settings_items :name, :type => String |
| 5 | settings_items :author_name, :type => String | 5 | settings_items :author_name, :type => String |
| 6 | - settings_items :person_data, :type => String | 6 | + settings_items :email, :type => String |
| 7 | 7 | ||
| 8 | after_create :schedule_spam_checking | 8 | after_create :schedule_spam_checking |
| 9 | 9 | ||
| 10 | alias :environment :target | 10 | alias :environment :target |
| 11 | alias :environment= :target= | 11 | alias :environment= :target= |
| 12 | 12 | ||
| 13 | - DATA_FIELDS = Person.fields + ['name', 'email', 'login', 'author_name', 'password', 'password_confirmation'] | ||
| 14 | - DATA_FIELDS.each do |field| | ||
| 15 | - settings_items field.to_sym | ||
| 16 | - end | ||
| 17 | - | ||
| 18 | def schedule_spam_checking | 13 | def schedule_spam_checking |
| 19 | self.delay.check_for_spam | 14 | self.delay.check_for_spam |
| 20 | end | 15 | end |
| @@ -26,13 +21,8 @@ class CreateUser < Task | @@ -26,13 +21,8 @@ class CreateUser < Task | ||
| 26 | end | 21 | end |
| 27 | 22 | ||
| 28 | def perform | 23 | def perform |
| 29 | - user = User.new(user_data) | ||
| 30 | - user.person = Person.new(person_data) | ||
| 31 | - user.person.identifier = user.login | ||
| 32 | - author_name = user.name | ||
| 33 | - user.environment = self.environment | ||
| 34 | - user.person.environment = user.environment | ||
| 35 | - user.signup! | 24 | + user=User.find_by_id(user_id) |
| 25 | + user.activate | ||
| 36 | end | 26 | end |
| 37 | 27 | ||
| 38 | def title | 28 | def title |
| @@ -66,13 +56,4 @@ class CreateUser < Task | @@ -66,13 +56,4 @@ class CreateUser < Task | ||
| 66 | _("User \"%{user}\" just requested to register. You have to approve or reject it through the \"Pending Validations\" section in your control panel.\n") % { :user => self.name } | 56 | _("User \"%{user}\" just requested to register. You have to approve or reject it through the \"Pending Validations\" section in your control panel.\n") % { :user => self.name } |
| 67 | end | 57 | end |
| 68 | 58 | ||
| 69 | - protected | ||
| 70 | - | ||
| 71 | - def user_data | ||
| 72 | - user_data = self.data.reject do |key, value| | ||
| 73 | - !DATA_FIELDS.include?(key.to_s) | ||
| 74 | - end | ||
| 75 | - | ||
| 76 | - user_data | ||
| 77 | - end | ||
| 78 | end | 59 | end |
| 79 | \ No newline at end of file | 60 | \ No newline at end of file |