From: Andy Allan Date: Fri, 28 Jul 2017 11:42:33 +0000 (+0100) Subject: Merge pull request #1597 from tomhughes/current-user X-Git-Tag: live~3309 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/aa821971ddea3b2d5dce337728c624bd4b14b298?hp=555a821c3e1b79093b63b96e981c4766cf43baa9 Merge pull request #1597 from tomhughes/current-user Complete @user to current_user transition --- diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a367a1b0a..68fc4338e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -5,6 +5,7 @@ class ApplicationController < ActionController::Base before_action :fetch_body + attr_accessor :current_user helper_method :current_user def authorize_web @@ -468,16 +469,6 @@ class ApplicationController < ActionController::Base [user, pass] end - # used to get the current logged in user - def current_user - @user - end - - # used to set the current logged in user - def current_user=(user) - @user = user - end - # override to stop oauth plugin sending errors def invalid_oauth_response; end end diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index ea6e1a8d5..d3ed53c1b 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -220,6 +220,8 @@ class UserController < ApplicationController flash.now[:notice] = render_to_string :partial => "auth_association" else check_signup_allowed + + self.current_user = User.new end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c5b08e515..d27b47f27 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -21,12 +21,12 @@ module ApplicationHelper css = "" css << ".hidden { display: none !important }" - css << ".hide_unless_logged_in { display: none !important }" unless @user - css << ".hide_if_logged_in { display: none !important }" if @user - css << ".hide_if_user_#{@user.id} { display: none !important }" if @user - css << ".show_if_user_#{@user.id} { display: inline !important }" if @user - css << ".hide_unless_administrator { display: none !important }" unless @user && @user.administrator? - css << ".hide_unless_moderator { display: none !important }" unless @user && @user.moderator? + css << ".hide_unless_logged_in { display: none !important }" unless current_user + css << ".hide_if_logged_in { display: none !important }" if current_user + css << ".hide_if_user_#{current_user.id} { display: none !important }" if current_user + css << ".show_if_user_#{current_user.id} { display: inline !important }" if current_user + css << ".hide_unless_administrator { display: none !important }" unless current_user && current_user.administrator? + css << ".hide_unless_moderator { display: none !important }" unless current_user && current_user.moderator? content_tag(:style, css, :type => "text/css") end @@ -107,11 +107,11 @@ module ApplicationHelper :preferred_editor => preferred_editor } - if @user - data[:user] = @user.id.to_json + if current_user + data[:user] = current_user.id.to_json - unless @user.home_lon.nil? || @user.home_lat.nil? - data[:user_home] = { :lat => @user.home_lat, :lon => @user.home_lon } + unless current_user.home_lon.nil? || current_user.home_lat.nil? + data[:user_home] = { :lat => current_user.home_lat, :lon => current_user.home_lon } end end diff --git a/app/helpers/user_roles_helper.rb b/app/helpers/user_roles_helper.rb index 7093a96b2..805abb58f 100644 --- a/app/helpers/user_roles_helper.rb +++ b/app/helpers/user_roles_helper.rb @@ -6,7 +6,7 @@ module UserRolesHelper end def role_icon(user, role) - if @user && @user.administrator? + if current_user && current_user.administrator? if user.has_role?(role) image = "roles/#{role}" alt = t("user.view.role.revoke.#{role}") diff --git a/app/views/user/account.html.erb b/app/views/user/account.html.erb index ab74e3780..2e7f68d9d 100644 --- a/app/views/user/account.html.erb +++ b/app/views/user/account.html.erb @@ -10,8 +10,8 @@ <% end %> -<%= error_messages_for 'user' %> -<%= form_for :user, :html => { :multipart => true, :id => 'accountForm', :class => 'standard-form', :autocomplete => :off } do |f| %> +<%= error_messages_for current_user %> +<%= form_for current_user, :html => { :multipart => true, :id => 'accountForm', :class => 'standard-form', :autocomplete => :off } do |f| %>
@@ -92,7 +92,7 @@
- <%= richtext_area :user, :description, :cols => 80, :rows => 20 %> + <%= richtext_area :user, :description, :object => current_user, :cols => 80, :rows => 20 %>
diff --git a/app/views/user/new.html.erb b/app/views/user/new.html.erb index fcd775a48..5a207060e 100644 --- a/app/views/user/new.html.erb +++ b/app/views/user/new.html.erb @@ -8,7 +8,7 @@
<% end %> -<%= form_for :user, :url => { :action => 'create' }, :html => { :class => 'standard-form fillL col6 inner22' } do %> +<%= form_for current_user, :url => { :action => 'create' }, :html => { :class => 'standard-form fillL col6 inner22' } do |f| %> <%= hidden_field_tag('referer', h(@referer)) unless @referer.nil? %>
@@ -16,15 +16,15 @@ - <%= email_field(:user, :email, { :tabindex => 1 }) %> - <%= error_message_on(:user, :email) %> + <%= f.email_field(:email, { :tabindex => 1 }) %> + <%= f.error_message_on(:email) %>
- <%= email_field(:user, :email_confirmation, { :tabindex => 2 }) %> - <%= error_message_on(:user, :email_confirmation) %> + <%= f.email_field(:email_confirmation, { :tabindex => 2 }) %> + <%= f.error_message_on(:email_confirmation) %>
<%= raw(t 'user.new.not displayed publicly') %>
@@ -34,8 +34,8 @@ - <%= text_field(:user, :display_name, { :tabindex => 3 }) %> - <%= error_message_on(:user, :display_name) %> + <%= f.text_field(:display_name, { :tabindex => 3 }) %> + <%= f.error_message_on(:display_name) %>
<%= t 'user.new.display name description' %>
@@ -45,9 +45,9 @@ - <%= select(:user, :auth_provider, Auth::PROVIDERS, { :default => "", :tabindex => 4 }) %> - <%= text_field(:user, :auth_uid, { :tabindex => 5 }) %> - <%= error_message_on(:user, :auth_uid) %> + <%= f.select(:auth_provider, Auth::PROVIDERS, { :default => "", :tabindex => 4 }) %> + <%= f.text_field(:auth_uid, { :tabindex => 5 }) %> + <%= f.error_message_on(:auth_uid) %> <%= t 'user.new.auth no password' %> @@ -57,15 +57,15 @@ - <%= password_field(:user, :pass_crypt, { :tabindex => 6 }) %> - <%= error_message_on(:user, :pass_crypt) %> + <%= f.password_field(:pass_crypt, { :tabindex => 6 }) %> + <%= f.error_message_on(:pass_crypt) %>
- <%= password_field(:user, :pass_crypt_confirmation, { :tabindex => 7 }) %> - <%= error_message_on(:user, :pass_crypt_confirmation) %> + <%= f.password_field(:pass_crypt_confirmation, { :tabindex => 7 }) %> + <%= f.error_message_on(:pass_crypt_confirmation) %>
diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index 720113e65..d1c41d62c 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -1,6 +1,8 @@ require "test_helper" class ApplicationHelperTest < ActionView::TestCase + attr_accessor :current_user + def setup I18n.locale = "en" end @@ -46,7 +48,7 @@ class ApplicationHelperTest < ActionView::TestCase end def test_style_rules - @user = nil + self.current_user = nil css = style_rules assert_match /\.hidden /, css @@ -57,36 +59,36 @@ class ApplicationHelperTest < ActionView::TestCase assert_match /\.hide_unless_administrator /, css assert_match /\.hide_unless_moderator /, css - @user = create(:user) + self.current_user = create(:user) css = style_rules assert_match /\.hidden /, css assert_no_match /\.hide_unless_logged_in /, css assert_match /\.hide_if_logged_in /, css - assert_match /\.hide_if_user_#{@user.id} /, css - assert_match /\.show_if_user_#{@user.id} /, css + assert_match /\.hide_if_user_#{current_user.id} /, css + assert_match /\.show_if_user_#{current_user.id} /, css assert_match /\.hide_unless_administrator /, css assert_match /\.hide_unless_moderator /, css - @user = create(:moderator_user) + self.current_user = create(:moderator_user) css = style_rules assert_match /\.hidden /, css assert_no_match /\.hide_unless_logged_in /, css assert_match /\.hide_if_logged_in /, css - assert_match /\.hide_if_user_#{@user.id} /, css - assert_match /\.show_if_user_#{@user.id} /, css + assert_match /\.hide_if_user_#{current_user.id} /, css + assert_match /\.show_if_user_#{current_user.id} /, css assert_match /\.hide_unless_administrator /, css assert_no_match /\.hide_unless_moderator /, css - @user = create(:administrator_user) + self.current_user = create(:administrator_user) css = style_rules assert_match /\.hidden /, css assert_no_match /\.hide_unless_logged_in /, css assert_match /\.hide_if_logged_in /, css - assert_match /\.hide_if_user_#{@user.id} /, css - assert_match /\.show_if_user_#{@user.id} /, css + assert_match /\.hide_if_user_#{current_user.id} /, css + assert_match /\.show_if_user_#{current_user.id} /, css assert_no_match /\.hide_unless_administrator /, css assert_match /\.hide_unless_moderator /, css end diff --git a/test/helpers/user_roles_helper_test.rb b/test/helpers/user_roles_helper_test.rb index 880c16e59..3ffc9fbff 100644 --- a/test/helpers/user_roles_helper_test.rb +++ b/test/helpers/user_roles_helper_test.rb @@ -1,11 +1,12 @@ require "test_helper" class UserRolesHelperTest < ActionView::TestCase + attr_accessor :current_user + def test_role_icon_normal - user = create(:user) - @user = user + self.current_user = create(:user) - icon = role_icon(user, "moderator") + icon = role_icon(current_user, "moderator") assert_dom_equal "", icon icon = role_icon(create(:moderator_user), "moderator") @@ -13,7 +14,7 @@ class UserRolesHelperTest < ActionView::TestCase end def test_role_icon_administrator - @user = create(:administrator_user) + self.current_user = create(:administrator_user) user = create(:user) icon = role_icon(user, "moderator") @@ -25,10 +26,9 @@ class UserRolesHelperTest < ActionView::TestCase end def test_role_icons_normal - user = create(:user) - @user = user + self.current_user = create(:user) - icons = role_icons(user) + icons = role_icons(current_user) assert_dom_equal " ", icons icons = role_icons(create(:moderator_user)) @@ -39,7 +39,7 @@ class UserRolesHelperTest < ActionView::TestCase end def test_role_icons_administrator - @user = create(:administrator_user) + self.current_user = create(:administrator_user) user = create(:user) icons = role_icons(user)