merge fix
This commit is contained in:
commit
1ed89cbbad
6 changed files with 28 additions and 26 deletions
|
|
@ -141,7 +141,7 @@ export default function App() {
|
||||||
};
|
};
|
||||||
|
|
||||||
//this function is to get the user logged in when the page is refreshed
|
//this function is to get the user logged in when the page is refreshed
|
||||||
const { setUserData, getAuthentication, login, setAutoLogin, logout } =
|
const { setUserData, getAuthentication, login, setAutoLogin, logout, setIsAdmin } =
|
||||||
useContext(AuthContext);
|
useContext(AuthContext);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
@ -161,6 +161,8 @@ export default function App() {
|
||||||
.then((user) => {
|
.then((user) => {
|
||||||
setUserData(user);
|
setUserData(user);
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
|
const isSuperUser = user.is_superuser;
|
||||||
|
setIsAdmin(isSuperUser);
|
||||||
})
|
})
|
||||||
.catch((error) => {});
|
.catch((error) => {});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { useContext, useEffect, useState } from "react";
|
import { useContext } from "react";
|
||||||
import { FaDiscord, FaGithub, FaTwitter } from "react-icons/fa";
|
import { FaDiscord, FaGithub, FaTwitter } from "react-icons/fa";
|
||||||
import { Link, useLocation, useNavigate } from "react-router-dom";
|
import { Link, useLocation, useNavigate } from "react-router-dom";
|
||||||
import AlertDropdown from "../../alerts/alertDropDown";
|
import AlertDropdown from "../../alerts/alertDropDown";
|
||||||
|
|
@ -7,7 +7,6 @@ import { alertContext } from "../../contexts/alertContext";
|
||||||
import { AuthContext } from "../../contexts/authContext";
|
import { AuthContext } from "../../contexts/authContext";
|
||||||
import { darkContext } from "../../contexts/darkContext";
|
import { darkContext } from "../../contexts/darkContext";
|
||||||
import { TabsContext } from "../../contexts/tabsContext";
|
import { TabsContext } from "../../contexts/tabsContext";
|
||||||
import { getRepoStars } from "../../controllers/API";
|
|
||||||
import IconComponent from "../genericIconComponent";
|
import IconComponent from "../genericIconComponent";
|
||||||
import { Button } from "../ui/button";
|
import { Button } from "../ui/button";
|
||||||
import { Separator } from "../ui/separator";
|
import { Separator } from "../ui/separator";
|
||||||
|
|
@ -43,22 +42,35 @@ export default function Header(): JSX.Element {
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
{autoLogin === false && (
|
{autoLogin === false && (
|
||||||
<Button
|
<a
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
logout();
|
logout();
|
||||||
navigate("/login");
|
navigate("/login");
|
||||||
}}
|
}}
|
||||||
variant="outline"
|
className="text-sm font-medium text-muted-foreground transition-colors hover:text-primary cursor-pointer mx-5"
|
||||||
className=""
|
|
||||||
>
|
>
|
||||||
Sign out
|
Sign out
|
||||||
</Button>
|
</a>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{location.pathname === "/admin" && (
|
||||||
|
<a
|
||||||
|
onClick={() => {
|
||||||
|
navigate("/");
|
||||||
|
}}
|
||||||
|
className="text-sm font-medium text-muted-foreground transition-colors hover:text-primary cursor-pointer"
|
||||||
|
>
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{isAdmin && !autoLogin && location.pathname !== "/admin" && (
|
{isAdmin && !autoLogin && location.pathname !== "/admin" && (
|
||||||
<Button variant="outline" onClick={() => navigate("/admin")}>
|
<a
|
||||||
|
className="text-sm font-medium text-muted-foreground transition-colors hover:text-primary cursor-pointer"
|
||||||
|
onClick={() => navigate("/admin")}
|
||||||
|
>
|
||||||
Admin page
|
Admin page
|
||||||
</Button>
|
</a>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="round-button-div">
|
<div className="round-button-div">
|
||||||
|
|
|
||||||
|
|
@ -47,14 +47,6 @@ export function AuthProvider({ children }): React.ReactElement {
|
||||||
fetchStars();
|
fetchStars();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (accessToken) {
|
|
||||||
getLoggedUser().then((user) => {
|
|
||||||
const isSuperUser = user.is_superuser;
|
|
||||||
setIsAdmin(isSuperUser);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, [accessToken, isAdmin]);
|
|
||||||
|
|
||||||
function getAuthentication() {
|
function getAuthentication() {
|
||||||
const storedRefreshToken = cookies.get("refresh_token");
|
const storedRefreshToken = cookies.get("refresh_token");
|
||||||
|
|
|
||||||
|
|
@ -103,9 +103,5 @@ function ApiInterceptor() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to sleep for a given duration in milliseconds
|
|
||||||
function sleep(ms: number) {
|
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
||||||
}
|
|
||||||
|
|
||||||
export { ApiInterceptor, api };
|
export { ApiInterceptor, api };
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ export default function AdminPage() {
|
||||||
Welcome back!
|
Welcome back!
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-muted-foreground">
|
<p className="text-muted-foreground">
|
||||||
Here's a list of all users!
|
Navigate through this section to efficiently oversee all application users. From here, you can seamlessly manage user accounts.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center space-x-2"></div>
|
<div className="flex items-center space-x-2"></div>
|
||||||
|
|
|
||||||
|
|
@ -88,9 +88,9 @@ const Router = () => {
|
||||||
<Route
|
<Route
|
||||||
path="/admin"
|
path="/admin"
|
||||||
element={
|
element={
|
||||||
|
<ProtectedAdminRoute>
|
||||||
<AdminPage />
|
<AdminPage />
|
||||||
|
</ProtectedAdminRoute>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
@ -106,9 +106,9 @@ const Router = () => {
|
||||||
<Route
|
<Route
|
||||||
path="api-keys"
|
path="api-keys"
|
||||||
element={
|
element={
|
||||||
<ProtectedRoute>
|
<ProtectedAdminRoute>
|
||||||
<ApiKeysPage />
|
<ApiKeysPage />
|
||||||
</ProtectedRoute>
|
</ProtectedAdminRoute>
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
</Route>
|
</Route>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue