Access http session in protected routes

This commit is contained in:
Teajey 2025-12-07 17:45:37 +09:00
parent 55e6be7239
commit 1980e33d0f
Signed by: Teajey
GPG Key ID: 970E790FE834A713
7 changed files with 14 additions and 13 deletions

View File

@ -3,6 +3,7 @@ package routing
import (
lishwist "lishwist/core"
"lishwist/http/env"
"lishwist/http/response"
"net/http"
"github.com/Teajey/rsvp"
@ -13,7 +14,7 @@ type HealthProps struct {
Config env.Config
}
func Health(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func Health(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
if app.Admin() == nil {
return rsvp.Ok()
}

View File

@ -11,7 +11,7 @@ import (
"github.com/Teajey/rsvp"
)
func ExpectAppSession(next func(*lishwist.Session, http.Header, *http.Request) rsvp.Response) response.HandlerFunc {
func ExpectAppSession(next func(*lishwist.Session, *response.Session, http.Header, *http.Request) rsvp.Response) response.HandlerFunc {
return func(session *response.Session, h http.Header, r *http.Request) rsvp.Response {
sessionKey, ok := session.GetValue("sessionKey").(string)
if !ok {
@ -29,6 +29,6 @@ func ExpectAppSession(next func(*lishwist.Session, http.Header, *http.Request) r
return response.Error(http.StatusInternalServerError, "Something went wrong.")
}
return next(appSession, h, r)
return next(appSession, session, h, r)
}
}

View File

@ -16,7 +16,7 @@ type foreignWishlistProps struct {
Gifts []lishwist.Wish
}
func ForeignWishlist(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func ForeignWishlist(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
userReference := r.PathValue("userReference")
user := app.User()
if user.Reference == userReference {

View File

@ -37,7 +37,7 @@ func AdminGroup(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Resp
return response.Data("group_page.gotmpl", p)
}
func Group(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func Group(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
user := app.User()
if user.IsAdmin {
return AdminGroup(app, h, r)
@ -73,7 +73,7 @@ func PublicGroup(s *response.Session, h http.Header, r *http.Request) rsvp.Respo
return response.Data("public_group_page.gotmpl", p)
}
func GroupPost(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func GroupPost(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
admin := app.Admin()
if admin == nil {
return response.NotFound()
@ -138,7 +138,7 @@ func GroupPost(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Respo
return response.Data("", group)
}
func Groups(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func Groups(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
admin := app.Admin()
if admin == nil {
return response.NotFound()

View File

@ -20,7 +20,7 @@ type HomeProps struct {
Groups []lishwist.Group
}
func Home(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func Home(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
gifts, err := app.GetWishes()
if err != nil {
log.Printf("Failed to get gifts: %s\n", err)
@ -41,7 +41,7 @@ func Home(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
return response.Data("home.gotmpl", p)
}
func HomePost(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func HomePost(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
err := r.ParseForm()
if err != nil {
return response.Error(http.StatusBadRequest, "Failed to parse form")

View File

@ -8,7 +8,7 @@ import (
"github.com/Teajey/rsvp"
)
func Users(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func Users(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
admin := app.Admin()
if admin == nil {
return response.NotFound()
@ -22,7 +22,7 @@ func Users(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response
return response.Data("", users)
}
func User(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func User(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
admin := app.Admin()
if admin == nil {
return response.NotFound()
@ -41,7 +41,7 @@ func User(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
return response.Data("", user)
}
func UserPost(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func UserPost(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
admin := app.Admin()
if admin == nil {
return response.NotFound()

View File

@ -40,7 +40,7 @@ func WishlistDelete(app *lishwist.Session, h http.Header, r *http.Request) rsvp.
return rsvp.SeeOther("/", "Wish deleted")
}
func ForeignWishlistPost(app *lishwist.Session, h http.Header, r *http.Request) rsvp.Response {
func ForeignWishlistPost(app *lishwist.Session, session *response.Session, h http.Header, r *http.Request) rsvp.Response {
err := r.ParseForm()
if err != nil {
return response.Error(http.StatusBadRequest, "Failed to parse form")