feat: GET /api/auth/me retourne roles[]
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 35s
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 35s
This commit is contained in:
@@ -189,11 +189,17 @@ router.post("/logout", (_req: Request, res: Response): void => {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* GET /api/auth/me
|
* GET /api/auth/me
|
||||||
* Retourne l'utilisateur courant (cookie ou Bearer).
|
* Retourne l'utilisateur courant (cookie ou Bearer) + ses rôles locaux.
|
||||||
*/
|
*/
|
||||||
router.get("/me", requireAuth, (req: Request, res: Response): void => {
|
router.get("/me", requireAuth, async (req: Request, res: Response): Promise<void> => {
|
||||||
const { user } = req as AuthenticatedRequest;
|
const { user } = req as AuthenticatedRequest;
|
||||||
res.json({ success: true, data: { user } });
|
|
||||||
|
const localUser = await AppDataSource.getRepository(User)
|
||||||
|
.findOne({ where: { superOAuthId: user.id }, relations: ["userRoles", "userRoles.role"] });
|
||||||
|
|
||||||
|
const roles = localUser?.userRoles.map((ur) => ur.role.slug) ?? [];
|
||||||
|
|
||||||
|
res.json({ success: true, data: { user: { ...user, roles } } });
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user