Browse Source

Fixed issue with ReCaptcha not resetting after failure and fixed issue with not being able to go to /settings directly.

KrisVos130 7 years ago
parent
commit
248eacf802

+ 2 - 0
frontend/app/js/reducers/user.js

@@ -7,6 +7,7 @@ import {
 
 const initialState = Map({
 	loggedIn: false,
+	authProcessed: false,
 	role: "default",
 	username: "",
 	userId: "",
@@ -28,6 +29,7 @@ const actionsMap = {
 	[AUTHENTICATE]: (state, action) => {
 		return state.merge({
 			loggedIn: action.data.loggedIn,
+			authProcessed: true,
 			role: action.data.role,
 			username: action.data.username,
 			userId: action.data.userId,

+ 11 - 6
frontend/app/js/views/Auth/AuthRoute.jsx

@@ -5,12 +5,14 @@ import { Redirect, Route } from "react-router-dom";
 
 @connect(state => ({
 	loggedIn: state.user.get("loggedIn"),
+	authProcessed: state.user.get("authProcessed"),
 }))
 
 export default class AuthRoute extends Component {
 	static propTypes = {
 		loggedIn: PropTypes.bool,
 		authRequired: PropTypes.bool,
+		authProcessed: PropTypes.bool,
 		component: PropTypes.oneOfType([
 			PropTypes.element,
 			PropTypes.func,
@@ -20,16 +22,19 @@ export default class AuthRoute extends Component {
 	static defaultProps = {
 		loggedIn: false,
 		authRequired: true,
+		authProcessed: false,
 		component: () => {},
 	}
 
 	render() {
-		const { authRequired } = this.props;
-		if (this.props.loggedIn) {
-			if (authRequired) return <Route props={ this.props } component={ this.props.component } />;
-			return <Redirect to={ "/" } />;
+		const { authRequired, loggedIn, authProcessed } = this.props;
+		if (!authRequired) return <Route props={ this.props } component={ this.props.component } />;
+		else if (authProcessed) {
+			if (loggedIn) {
+				return <Route props={ this.props } component={ this.props.component } />;
+			}
+			return <Redirect to={ "/login" } />;
 		}
-		if (authRequired) return <Redirect to={ "/login" } />;
-		return <Route props={ this.props } component={ this.props.component } />;
+		return <h1>Loading...</h1>;
 	}
 }

+ 1 - 0
frontend/app/js/views/Auth/Register.jsx

@@ -42,6 +42,7 @@ export default class Register extends Component {
 						}
 					} else {
 						this.errors.addError(res.message);
+						grecaptcha.reset();
 					}
 				});
 			});