feat(user-sessions): add JWT-based session management and main menu route

This commit is contained in:
2025-10-29 10:31:49 +01:00
parent 93b0766138
commit 98a3f6319f
9 changed files with 138 additions and 6 deletions

View File

@@ -24,13 +24,31 @@ import javax.inject.*
@Singleton
class UserController @Inject()(val controllerComponents: ControllerComponents, val sessionManager: SessionManager, val userManager: UserManager) extends BaseController {
def mainMenu() : Action[AnyContent] = {
Action { implicit request =>
val session = request.cookies.get("sessionId")
if (session.isDefined) {
val possibleUser = sessionManager.getUserBySession(session.get.value)
if (possibleUser.isDefined) {
Ok("Main Menu for user: " + possibleUser.get.name)
} else
{
println("Invalid session, redirecting to login")
Redirect("/login")
}
} else {
Redirect("/login")
}
}
}
def login(): Action[AnyContent] = {
Action { implicit request =>
val session = request.cookies.get("sessionId")
if (session.isDefined) {
val possibleUser = sessionManager.getUserBySession(session.get.value)
if (possibleUser.isDefined) {
Redirect("/main-menu")
Redirect("/mainmenu")
} else
{
Ok(views.html.login())
@@ -54,6 +72,7 @@ class UserController @Inject()(val controllerComponents: ControllerComponents, v
Cookie("sessionId", sessionManager.createSession(possibleUser.get))
)
} else {
println("Failed login attempt for user: " + username)
Unauthorized("Invalid username or password")
}
} else {