feat: function that tells if an authentified person is an admin

This commit is contained in:
Mohamed Maoulainine Maoulainine 2025-04-28 23:54:38 +02:00
parent 09eeaacfa6
commit 32de0d6ca8

View File

@ -5,6 +5,7 @@ import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate"; import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
import keycloakService from "./services/keycloak"; import keycloakService from "./services/keycloak";
import { type AuthStore, useAuthStore } from "@/stores/authStore.ts"; import { type AuthStore, useAuthStore } from "@/stores/authStore.ts";
import { jwtDecode } from "jwt-decode";
let store: AuthStore; 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 // this shit made by me so i can run the canva vue app
//createApp(App).use(router).mount('#app'); //createApp(App).use(router).mount('#app');