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