Compare commits

..

2 Commits

Author SHA1 Message Date
Mohamed Maoulainine Maoulainine
8b48a55bf0 Merge branch 'front_foundation' of https://gitea.piair.dev/piair/MyINPulse into front_foundation
Some checks failed
Format / formatting (push) Successful in 5s
Build / build (push) Successful in 40s
CI / build (push) Failing after 8s
Format / formatting (pull_request) Successful in 6s
2025-04-28 23:54:53 +02:00
Mohamed Maoulainine Maoulainine
32de0d6ca8 feat: function that tells if an authentified person is an admin 2025-04-28 23:54:38 +02:00

View File

@ -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');