Check for admin, redirect to register/login as appropriate

This commit is contained in:
Alex Holliday committed 2024-07-02 15:54:49 -07:00
1 parent b563c44f38
commit 299dadd24d
3 files changed
+25 -21

No files matched your search

+1 -21
View File
@@ -1,4 +1,4 @@
import { Routes, Route } from "react-router-dom";
import { Routes, Route, Navigate } from "react-router-dom";
// import "./App.css";
import NotFound from "./Pages/NotFound";
import Login from "./Pages/Login";
@@ -17,29 +17,9 @@ import ForgotPassword from "./Pages/ForgotPassword";
import CheckEmail from "./Pages/CheckEmail";
import SetNewPassword from "./Pages/SetNewPassword";
import NewPasswordConfirmed from "./Pages/NewPasswordConfirmed";
import ToastComponent from "./Components/Toast";
import ProtectedRoute from "./Components/ProtectedRoute";
import { useState, useEffect } from "react";
import axios from "axios";
function App() {
const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL;
const [adminExists, setAdminExists] = useState(false); // Assuming admin exists by default
useEffect(() => {
const checkAdminExists = async () => {
try {
// Replace this URL with your actual API endpoint
const response = await axios.get(`${BASE_URL}/auth/users/admin`);
console.log(response);
} catch (error) {
console.error("Failed to check admin existence:", error);
}
};
checkAdminExists();
}, []);
return (
<>
<Routes>
+15
View File
@@ -13,6 +13,8 @@ import PasswordTextField from "../../Components/TextFields/Password/PasswordText
import { loginValidation } from "../../Validation/validation";
import { login } from "../../Features/Auth/authSlice";
import { useDispatch } from "react-redux";
import axios from "axios";
const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL;
const Login = () => {
const dispatch = useDispatch();
@@ -30,6 +32,19 @@ const Login = () => {
password: "",
});
useEffect(() => {
axios
.get(BASE_URL + "/auth/users/admin")
.then((response) => {
if (response.data.data === false) {
navigate("/register");
}
})
.catch((error) => {
console.log(error);
});
}, [navigate]);
useEffect(() => {
const { error } = loginValidation.validate(form, {
abortEarly: false,
+9
View File
@@ -14,6 +14,7 @@ import { registerValidation } from "../../Validation/validation";
import { useDispatch } from "react-redux";
import { register } from "../../Features/Auth/authSlice";
import axios from "axios";
const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL;
@@ -38,6 +39,14 @@ const Register = () => {
password: "",
});
useEffect(() => {
axios.get(BASE_URL + "/auth/users/admin").then((response) => {
if (response.data.data === true) {
navigate("/login");
}
});
});
useEffect(() => {
const { error } = registerValidation.validate(form, {
abortEarly: false,