mirror of
https://github.com/ansible/awx.git
synced 2026-03-04 18:21:03 -03:30
Merge pull request #10859 from nixocio/ui_issue_warning_session
Remove warning for SSO session when logging in
This commit is contained in:
@@ -6,6 +6,7 @@ import React, {
|
|||||||
useCallback,
|
useCallback,
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
|
import { DateTime } from 'luxon';
|
||||||
import { RootAPI, MeAPI } from 'api';
|
import { RootAPI, MeAPI } from 'api';
|
||||||
import { isAuthenticated } from 'util/auth';
|
import { isAuthenticated } from 'util/auth';
|
||||||
import { SESSION_TIMEOUT_KEY } from '../constants';
|
import { SESSION_TIMEOUT_KEY } from '../constants';
|
||||||
@@ -66,8 +67,8 @@ SessionContext.displayName = 'SessionContext';
|
|||||||
function SessionProvider({ children }) {
|
function SessionProvider({ children }) {
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const isSessionExpired = useRef(false);
|
const isSessionExpired = useRef(false);
|
||||||
const sessionTimeoutId = useRef();
|
const sessionTimeoutId = useRef(null);
|
||||||
const sessionIntervalId = useRef();
|
const sessionIntervalId = useRef(null);
|
||||||
const [sessionTimeout, setSessionTimeout] = useStorage(SESSION_TIMEOUT_KEY);
|
const [sessionTimeout, setSessionTimeout] = useStorage(SESSION_TIMEOUT_KEY);
|
||||||
const [sessionCountdown, setSessionCountdown] = useState(0);
|
const [sessionCountdown, setSessionCountdown] = useState(0);
|
||||||
const [authRedirectTo, setAuthRedirectTo] = useState('/');
|
const [authRedirectTo, setAuthRedirectTo] = useState('/');
|
||||||
@@ -89,8 +90,15 @@ function SessionProvider({ children }) {
|
|||||||
return () => {};
|
return () => {};
|
||||||
}
|
}
|
||||||
|
|
||||||
const calcRemaining = () =>
|
const calcRemaining = () => {
|
||||||
parseInt(sessionTimeout, 10) - new Date().getTime();
|
if (sessionTimeout) {
|
||||||
|
return Math.max(
|
||||||
|
parseInt(sessionTimeout, 10) - DateTime.now().toMillis(),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
const handleSessionTimeout = () => {
|
const handleSessionTimeout = () => {
|
||||||
let countDown = SESSION_WARNING_DURATION;
|
let countDown = SESSION_WARNING_DURATION;
|
||||||
@@ -110,10 +118,12 @@ function SessionProvider({ children }) {
|
|||||||
clearTimeout(sessionTimeoutId.current);
|
clearTimeout(sessionTimeoutId.current);
|
||||||
clearInterval(sessionIntervalId.current);
|
clearInterval(sessionIntervalId.current);
|
||||||
|
|
||||||
|
const calcTimeOut = calcRemaining() - SESSION_WARNING_DURATION * 1000;
|
||||||
|
|
||||||
isSessionExpired.current = false;
|
isSessionExpired.current = false;
|
||||||
sessionTimeoutId.current = setTimeout(
|
sessionTimeoutId.current = setTimeout(
|
||||||
handleSessionTimeout,
|
handleSessionTimeout,
|
||||||
Math.min(calcRemaining() - SESSION_WARNING_DURATION * 1000, MAX_TIMEOUT)
|
calcTimeOut <= 0 ? MAX_TIMEOUT : Math.min(calcTimeOut, MAX_TIMEOUT)
|
||||||
);
|
);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user