summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2023-10-24 08:30:28 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2023-10-24 08:30:28 +0200
commited23d402fec268e163ec895748f43e3254ba3dfd (patch)
tree1b3b214eabe9ff8d2a18803c64e47f54f6a1fd2d
parenta4f3f4ddfafe102232d3341cd432219a40a0d64e (diff)
refactor: Rename & include more featuresv0.2.0
-rw-r--r--auth/middlewares.go10
-rw-r--r--core/template.go18
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),
}
}