Ajout d'une redirection automatique sur la page "referer" en cas de
perte de session
This commit is contained in:
parent
44182fd1cd
commit
fbb2b3f8da
|
@ -1,9 +1,11 @@
|
||||||
import { GiteaUnauthorizedError } from "../../util/gitea";
|
import { GiteaUnauthorizedError } from "../../util/gitea";
|
||||||
import { put } from 'redux-saga/effects';
|
import { put } from 'redux-saga/effects';
|
||||||
import { logout } from '../actions/logout';
|
import { logout } from '../actions/logout';
|
||||||
|
import { saveReferer } from "../../util/referer";
|
||||||
|
|
||||||
export function* failuresSaga(action) {
|
export function* failuresSaga(action) {
|
||||||
if (action.error instanceof GiteaUnauthorizedError) {
|
if (action.error instanceof GiteaUnauthorizedError) {
|
||||||
|
saveReferer();
|
||||||
yield put(logout());
|
yield put(logout());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import { hasReferer, getReferer, clearReferer } from '../../util/referer';
|
||||||
|
|
||||||
|
export function* navigateToRefererSaga() {
|
||||||
|
if (!hasReferer()) return;
|
||||||
|
const referer = getReferer();
|
||||||
|
console.log("Redirecting to referer", referer);
|
||||||
|
clearReferer();
|
||||||
|
window.location.hash = referer;
|
||||||
|
}
|
|
@ -10,9 +10,11 @@ import { LOGOUT_REQUEST, LOGOUT_SUCCESS } from '../actions/logout';
|
||||||
import { logoutSaga, logoutSuccessSaga } from './logout';
|
import { logoutSaga, logoutSuccessSaga } from './logout';
|
||||||
import { BUILD_KANBOARD_REQUEST, MOVE_CARD } from '../actions/kanboards';
|
import { BUILD_KANBOARD_REQUEST, MOVE_CARD } from '../actions/kanboards';
|
||||||
import { buildKanboardSaga, moveCardSaga, refreshKanboardSaga } from './kanboards';
|
import { buildKanboardSaga, moveCardSaga, refreshKanboardSaga } from './kanboards';
|
||||||
|
import { navigateToRefererSaga } from './referer';
|
||||||
|
|
||||||
export function* rootSaga() {
|
export function* rootSaga() {
|
||||||
yield all([
|
yield all([
|
||||||
|
navigateToRefererSaga(),
|
||||||
takeEvery(patternFromRegExp(/^.*_FAILURE/), failuresSaga),
|
takeEvery(patternFromRegExp(/^.*_FAILURE/), failuresSaga),
|
||||||
takeLatest(FETCH_BOARDS_REQUEST, fetchBoardsSaga),
|
takeLatest(FETCH_BOARDS_REQUEST, fetchBoardsSaga),
|
||||||
takeLatest(BUILD_KANBOARD_REQUEST, buildKanboardSaga),
|
takeLatest(BUILD_KANBOARD_REQUEST, buildKanboardSaga),
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
const localStorage = window.localStorage;
|
||||||
|
const refererKey = 'referer';
|
||||||
|
|
||||||
|
export function getReferer() {
|
||||||
|
return localStorage.getItem(refererKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function saveReferer() {
|
||||||
|
console.log("Saving referer", window.location.hash);
|
||||||
|
localStorage.setItem(refererKey, window.location.hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function hasReferer() {
|
||||||
|
return !!getReferer();
|
||||||
|
}
|
||||||
|
|
||||||
|
export function clearReferer() {
|
||||||
|
localStorage.removeItem(refererKey);
|
||||||
|
}
|
Loading…
Reference in New Issue