You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.8 KiB
TypeScript
126 lines
3.8 KiB
TypeScript
// Copyright (C) 2020 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { boundariesActions, BoundariesActionTypes } from 'actions/boundaries-actions';
|
|
import { AuthActions, AuthActionTypes } from 'actions/auth-actions';
|
|
import { AuthState } from './interfaces';
|
|
|
|
const defaultState: AuthState = {
|
|
initialized: false,
|
|
fetching: false,
|
|
user: null,
|
|
authActionsFetching: false,
|
|
authActionsInitialized: false,
|
|
allowChangePassword: false,
|
|
showChangePasswordDialog: false,
|
|
};
|
|
|
|
export default function (state = defaultState, action: AuthActions | boundariesActions): AuthState {
|
|
switch (action.type) {
|
|
case AuthActionTypes.AUTHORIZED_SUCCESS:
|
|
return {
|
|
...state,
|
|
initialized: true,
|
|
user: action.payload.user,
|
|
};
|
|
case AuthActionTypes.AUTHORIZED_FAILED:
|
|
return {
|
|
...state,
|
|
initialized: true,
|
|
};
|
|
case AuthActionTypes.LOGIN:
|
|
return {
|
|
...state,
|
|
fetching: true,
|
|
};
|
|
case AuthActionTypes.LOGIN_SUCCESS:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
user: action.payload.user,
|
|
};
|
|
case AuthActionTypes.LOGIN_FAILED:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
};
|
|
case AuthActionTypes.LOGOUT:
|
|
return {
|
|
...state,
|
|
fetching: true,
|
|
};
|
|
case AuthActionTypes.LOGOUT_SUCCESS:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
user: null,
|
|
};
|
|
case AuthActionTypes.REGISTER:
|
|
return {
|
|
...state,
|
|
fetching: true,
|
|
user: null,
|
|
};
|
|
case AuthActionTypes.REGISTER_SUCCESS:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
user: action.payload.user,
|
|
};
|
|
case AuthActionTypes.REGISTER_FAILED:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
};
|
|
case AuthActionTypes.CHANGE_PASSWORD:
|
|
return {
|
|
...state,
|
|
fetching: true,
|
|
};
|
|
case AuthActionTypes.CHANGE_PASSWORD_SUCCESS:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
showChangePasswordDialog: false,
|
|
|
|
};
|
|
case AuthActionTypes.CHANGE_PASSWORD_FAILED:
|
|
return {
|
|
...state,
|
|
fetching: false,
|
|
};
|
|
case AuthActionTypes.SWITCH_CHANGE_PASSWORD_DIALOG:
|
|
return {
|
|
...state,
|
|
showChangePasswordDialog: typeof action.payload.showChangePasswordDialog === 'undefined'
|
|
? !state.showChangePasswordDialog
|
|
: action.payload.showChangePasswordDialog,
|
|
};
|
|
case AuthActionTypes.LOAD_AUTH_ACTIONS:
|
|
return {
|
|
...state,
|
|
authActionsFetching: true,
|
|
};
|
|
case AuthActionTypes.LOAD_AUTH_ACTIONS_SUCCESS:
|
|
return {
|
|
...state,
|
|
authActionsFetching: false,
|
|
authActionsInitialized: true,
|
|
allowChangePassword: action.payload.allowChangePassword,
|
|
};
|
|
case AuthActionTypes.LOAD_AUTH_ACTIONS_FAILED:
|
|
return {
|
|
...state,
|
|
authActionsFetching: false,
|
|
authActionsInitialized: true,
|
|
allowChangePassword: false,
|
|
};
|
|
case BoundariesActionTypes.RESET_AFTER_ERROR: {
|
|
return { ...defaultState };
|
|
}
|
|
default:
|
|
return state;
|
|
}
|
|
}
|