From bbd583211275e686f1292a93c828fde64fdda8ed Mon Sep 17 00:00:00 2001 From: mo khan Date: Mon, 21 Apr 2025 13:15:39 -0600 Subject: feat: provision new users on-demand --- pkg/web/middleware/user.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'pkg/web/middleware/user.go') diff --git a/pkg/web/middleware/user.go b/pkg/web/middleware/user.go index b01ae48..ab4e3cc 100644 --- a/pkg/web/middleware/user.go +++ b/pkg/web/middleware/user.go @@ -3,6 +3,7 @@ package middleware import ( "net/http" + "github.com/xlgmokha/x/pkg/log" "github.com/xlgmokha/x/pkg/x" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/domain" @@ -20,10 +21,15 @@ func User(db db.Repository[*domain.User]) func(http.Handler) http.Handler { user := db.Find(idToken.Subject) if x.IsZero(user) { - next.ServeHTTP(w, r) - } else { - next.ServeHTTP(w, r.WithContext(key.CurrentUser.With(r.Context(), user))) + user = &domain.User{ID: idToken.Subject} + if err := db.Save(user); err != nil { + log.WithFields(r.Context(), log.Fields{"error": err}) + next.ServeHTTP(w, r) + return + } } + + next.ServeHTTP(w, r.WithContext(key.CurrentUser.With(r.Context(), user))) }) } } -- cgit v1.2.3