Check for admin, redirect to register/login as appropriate
This commit is contained in:
1 parent
b563c44f38
commit
299dadd24d
3 files changed
+25
-21
No files matched your search
+1
-21
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user