Update .gitignore to include /dist directory; modify session controller to allow public access to session details without authentication.
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
|
||||
# production
|
||||
/build
|
||||
/dist
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
|
||||
@@ -208,36 +208,17 @@ export const sessionController = new Elysia({ prefix: "/sessions" })
|
||||
}),
|
||||
}
|
||||
)
|
||||
// GET /sessions/:id - получить информацию о конкретной сессии (optional auth)
|
||||
.get("/:id", async ({ params, currentUser, status }) => {
|
||||
// GET /sessions/:id - получить информацию о конкретной сессии (доступен всем)
|
||||
.get("/:id", async ({ params, status }) => {
|
||||
const { id } = params;
|
||||
|
||||
// Для авторизованных пользователей - проверяем ownership
|
||||
if (currentUser) {
|
||||
const session = await serverSessionService.findByIdForUser(
|
||||
id,
|
||||
currentUser.id
|
||||
);
|
||||
|
||||
if (!session) {
|
||||
return status(404, "Session not found");
|
||||
}
|
||||
|
||||
return { session };
|
||||
}
|
||||
|
||||
// Для неавторизованных - просто находим сессию по ID
|
||||
// Получаем сессию по ID
|
||||
const session = await serverSessionService.findById(id);
|
||||
|
||||
if (!session) {
|
||||
return status(404, "Session not found");
|
||||
}
|
||||
|
||||
// Проверяем, что это сессия без userId (неавторизованная)
|
||||
if (session.userId) {
|
||||
return status(403, "This session belongs to an authenticated user");
|
||||
}
|
||||
|
||||
return { session };
|
||||
})
|
||||
// Все остальные роуты требуют авторизации
|
||||
|
||||
Reference in New Issue
Block a user