Compare commits
	
		
			2 Commits
		
	
	
		
			7534d0d9c6
			...
			8b48a55bf0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 8b48a55bf0 | ||
|  | 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'); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user