feat(07-01): add bcrypt, locale override, and validation rules

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jakub Zych
2026-09-22 13:39:25 +02:00
parent bccd7f8f35
commit 8fcaff77cf
6 changed files with 95 additions and 15 deletions

View File

@@ -0,0 +1,19 @@
package surf
import (
"net/http"
"git.golem15.com/golem15/summercms/bouncer"
"git.golem15.com/golem15/summercms/towel"
)
// LocaleFromPrincipal overrides the header locale with the authenticated
// principal's PreferredLocale when that value is non-empty.
func LocaleFromPrincipal(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if p, ok := bouncer.User(r.Context()); ok && p.PreferredLocale != "" {
r = r.WithContext(towel.WithLocale(r.Context(), p.PreferredLocale))
}
next.ServeHTTP(w, r)
})
}