Avoid putting ActionController::Parameters objects in the session
This commit is contained in:
parent
6be336db00
commit
d6da1499fc
2 changed files with 10 additions and 8 deletions
|
@ -35,17 +35,19 @@ class AccountsController < ApplicationController
|
||||||
:form_action => %w[accounts.google.com *.facebook.com login.live.com github.com meta.wikimedia.org]
|
:form_action => %w[accounts.google.com *.facebook.com login.live.com github.com meta.wikimedia.org]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
user_params = params.require(:user).permit(:display_name, :new_email, :pass_crypt, :pass_crypt_confirmation, :auth_provider)
|
||||||
|
|
||||||
if params[:user][:auth_provider].blank? ||
|
if params[:user][:auth_provider].blank? ||
|
||||||
(params[:user][:auth_provider] == current_user.auth_provider &&
|
(params[:user][:auth_provider] == current_user.auth_provider &&
|
||||||
params[:user][:auth_uid] == current_user.auth_uid)
|
params[:user][:auth_uid] == current_user.auth_uid)
|
||||||
update_user(current_user, params)
|
update_user(current_user, user_params)
|
||||||
if current_user.errors.count.zero?
|
if current_user.errors.count.zero?
|
||||||
redirect_to edit_account_path
|
redirect_to edit_account_path
|
||||||
else
|
else
|
||||||
render :edit
|
render :edit
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
session[:new_user_settings] = params
|
session[:new_user_settings] = user_params.to_h
|
||||||
redirect_to auth_url(params[:user][:auth_provider], params[:user][:auth_uid]), :status => :temporary_redirect
|
redirect_to auth_url(params[:user][:auth_provider], params[:user][:auth_uid]), :status => :temporary_redirect
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,15 +6,15 @@ module UserMethods
|
||||||
##
|
##
|
||||||
# update a user's details
|
# update a user's details
|
||||||
def update_user(user, params)
|
def update_user(user, params)
|
||||||
user.display_name = params[:user][:display_name]
|
user.display_name = params[:display_name]
|
||||||
user.new_email = params[:user][:new_email]
|
user.new_email = params[:new_email]
|
||||||
|
|
||||||
unless params[:user][:pass_crypt].empty? && params[:user][:pass_crypt_confirmation].empty?
|
unless params[:pass_crypt].empty? && params[:pass_crypt_confirmation].empty?
|
||||||
user.pass_crypt = params[:user][:pass_crypt]
|
user.pass_crypt = params[:pass_crypt]
|
||||||
user.pass_crypt_confirmation = params[:user][:pass_crypt_confirmation]
|
user.pass_crypt_confirmation = params[:pass_crypt_confirmation]
|
||||||
end
|
end
|
||||||
|
|
||||||
if params[:user][:auth_provider].nil? || params[:user][:auth_provider].blank?
|
if params[:auth_provider].nil? || params[:auth_provider].blank?
|
||||||
user.auth_provider = nil
|
user.auth_provider = nil
|
||||||
user.auth_uid = nil
|
user.auth_uid = nil
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue