mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-24 08:57:03 -05:00
a50dfca667
Backport #25947 by @wolfogre
Since OAuth2 will callback the root URL, if the user starts signing in
from a wrong host, Gitea will return 500 because it cannot find the
session.
<details>
<summary>How to reproduce</summary>
<img width="901" alt="image"
src="https://github.com/go-gitea/gitea/assets/9418365/2c2e255c-e13e-4a11-9be7-b226bee54920">
<img width="1014" alt="image"
src="https://github.com/go-gitea/gitea/assets/9418365/b31cfcf6-a320-483d-9ce5-ba8562f065e1">
</details>
So show the mismatched ROOT_URL warning on the sign-in page if OAuth2 is
enabled.
<img width="1015" alt="image"
src="https://github.com/go-gitea/gitea/assets/9418365/99e80b17-c790-49a3-bbf2-2bd9396a7daa">
Co-authored-by: Jason Song <i@wolfogre.com>
(cherry picked from commit 037a3f0d8c
)
50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
import $ from 'jquery';
|
|
import {checkAppUrl} from './common-global.js';
|
|
|
|
export function initUserAuthOauth2() {
|
|
const outer = document.getElementById('oauth2-login-navigator');
|
|
if (!outer) return;
|
|
const inner = document.getElementById('oauth2-login-navigator-inner');
|
|
|
|
checkAppUrl();
|
|
|
|
for (const link of outer.querySelectorAll('.oauth-login-link')) {
|
|
link.addEventListener('click', () => {
|
|
inner.classList.add('gt-invisible');
|
|
outer.classList.add('is-loading');
|
|
setTimeout(() => {
|
|
// recover previous content to let user try again
|
|
// usually redirection will be performed before this action
|
|
outer.classList.remove('is-loading');
|
|
inner.classList.remove('gt-invisible');
|
|
}, 5000);
|
|
});
|
|
}
|
|
}
|
|
|
|
export function initUserAuthLinkAccountView() {
|
|
const $lnkUserPage = $('.page-content.user.link-account');
|
|
if ($lnkUserPage.length === 0) {
|
|
return false;
|
|
}
|
|
|
|
const $signinTab = $lnkUserPage.find('.item[data-tab="auth-link-signin-tab"]');
|
|
const $signUpTab = $lnkUserPage.find('.item[data-tab="auth-link-signup-tab"]');
|
|
const $signInView = $lnkUserPage.find('.tab[data-tab="auth-link-signin-tab"]');
|
|
const $signUpView = $lnkUserPage.find('.tab[data-tab="auth-link-signup-tab"]');
|
|
|
|
$signUpTab.on('click', () => {
|
|
$signinTab.removeClass('active');
|
|
$signInView.removeClass('active');
|
|
$signUpTab.addClass('active');
|
|
$signUpView.addClass('active');
|
|
return false;
|
|
});
|
|
|
|
$signinTab.on('click', () => {
|
|
$signUpTab.removeClass('active');
|
|
$signUpView.removeClass('active');
|
|
$signinTab.addClass('active');
|
|
$signInView.addClass('active');
|
|
});
|
|
}
|