X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2f0ed542062ddd592238e7a74ca0da2c1291f1b7..e37a9ec0b52ead11543660ca45fee33c7f7bb1d7:/app/controllers/user_controller.rb?ds=inline
diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb
index c8603afec..6935af3bc 100644
--- a/app/controllers/user_controller.rb
+++ b/app/controllers/user_controller.rb
@@ -77,6 +77,7 @@ class UserController < ApplicationController
if @user.save
flash[:notice] = t 'user.new.flash create success message', :email => @user.email
Notifier.deliver_signup_confirm(@user, @user.tokens.create(:referer => params[:referer]))
+ session[:token] = @user.tokens.create.token
redirect_to :action => 'login'
else
render :action => 'new'
@@ -108,6 +109,12 @@ class UserController < ApplicationController
@user.home_lat = params[:user][:home_lat]
@user.home_lon = params[:user][:home_lon]
+ if params[:user][:preferred_editor] == "default"
+ @user.preferred_editor = nil
+ else
+ @user.preferred_editor = params[:user][:preferred_editor]
+ end
+
if @user.save
set_locale
@@ -264,14 +271,29 @@ class UserController < ApplicationController
user.save!
referer = token.referer
token.destroy
- session[:user] = user.id
- unless referer.nil?
+ if session[:token]
+ token = UserToken.find_by_token(session[:token])
+ session.delete(:token)
+ else
+ token = nil
+ end
+
+ if token.nil? or token.user != user
flash[:notice] = t('user.confirm.success')
- redirect_to referer
+ redirect_to :action => :login, :referer => referer
else
- flash[:notice] = t('user.confirm.success') + "
" + t('user.confirm.before you start')
- redirect_to :action => 'account', :display_name => user.display_name
+ token.destroy
+
+ session[:user] = user.id
+
+ if referer.nil?
+ flash[:notice] = t('user.confirm.success') + "
" + t('user.confirm.before you start')
+ redirect_to :action => :account, :display_name => user.display_name
+ else
+ flash[:notice] = t('user.confirm.success')
+ redirect_to referer
+ end
end
end
else