Merge remote-tracking branch 'refs/remotes/origin/main'

This commit is contained in:
Alexis Leboeuf
2026-01-08 14:51:56 +01:00
2 changed files with 25 additions and 27 deletions

View File

@@ -20,33 +20,13 @@ import ObjectUser from "./object/user";
if (user.role === "athlete") return null; if (user.role === "athlete") return null;
const athleteMap: Map<number, Athlete> = new Map();//TODO const allAthletes: Athlete[] = [];
user.sessions.forEach(session => {
session.athletes?.forEach(a => athleteMap.set(a.id, a));
});
const allAthletes: Athlete[] = Array.from(athleteMap.values());
const activiteMap: Map<number, Activite> = new Map(); const allActivites: Activite[] = [];
user.sessions.forEach(session => {
session.activites?.forEach(act => activiteMap.set(act.id, act));
});
const allActivites: Activite[] = Array.from(activiteMap.values());
const coachMap: Map<number, Coach> = new Map(); const allCoachs: Coach[] = [];
user.sessions.forEach(session => {
if (session.coach) {
coachMap.set(session.coach.id, session.coach);
}
});
const allCoachs: Coach[] = Array.from(coachMap.values()); const allSessions: Session[] = [];
const sessionMap: Map<number, Session> = new Map();
user.sessions.forEach(session => {
sessionMap.set(session.id, session);
});
const allSessions: Session[] = Array.from(sessionMap.values());
const ligneMap: Map<number, Ligne> = new Map(); const ligneMap: Map<number, Ligne> = new Map();
user.sessions.forEach(session => { user.sessions.forEach(session => {

View File

@@ -1,5 +1,6 @@
import api, { activiteService, sessionService } from "./api"; import api, { activiteService, sessionService } from "./api";
import { Activite, Admin, Athlete, Coach, Session, User } from "./classes"; import { Activite, Admin, Athlete, Coach, Session, User } from "./classes";
import Keycloak from 'keycloak-js'
//debug: //debug:
export function delay(ms: number): Promise<void> { export function delay(ms: number): Promise<void> {
@@ -13,16 +14,33 @@ export function delay(ms: number): Promise<void> {
/* /*
retourne l'utilisateur lié à l'identifiant keyloack retourne l'utilisateur lié à l'identifiant keyloack
*/ */
export async function getUser(id:number): Promise<User|null>{ export async function getUser(keycloak:Keycloak): Promise<User|null>{
try { try {
const response = await api.get<User>(`/users/${id}`); const roles = keycloak.tokenParsed?.realm_access?.roles
return response.data; if(roles!=null){
if(roles.includes("admin")){
const response = await api.get<any>(`/TODO`);
return response.data;
}
else if(roles.includes("coach")){
const response = await api.get<any>(`/TODO`);
return response.data;
}
else if(roles.includes("athletes")){
const response = await api.get<any>(`/TODO`);
return response.data;
}
console.error("Error roles inconnu");
}
return null;
} }
catch (error) { catch (error) {
console.error("Error fetching user:", error); console.error("Error fetching user:", error);
return null; return null;
} }
} }
/* /*
retourne toutes les Session dont l'user est inscrit retourne toutes les Session dont l'user est inscrit
*/ */