diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-10-03 20:53:17 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-10-03 20:53:17 +0200 |
commit | 986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e (patch) | |
tree | f0198af6854ca4c3b13495eb8e3feb5788251a44 /form | |
parent | 3234c5ec777117d429bdc04dcf10c30094079e57 (diff) | |
download | gosten-986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e.tar.gz gosten-986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e.tar.bz2 gosten-986eb0cd93a8f11ff73e3f17d8dabb6d4260c67e.zip |
Fix CSRF handling, esp. when errors occur in form
Diffstat (limited to '')
-rw-r--r-- | form.go | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -12,6 +12,7 @@ var schemaDecoder *schema.Decoder func init() { schemaDecoder = schema.NewDecoder() + schemaDecoder.IgnoreUnknownKeys(true) } type fieldError struct { @@ -34,4 +35,8 @@ func parseForm[T any](r *http.Request, data *T) { if err := schemaDecoder.Decode(data, r.PostForm); err != nil { log.Panic("Decoding form: ", err) } + + if withCsrf, ok := any(data).(WithCsrf); ok { + withCsrf.SetCsrfField(r) + } } |