feat: function that tells if an authentified person is an admin
This commit is contained in:
parent
09eeaacfa6
commit
32de0d6ca8
@ -5,6 +5,7 @@ import { createPinia } from "pinia";
|
||||
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
|
||||
import keycloakService from "./services/keycloak";
|
||||
import { type AuthStore, useAuthStore } from "@/stores/authStore.ts";
|
||||
import { jwtDecode } from "jwt-decode";
|
||||
|
||||
let store: AuthStore;
|
||||
|
||||
@ -28,6 +29,32 @@ keycloakService.CallInit(() => {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
type TokenPayload = {
|
||||
realm_access?: {
|
||||
roles?: string[];
|
||||
};
|
||||
};
|
||||
|
||||
function isAdmin(){
|
||||
if (store.authenticated && store.user.token) {
|
||||
try {
|
||||
const decoded = jwtDecode<TokenPayload>(store.user.token);
|
||||
const roles = decoded.realm_access?.roles || [];
|
||||
|
||||
if (roles.includes("MyINPulse-admin")) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("Failed to decode token", err);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// this shit made by me so i can run the canva vue app
|
||||
//createApp(App).use(router).mount('#app');
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user