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 214x 214x 214x 85x 85x 85x 1x 1x 85x 1x 1x 79x 79x 79x 85x 4x 1x 3x 3x 3x 3x 4x 214x 214x 214x 214x 214x 1x 331x 331x 331x | 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);
}
|