export default function auth()

in frontend/src/js/reducers/authReducer.js [1:100]


export default function auth(state = {
    header: undefined,
    token: undefined,
    username: undefined,
    requesting: false,
    require2fa: false,
    requirePanda: false,
    forbidden: false,
    errors: []
}, action) {
    switch (action.type) {
        case 'AUTH_TOKEN_GET_REQUEST':
        case 'AUTH_TOKEN_INVALIDATION_REQUEST':
            return Object.assign({}, state, {
                requesting: true,
                errors: []
            });

        case 'AUTH_TOKEN_GET_RECEIVE':
            return Object.assign({}, state,
                {
                    requesting: false,
                    header: action.header,
                    jwtToken: action.jwtToken,
                    token: action.token,
                    require2fa: false,
                    errors: []
                }
            );

        case 'AUTH_REQUIRE_2FA':
            return Object.assign({}, state, {
                require2fa: true,
                requesting: false,
                errors: [action.message]
            });

        case 'AUTH_REQUIRE_PANDA':
            return Object.assign({}, state, {
                requirePanda: true,
                requesting: false,
                errors: [action.message]
            });

        case 'AUTH_TOKEN_SHOW_ERROR':
            return Object.assign({}, state, {
                requesting: false,
                require2fa: false,
                username: action.username,
                errors: [action.message]
            });

        case 'AUTH_TOKEN_INVALIDATION_RECEIVE':
        case 'AUTH_FETCH_UNAUTHORISED':
            return Object.assign({}, state,
                {
                    require2fa: false,
                    requesting: false,
                    header: undefined,
                    jwtToken: undefined,
                    token: undefined,
                    username: undefined,
                    errors: []
                }
            );

        case 'AUTH_FORBIDDEN':
            return Object.assign({}, state, {
                forbidden: true,
                errors: [action.message]
            });

        case 'AUTH_TOKEN_INVALIDATION_ERROR':
            return Object.assign({}, state, {
                requesting: false,
                require2fa: false,
                errors: [action.message]
            });

        case 'AUTH_SESSION_KEEPALIVE_REQUEST':
            return Object.assign({}, state, {
                lastSessionKeepaliveRequest: action.receivedAt,
                errors: []
            });

        case 'AUTH_SESSION_KEEPALIVE_RECEIVE':
            return Object.assign({}, state, {
                lastSessionKeepaliveResponse: action.receivedAt,
                errors: []
            });

        case 'AUTH_SESSION_KEEPALIVE_ERROR':
            return Object.assign({}, state, {
                errors: [action.message]
            });

        default:
            return state;
    }
}