2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 20:45:44 +00:00

stop failure message from appearing when in MFA flow

This commit is contained in:
Matthias Mair
2024-12-26 18:10:52 +01:00
parent d701182d52
commit 7bfdc86799
3 changed files with 12 additions and 6 deletions

View File

@ -50,7 +50,7 @@ export function AuthenticationForm() {
classicForm.values.password, classicForm.values.password,
navigate navigate
) )
.then(() => { .then((success) => {
setIsLoggingIn(false); setIsLoggingIn(false);
if (isLoggedIn()) { if (isLoggedIn()) {
@ -59,6 +59,8 @@ export function AuthenticationForm() {
message: t`Logged in successfully` message: t`Logged in successfully`
}); });
followRedirect(navigate, location?.state); followRedirect(navigate, location?.state);
} else if (success) {
// MFA login
} else { } else {
showLoginNotification({ showLoginNotification({
title: t`Login failed`, title: t`Login failed`,

View File

@ -75,7 +75,8 @@ export const doBasicLogin = async (
const login_url = apiUrl(ApiEndpoints.user_login); const login_url = apiUrl(ApiEndpoints.user_login);
let result = false; let loginDone = false;
let success = false;
// Attempt login with // Attempt login with
await api await api
@ -93,7 +94,8 @@ export const doBasicLogin = async (
if (response.status == 200 && response.data?.meta?.is_authenticated) { if (response.status == 200 && response.data?.meta?.is_authenticated) {
setSession(response.data.meta.session_token); setSession(response.data.meta.session_token);
setToken(response.data.meta.access_token); setToken(response.data.meta.access_token);
result = true; loginDone = true;
success = true;
} }
}) })
.catch((err) => { .catch((err) => {
@ -103,17 +105,19 @@ export const doBasicLogin = async (
); );
if (mfa_flow && mfa_flow.is_pending == true) { if (mfa_flow && mfa_flow.is_pending == true) {
setSession(err.response.data.meta.session_token); setSession(err.response.data.meta.session_token);
success = true;
navigate('/mfa'); navigate('/mfa');
} }
} }
}); });
if (result) { if (loginDone) {
await fetchUserState(); await fetchUserState();
fetchGlobalStates(); fetchGlobalStates();
} else { } else {
clearUserState(); clearUserState();
} }
return success;
}; };
/** /**

View File

@ -17,7 +17,7 @@ export interface UserStateProps {
setToken: (newToken: string) => void; setToken: (newToken: string) => void;
clearToken: () => void; clearToken: () => void;
session: string | undefined; session: string | undefined;
setSession: (newSession: string) => void; setSession: (newSession: string | undefined) => void;
fetchUserToken: () => void; fetchUserToken: () => void;
fetchUserState: () => void; fetchUserState: () => void;
clearUserState: () => void; clearUserState: () => void;
@ -54,7 +54,7 @@ export const useUserState = create<UserStateProps>((set, get) => ({
setApiDefaults(); setApiDefaults();
}, },
session: undefined, session: undefined,
setSession: (newSession: string) => { setSession: (newSession: string | undefined) => {
set({ session: newSession }); set({ session: newSession });
}, },
userId: () => { userId: () => {