diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2023-10-24 08:30:28 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2023-10-24 08:30:28 +0200 |
| commit | ed23d402fec268e163ec895748f43e3254ba3dfd (patch) | |
| tree | 1b3b214eabe9ff8d2a18803c64e47f54f6a1fd2d | |
| parent | a4f3f4ddfafe102232d3341cd432219a40a0d64e (diff) | |
refactor: Rename & include more featuresv0.2.0
| -rw-r--r-- | auth/middlewares.go | 10 | ||||
| -rw-r--r-- | core/template.go | 18 |
2 files changed, 19 insertions, 9 deletions
diff --git a/auth/middlewares.go b/auth/middlewares.go index 7f90677..1534b16 100644 --- a/auth/middlewares.go +++ b/auth/middlewares.go @@ -20,6 +20,16 @@ var ( type userContext struct{} +func UserFromContext[U any](ctx context.Context) (U, bool) { + user, ok := ctx.Value(userContext{}).(U) + return user, ok +} + +func LoginFromContext[U core.WithLanguage](ctx context.Context) core.Login[U] { + user, ok := UserFromContext[U](ctx) + return core.LoginFromUser(user, ok) +} + func Unauthorized(w http.ResponseWriter, err error) { w.WriteHeader(http.StatusUnauthorized) if err != nil { diff --git a/core/template.go b/core/template.go index 3a6833a..a0d0668 100644 --- a/core/template.go +++ b/core/template.go @@ -18,16 +18,16 @@ func GetTr(wl WithLanguage) Tr { return func(format string, args ...any) string { return i18n.Tr(lang, format, args...) } } -type LoginContext[U any] struct { - IsLoggedIn bool - User U - Tr Tr +type Login[U any] struct { + Ok bool + User U + Tr Tr } -func GetLoginContext[U WithLanguage](user U, ok bool) LoginContext[U] { - return LoginContext[U]{ - IsLoggedIn: ok, - User: user, - Tr: GetTr(user), +func LoginFromUser[U WithLanguage](user U, ok bool) Login[U] { + return Login[U]{ + Ok: ok, + User: user, + Tr: GetTr(user), } } |
