X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/2fc9c8c05bfa4878d0a42d7b9238db67cee2805c..64747f760422a6ba17b04fd0da65cc48e661cbef:/app/controllers/user_controller.rb diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index ce0122957..a086c9f69 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -38,6 +38,8 @@ class UserController < ApplicationController else render :action => 'terms' end + elsif params[:user] and Acl.no_account_creation(request.remote_ip, params[:user][:email].split("@").last) + render :action => 'blocked' else session[:referer] = params[:referer] @@ -79,9 +81,7 @@ class UserController < ApplicationController def save @title = t 'user.new.title' - if Acl.address(request.remote_ip).where(:k => "no_account_creation").exists? - render :action => 'new' - elsif params[:decline] + if params[:decline] if @user @user.terms_seen = true @@ -112,6 +112,8 @@ class UserController < ApplicationController else redirect_to :action => :account, :display_name => @user.display_name end + elsif Acl.no_account_creation(request.remote_ip, params[:user][:email].split("@").last) + render :action => 'blocked' else @user = User.new(params[:user]) @@ -149,7 +151,11 @@ class UserController < ApplicationController @user.pass_crypt_confirmation = params[:user][:pass_crypt_confirmation] end - @user.description = params[:user][:description] + if params[:user][:description] != @user.description + @user.description = params[:user][:description] + @user.description_format = "markdown" + end + @user.languages = params[:user][:languages].split(",") case params[:image_action] @@ -201,7 +207,15 @@ class UserController < ApplicationController @title = t 'user.lost_password.title' if params[:user] and params[:user][:email] - user = User.visible.where(:email => params[:user][:email]).first + user = User.visible.find_by_email(params[:user][:email]) + + if user.nil? + users = User.visible.where("LOWER(email) = LOWER(?)", params[:user][:email]) + + if users.count == 1 + user = users.first + end + end if user token = user.tokens.create @@ -261,6 +275,8 @@ class UserController < ApplicationController :openid_url => params[:openid]) flash.now[:notice] = t 'user.new.openid association' + elsif Acl.no_account_creation(request.remote_ip) + render :action => 'blocked' end end @@ -274,6 +290,8 @@ class UserController < ApplicationController else password_authentication(params[:username], params[:password]) end + elsif params[:notice] + flash.now[:notice] = t "user.login.notice_#{params[:notice]}" elsif flash[:notice].nil? flash.now[:notice] = t 'user.login.notice' end @@ -459,7 +477,8 @@ class UserController < ApplicationController ## # sets a user's status def set_status - @this_user.update_attributes(:status => params[:status]) + @this_user.status = params[:status] + @this_user.save redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name] end @@ -502,8 +521,7 @@ private elsif user = User.authenticate(:username => username, :password => password, :pending => true) failed_login t('user.login.account not active', :reconfirm => url_for(:action => 'confirm_resend', :display_name => user.display_name)) elsif User.authenticate(:username => username, :password => password, :suspended => true) - webmaster = link_to t('user.login.webmaster'), "mailto:webmaster@openstreetmap.org" - failed_login t('user.login.account suspended', :webmaster => webmaster) + failed_login t('user.login.account is suspended', :webmaster => "mailto:webmaster@openstreetmap.org") else failed_login t('user.login.auth failure') end @@ -536,8 +554,7 @@ private when "active", "confirmed" then successful_login(user) when "suspended" then - webmaster = link_to t('user.login.webmaster'), "mailto:webmaster@openstreetmap.org" - failed_login t('user.login.account suspended', :webmaster => webmaster) + failed_login t('user.login.account is suspended', :webmaster => "mailto:webmaster@openstreetmap.org") else failed_login t('user.login.auth failure') end @@ -612,7 +629,7 @@ private cookies.permanent["_osm_username"] = user.display_name session[:user] = user.id - session_expires_after 1.month if session[:remember_me] + session_expires_after 28.days if session[:remember_me] target = session[:referer] || url_for(:controller => :site, :action => :index) @@ -651,6 +668,8 @@ private if user.save set_locale + cookies.permanent["_osm_username"] = user.display_name + if user.new_email.blank? flash.now[:notice] = t 'user.account.flash update success' else @@ -703,7 +722,7 @@ private # Choose the layout to use. See # https://rails.lighthouseapp.com/projects/8994/tickets/5371-layout-with-onlyexcept-options-makes-other-actions-render-without-layouts def choose_layout - oauth_url = url_for(:controller => :oauth, :action => :oauthorize, :only_path => true) + oauth_url = url_for(:controller => :oauth, :action => :authorize, :only_path => true) if [ 'api_details' ].include? action_name nil