Added redirect on unauthorized route BOD-162

This commit is contained in:
Patrick Fic
2020-07-20 14:00:17 -07:00
parent d2aa72f5d9
commit 74aca37ee2
4 changed files with 21 additions and 37 deletions

View File

@@ -1,23 +1,24 @@
import { LockOutlined, UserOutlined } from "@ant-design/icons";
import { Button, Form, Input, Typography } from "antd";
import queryString from "query-string";
import React from "react";
import { useApolloClient } from "react-apollo";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Redirect, Link } from "react-router-dom";
import { Link, Redirect, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect";
import ImEXOnlineLogo from "../../assets/logo240.png";
import { UPSERT_USER } from "../../graphql/user.queries";
import {
emailSignInStart,
sendPasswordReset,
sendPasswordReset
} from "../../redux/user/user.actions";
import {
selectCurrentUser,
selectSignInError,
selectSignInError
} from "../../redux/user/user.selectors";
import { useTranslation } from "react-i18next";
import "./sign-in-form.styles.scss";
import AlertComponent from "../alert/alert.component";
import "./sign-in-form.styles.scss";
const mapStateToProps = createStructuredSelector({
currentUser: selectCurrentUser,
@@ -36,6 +37,7 @@ export function SignInComponent({
signInError,
sendPasswordReset,
}) {
const { redirect } = queryString.parse(useLocation().search);
const apolloClient = useApolloClient();
const { t } = useTranslation();
const handleFinish = (values) => {
@@ -60,7 +62,8 @@ export function SignInComponent({
});
}
if (currentUser.authorized === true) return <Redirect to='/manage' />;
if (currentUser.authorized === true)
return <Redirect to={redirect || "/manage"} />;
return (
<div className='login-container'>

View File

@@ -1,17 +1,12 @@
import { Button, Form, Result } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import {
sendPasswordReset,
validatePasswordResetStart,
} from "../../redux/user/user.actions";
import queryString from "query-string";
import { useLocation } from "react-router-dom";
import { Input, Form, Button, Result } from "antd";
import React, { useState } from "react";
import EmailFormItemComponent from "../form-items-formatted/email-form-item.component";
import { useTranslation } from "react-i18next";
import { sendPasswordReset } from "../../redux/user/user.actions";
import { selectPasswordReset } from "../../redux/user/user.selectors";
import AlertComponent from "../alert/alert.component";
import EmailFormItemComponent from "../form-items-formatted/email-form-item.component";
const mapStateToProps = createStructuredSelector({
passwordReset: selectPasswordReset,

View File

@@ -1,26 +1,10 @@
import React from "react";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import {
sendPasswordReset,
validatePasswordResetStart,
} from "../../redux/user/user.actions";
import queryString from "query-string";
import React from "react";
import { useLocation } from "react-router-dom";
import UserValidatePwReset from "../../components/user-validate-pw-reset/user-validate-pw-reset.component";
import UserRequestResetPw from "../../components/user-request-pw-reset/user-request-reset-pw.component";
import UserValidatePwReset from "../../components/user-validate-pw-reset/user-validate-pw-reset.component";
const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser
});
const mapDispatchToProps = (dispatch) => ({
sendPasswordReset: (email) => dispatch(sendPasswordReset(email)),
validatePasswordReset: (emailAndPin) =>
dispatch(validatePasswordResetStart(emailAndPin)),
});
export default function ResetPassword({}) {
export default function ResetPassword() {
const searchParams = queryString.parse(useLocation().search);
const { mode, oobCode } = searchParams;
console.log("ResetPassword -> mode, oobCode", mode, oobCode);

View File

@@ -1,6 +1,8 @@
import React from "react";
import { Route, Redirect } from "react-router-dom";
import { Route, Redirect, useLocation } from "react-router-dom";
export default ({ component: Component, isAuthorized, ...rest }) => {
const location = useLocation();
return (
<Route
{...rest}
@@ -8,7 +10,7 @@ export default ({ component: Component, isAuthorized, ...rest }) => {
isAuthorized === true ? (
<Component {...props} />
) : (
<Redirect to="/signin" />
<Redirect to={`/signin?redirect=${location.pathname}`} />
)
}
/>