mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: redirect to sso_destination_url after account activation
This commit is contained in:
parent
b10c684459
commit
0402e97368
@ -77,6 +77,7 @@ class SessionController < ApplicationController
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
session[:sso_payload] = request.query_string
|
session[:sso_payload] = request.query_string
|
||||||
|
cookies[:sso_destination_url] = sso.to_url(sso.return_sso_url)
|
||||||
redirect_to path('/login')
|
redirect_to path('/login')
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -667,13 +667,10 @@ class UsersController < ApplicationController
|
|||||||
|
|
||||||
@custom_body_class = "static-account-created"
|
@custom_body_class = "static-account-created"
|
||||||
@message = session['user_created_message'] || I18n.t('activation.missing_session')
|
@message = session['user_created_message'] || I18n.t('activation.missing_session')
|
||||||
@account_created = {
|
@account_created = { message: @message, show_controls: false }
|
||||||
message: @message,
|
|
||||||
show_controls: false
|
|
||||||
}
|
|
||||||
|
|
||||||
if session_user_id = session[SessionController::ACTIVATE_USER_KEY]
|
if session_user_id = session[SessionController::ACTIVATE_USER_KEY]
|
||||||
if user = User.where(id: session_user_id.to_i).first
|
if user = User.find_by(id: session_user_id.to_i)
|
||||||
@account_created[:username] = user.username
|
@account_created[:username] = user.username
|
||||||
@account_created[:email] = user.email
|
@account_created[:email] = user.email
|
||||||
@account_created[:show_controls] = !user.from_staged?
|
@account_created[:show_controls] = !user.from_staged?
|
||||||
@ -696,8 +693,8 @@ class UsersController < ApplicationController
|
|||||||
|
|
||||||
def perform_account_activation
|
def perform_account_activation
|
||||||
raise Discourse::InvalidAccess.new if honeypot_or_challenge_fails?(params)
|
raise Discourse::InvalidAccess.new if honeypot_or_challenge_fails?(params)
|
||||||
if @user = EmailToken.confirm(params[:token])
|
|
||||||
|
|
||||||
|
if @user = EmailToken.confirm(params[:token])
|
||||||
# Log in the user unless they need to be approved
|
# Log in the user unless they need to be approved
|
||||||
if Guardian.new(@user).can_access_forum?
|
if Guardian.new(@user).can_access_forum?
|
||||||
@user.enqueue_welcome_message('welcome_user') if @user.send_welcome_message
|
@user.enqueue_welcome_message('welcome_user') if @user.send_welcome_message
|
||||||
@ -708,6 +705,9 @@ class UsersController < ApplicationController
|
|||||||
elsif destination_url = cookies[:destination_url]
|
elsif destination_url = cookies[:destination_url]
|
||||||
cookies[:destination_url] = nil
|
cookies[:destination_url] = nil
|
||||||
return redirect_to(destination_url)
|
return redirect_to(destination_url)
|
||||||
|
elsif sso_destination_url = cookies[:sso_destination_url]
|
||||||
|
cookies[:sso_destination_url] = nil
|
||||||
|
return redirect_to(sso_destination_url)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@needs_approval = true
|
@needs_approval = true
|
||||||
|
@ -17,26 +17,18 @@
|
|||||||
|
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
(function() {
|
(function() {
|
||||||
function activateAccount() {
|
setTimeout(function() {
|
||||||
$('#activate-account-button').prop('disabled', true);
|
var $activateButton = $('#activate-account-button');
|
||||||
$.ajax("<%= path "/u/hp" %>").then(function(hp) {
|
$activateButton.on('click', function() {
|
||||||
$('#password_confirmation').val(hp.value);
|
$activateButton.prop('disabled', true);
|
||||||
$('#challenge').val(hp.challenge.split("").reverse().join(""));
|
$.ajax("<%= path "/u/hp" %>").then(function(hp) {
|
||||||
$('#activate-account-form').submit();
|
$('#password_confirmation').val(hp.value);
|
||||||
}).fail(function() {
|
$('#challenge').val(hp.challenge.split("").reverse().join(""));
|
||||||
$('#activate-account-button').prop('disabled', false);
|
$('#activate-account-form').submit();
|
||||||
|
}).fail(function() {
|
||||||
|
$activateButton.prop('disabled', false);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}, 50);
|
||||||
|
|
||||||
var t0 = new Date().getTime();
|
|
||||||
$('#activate-account-button').on('click', function() {
|
|
||||||
var diff = new Date().getTime() - t0;
|
|
||||||
|
|
||||||
// Ensure the form has been visible for a few ms before allowing the
|
|
||||||
// user to submit.
|
|
||||||
if (diff > 50) {
|
|
||||||
activateAccount();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user