]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/users_controller.rb
Use a 307 Temporary Redirect to redirect to authentication
[rails.git] / app / controllers / users_controller.rb
index a1129339eb71d7e0d5fe14a34f9a014a5d4b2eee..121d050b58bec7392f31bfd6771ae83ffbd9620d 100644 (file)
@@ -123,7 +123,7 @@ class UsersController < ApplicationController
       :form_action => %w[accounts.google.com *.facebook.com login.live.com github.com meta.wikimedia.org]
     )
 
-    if params[:user] && params[:user][:display_name] && params[:user][:description]
+    if request.post?
       if params[:user][:auth_provider].blank? ||
          (params[:user][:auth_provider] == current_user.auth_provider &&
           params[:user][:auth_uid] == current_user.auth_uid)
@@ -131,7 +131,7 @@ class UsersController < ApplicationController
         redirect_to user_account_url(current_user) if current_user.errors.count.zero?
       else
         session[:new_user_settings] = params
-        redirect_to auth_url(params[:user][:auth_provider], params[:user][:auth_uid])
+        redirect_to auth_url(params[:user][:auth_provider], params[:user][:auth_uid]), :status => :temporary_redirect
       end
     elsif errors = session.delete(:user_errors)
       errors.each do |attribute, error|
@@ -151,7 +151,7 @@ class UsersController < ApplicationController
   def lost_password
     @title = t "users.lost_password.title"
 
-    if params[:email]
+    if request.post?
       user = User.visible.find_by(:email => params[:email])
 
       if user.nil?
@@ -270,9 +270,13 @@ class UsersController < ApplicationController
   end
 
   def login
+    append_content_security_policy_directives(
+      :form_action => %w[accounts.google.com *.facebook.com login.live.com github.com meta.wikimedia.org]
+    )
+
     session[:referer] = safe_referer(params[:referer]) if params[:referer]
 
-    if params[:username].present? && params[:password].present?
+    if request.post?
       session[:remember_me] ||= params[:remember_me]
       password_authentication(params[:username], params[:password])
     end