From 03249787040e5a2490aa3ab6b251e430a1a146d9 Mon Sep 17 00:00:00 2001 From: Gabriel Silva Hermida <gash18@inf.ufpr.br> Date: Wed, 30 Sep 2020 10:57:38 -0300 Subject: [PATCH] =?UTF-8?q?Issue=20#49:=20Adicionar=20seguran=C3=A7a=20nas?= =?UTF-8?q?=20rotas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Silva Hermida <gash18@inf.ufpr.br> --- src/App.js | 31 ++-------- .../JornalFolder/FormFieldSelect.js | 15 +++-- src/components/header/header.jsx | 1 - src/pages/ListForms.js | 1 - src/pages/SignUp.js | 1 - src/routes.js | 58 +++++++++++++++++++ 6 files changed, 70 insertions(+), 37 deletions(-) create mode 100644 src/routes.js diff --git a/src/App.js b/src/App.js index a0e2b1b..269c83b 100644 --- a/src/App.js +++ b/src/App.js @@ -1,33 +1,12 @@ import React from "react"; -import { HashRouter, Route, Redirect } from "react-router-dom"; import "./global.css"; -import CreateForm from "./pages/CreateForm"; -import AnswerForm from "./pages/AnswerForm"; -import Header from "./components/header/header"; -import Footer from "./components/footer/footer"; -import SignUp from "./pages/SignUp"; -import SignIn from "./pages/SignIn"; -import ListForms from "./pages/ListForms"; -import EditForm from "./pages/EditForm"; -import GetForm from "./pages/GetForm"; -import VisualizeForm from "./pages/VisualizeForm"; +import Routes from "./routes"; +import { BrowserRouter as Router } from "react-router-dom"; function App() { return ( - <HashRouter> - <Header /> - <Route exact path="/"> - <Redirect to="/SignIn" /> - </Route> - <Route path="/SignUp" component={SignUp} /> - <Route path="/SignIn" component={SignIn} /> - <Route path="/visualize/:id" component={VisualizeForm} /> - <Route path="/create" component={CreateForm} /> - <Route path="/answer/:id" component={AnswerForm} /> - <Route path="/edit/:id" component={EditForm} /> - <Route path="/list/:id" component={ListForms} /> - <Route path="/form/:id" component={GetForm} /> - <Footer /> - </HashRouter> + <Router> + <Routes /> + </Router> ); } diff --git a/src/components/fieldsGetForm/JornalFolder/FormFieldSelect.js b/src/components/fieldsGetForm/JornalFolder/FormFieldSelect.js index d83bf41..db34cfe 100644 --- a/src/components/fieldsGetForm/JornalFolder/FormFieldSelect.js +++ b/src/components/fieldsGetForm/JornalFolder/FormFieldSelect.js @@ -8,21 +8,21 @@ import Typography from "@material-ui/core/Typography"; import FieldFooterOptions from "./FieldFooterOptions"; -const useStyles = makeStyles(theme => ({ +const useStyles = makeStyles((theme) => ({ paper: { padding: theme.spacing(3), width: theme.spacing(100), marginBottom: "2%", ["@media (max-width: 896px)"]: { - width: "300px" - } + width: "300px", + }, }, questionsGrid: { - marginBottom: "20px" + marginBottom: "20px", }, text: { - color: "black" - } + color: "black", + }, })); function FormFieldSelect(props) { @@ -32,9 +32,8 @@ function FormFieldSelect(props) { * Function to handle the selected answer. */ function handleProps() { - console.log(props.answer); if (props.answer) { - return props.answer.filter(each => { + return props.answer.filter((each) => { return each.value === "true"; })[0].placement; } else { diff --git a/src/components/header/header.jsx b/src/components/header/header.jsx index 696c62b..61c014d 100644 --- a/src/components/header/header.jsx +++ b/src/components/header/header.jsx @@ -70,7 +70,6 @@ export default function Header() { return false; } useEffect(() => { - console.log("O TOKEN MUDOU"); setIsLoged(!isLoged); }, [window.sessionStorage.getItem("token")]); diff --git a/src/pages/ListForms.js b/src/pages/ListForms.js index 08788a3..c65df33 100644 --- a/src/pages/ListForms.js +++ b/src/pages/ListForms.js @@ -79,7 +79,6 @@ export default function ListForms() { * @param string - the string value to be searched. */ function searching(string) { - console.log(string); setAuxForms( [...forms].filter(value => { return value.title.toLowerCase().includes(string.toLowerCase()); diff --git a/src/pages/SignUp.js b/src/pages/SignUp.js index 8b3ac05..ae6891b 100644 --- a/src/pages/SignUp.js +++ b/src/pages/SignUp.js @@ -262,7 +262,6 @@ export default function SignUp() { </Grid> <Grid> <IconButton - type="submit" size="medium" className={classes.button} id="whiteTextedButton" diff --git a/src/routes.js b/src/routes.js new file mode 100644 index 0000000..42bab39 --- /dev/null +++ b/src/routes.js @@ -0,0 +1,58 @@ +import React, { useEffect } from "react"; +import CreateForm from "./pages/CreateForm"; +import AnswerForm from "./pages/AnswerForm"; +import Header from "./components/header/header"; +import Footer from "./components/footer/footer"; +import SignUp from "./pages/SignUp"; +import SignIn from "./pages/SignIn"; +import ListForms from "./pages/ListForms"; +import EditForm from "./pages/EditForm"; +import GetForm from "./pages/GetForm"; +import VisualizeForm from "./pages/VisualizeForm"; +import { BrowserRouter, Route, Switch, Redirect } from "react-router-dom"; + +const PrivateRoute = ({ component: Component, ...rest }) => { + let usr; + rest.path === "/list/:id" && + rest.computedMatch.params.id === window.sessionStorage.getItem("userId") && + (usr = true); + + return ( + <Route + {...rest} + render={(props) => + usr && window.sessionStorage.getItem("token") !== null ? ( + <Component {...props} /> + ) : ( + <Redirect to={{ pathname: "/" }} /> + ) + } + /> + ); +}; + +const Routes = () => ( + <BrowserRouter> + <Header /> + <Switch> + <Route exact path="/"> + <Redirect to="/SignIn" /> + </Route> + <Route exact path="/SignUp" component={SignUp} /> + <Route exact path="/SignIn" component={SignIn} /> + <PrivateRoute + exact + path="/visualize/:id" + component={() => <VisualizeForm />} + /> + <PrivateRoute exact path="/create" component={() => <CreateForm />} /> + <PrivateRoute exact path="/answer/:id" component={() => <AnswerForm />} /> + <PrivateRoute exact path="/edit/:id" component={() => <EditForm />} /> + <PrivateRoute exact path="/list/:id" component={() => <ListForms />} /> + <PrivateRoute exact path="/form/:id" component={() => <GetForm />} /> + </Switch> + <Footer /> + </BrowserRouter> +); + +export default Routes; -- GitLab