From 82ef4b31d486780f0cada81b5d83c0eb0814a9b0 Mon Sep 17 00:00:00 2001 From: Sky Johnson Date: Thu, 14 Aug 2025 13:43:42 -0500 Subject: [PATCH] fix panic when not-logged-in user hits root route --- internal/routes/index.go | 27 ++++++++++++--------------- main.go | 6 +++--- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/internal/routes/index.go b/internal/routes/index.go index c5eb3a7..d1a8577 100644 --- a/internal/routes/index.go +++ b/internal/routes/index.go @@ -2,7 +2,6 @@ package routes import ( "dk/internal/actions" - "dk/internal/middleware" "dk/internal/models/users" "dk/internal/router" "dk/internal/template/components" @@ -10,26 +9,24 @@ import ( ) func Index(ctx router.Ctx, _ []string) { - user := ctx.UserValue("user").(*users.User) - if user != nil { - redirectTo := "/explore" - switch user.Currently { - case "In Town": - redirectTo = "/town" - case "Exploring": - redirectTo = "/explore" - default: - redirectTo = "/explore" - } - ctx.Redirect(redirectTo, 303) + user, ok := ctx.UserValue("user").(*users.User) + if !ok || user == nil { + components.RenderPage(ctx, "", "intro.html", nil) return } - components.RenderPage(ctx, "", "intro.html", nil) + switch user.Currently { + case "In Town": + ctx.Redirect("/town", 303) + case "Exploring": + ctx.Redirect("/explore", 303) + default: + ctx.Redirect("/explore", 303) + } } func Move(ctx router.Ctx, _ []string) { - user := middleware.GetCurrentUser(ctx) + user := ctx.UserValue("user").(*users.User) dir, err := strconv.Atoi(string(ctx.PostArgs().Peek("direction"))) if err != nil { ctx.SetContentType("text/plain") diff --git a/main.go b/main.go index 183e91e..c689b86 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,6 @@ import ( "syscall" "dk/internal/middleware" - "dk/internal/session" "dk/internal/models/babble" "dk/internal/models/control" "dk/internal/models/drops" @@ -23,6 +22,7 @@ import ( "dk/internal/models/users" "dk/internal/router" "dk/internal/routes" + "dk/internal/session" "dk/internal/template" "github.com/valyala/fasthttp" @@ -174,8 +174,8 @@ func start(port string) error { r.Use(middleware.CSRF()) r.Get("/", routes.Index) - r.Get("/explore", routes.Explore) - r.Post("/move", routes.Move) + r.Use(middleware.RequireAuth()).Get("/explore", routes.Explore) + r.Use(middleware.RequireAuth()).Post("/move", routes.Move) routes.RegisterAuthRoutes(r) routes.RegisterTownRoutes(r)