mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-17 05:55:00 +08:00
Redirect user home from auth screens if they are already logged in
This commit is contained in:
parent
6a3049b90f
commit
5b32287f3d
@ -116,6 +116,8 @@ export enum Views {
|
|||||||
SOFT_LOGOUT,
|
SOFT_LOGOUT,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const AUTH_SCREENS = ["register", "login", "forgot_password", "start_sso", "start_cas"];
|
||||||
|
|
||||||
// Actions that are redirected through the onboarding process prior to being
|
// Actions that are redirected through the onboarding process prior to being
|
||||||
// re-dispatched. NOTE: some actions are non-trivial and would require
|
// re-dispatched. NOTE: some actions are non-trivial and would require
|
||||||
// re-factoring to be included in this list in future.
|
// re-factoring to be included in this list in future.
|
||||||
@ -1546,6 +1548,14 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
showScreen(screen: string, params?: {[key: string]: any}) {
|
showScreen(screen: string, params?: {[key: string]: any}) {
|
||||||
|
const cli = MatrixClientPeg.get();
|
||||||
|
const isLoggedOutOrGuest = !cli || cli.isGuest();
|
||||||
|
if (!isLoggedOutOrGuest && AUTH_SCREENS.includes(screen)) {
|
||||||
|
// user is logged in and landing on an auth page which will uproot their session, redirect them home instead
|
||||||
|
dis.dispatch({ action: "view_home_page" });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (screen === 'register') {
|
if (screen === 'register') {
|
||||||
dis.dispatch({
|
dis.dispatch({
|
||||||
action: 'start_registration',
|
action: 'start_registration',
|
||||||
@ -1562,7 +1572,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
|||||||
params: params,
|
params: params,
|
||||||
});
|
});
|
||||||
} else if (screen === 'soft_logout') {
|
} else if (screen === 'soft_logout') {
|
||||||
if (MatrixClientPeg.get() && MatrixClientPeg.get().getUserId() && !Lifecycle.isSoftLogout()) {
|
if (cli.getUserId() && !Lifecycle.isSoftLogout()) {
|
||||||
// Logged in - visit a room
|
// Logged in - visit a room
|
||||||
this.viewLastRoom();
|
this.viewLastRoom();
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user