Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1x 1x 1x 189x 189x 189x 76x 76x 76x 1x 1x 76x 1x 1x 70x 70x 70x 76x 4x 1x 3x 3x 3x 3x 4x 189x 189x 189x 189x 189x 1x 299x 299x 299x | import { useQuery } from "@tanstack/react-query";
import axios from "axios";
export function useCurrentUser() {
const queryResults = useQuery({
queryKey: ["current user"],
queryFn: async () => {
try {
const response = await axios.get("/api/currentUser");
if (response.data == null) {
return { loggedIn: false, root: {} };
}
if (!(response.data instanceof Object) || !("roles" in response.data)) {
return { loggedIn: false, root: response.data };
}
let rolesList = response.data.roles.map((r) => r.authority);
response.data = { ...response.data, rolesList: rolesList };
return { loggedIn: true, root: response.data };
} catch (e) {
if (e.status === 403) {
return { loggedIn: false, root: {} };
} else {
console.error("Error invoking axios.get: ", e);
throw e;
}
}
},
initialData: { loggedIn: false, root: null, initialData: true },
});
return queryResults.data;
}
export function hasRole(currentUser, role) {
if (currentUser == null) return false;
return currentUser.root?.rolesList?.includes(role);
}
|