diff options
author | 2018-01-18 21:53:31 -0800 | |
---|---|---|
committer | 2018-01-20 13:25:20 -0800 | |
commit | bdcc4134fa37a071d696afdcaadf21ffa5f3c323 (patch) | |
tree | f4a5d31f140713bd38c776d1f1c3aec152eaa0e8 /http/middleware | |
parent | 6302c3b2194e43add648724044bb293ea15c5116 (diff) |
Store language in session to show the login page translated
Diffstat (limited to 'http/middleware')
-rw-r--r-- | http/middleware/context_keys.go | 3 | ||||
-rw-r--r-- | http/middleware/session.go | 1 | ||||
-rw-r--r-- | http/middleware/user_session.go | 10 |
3 files changed, 13 insertions, 1 deletions
diff --git a/http/middleware/context_keys.go b/http/middleware/context_keys.go index 31ad286..887a90e 100644 --- a/http/middleware/context_keys.go +++ b/http/middleware/context_keys.go @@ -29,6 +29,9 @@ var ( // UserSessionTokenContextKey is the context key used to store the user session ID. UserSessionTokenContextKey = &ContextKey{"UserSessionToken"} + // UserLanguageContextKey is the context key to store user language. + UserLanguageContextKey = &ContextKey{"UserLanguageContextKey"} + // SessionIDContextKey is the context key used to store the session ID. SessionIDContextKey = &ContextKey{"SessionID"} diff --git a/http/middleware/session.go b/http/middleware/session.go index a0e9fbd..c3876f6 100644 --- a/http/middleware/session.go +++ b/http/middleware/session.go @@ -59,6 +59,7 @@ func (s *SessionMiddleware) Handler(next http.Handler) http.Handler { ctx = context.WithValue(ctx, OAuth2StateContextKey, session.Data.OAuth2State) ctx = context.WithValue(ctx, FlashMessageContextKey, session.Data.FlashMessage) ctx = context.WithValue(ctx, FlashErrorMessageContextKey, session.Data.FlashErrorMessage) + ctx = context.WithValue(ctx, UserLanguageContextKey, session.Data.Language) next.ServeHTTP(w, r.WithContext(ctx)) }) } diff --git a/http/middleware/user_session.go b/http/middleware/user_session.go index d67445f..820d093 100644 --- a/http/middleware/user_session.go +++ b/http/middleware/user_session.go @@ -50,7 +50,15 @@ func (s *UserSessionMiddleware) Handler(next http.Handler) http.Handler { func (s *UserSessionMiddleware) isPublicRoute(r *http.Request) bool { route := mux.CurrentRoute(r) switch route.GetName() { - case "login", "checkLogin", "stylesheet", "javascript", "oauth2Redirect", "oauth2Callback", "appIcon", "favicon", "webManifest": + case "login", + "checkLogin", + "stylesheet", + "javascript", + "oauth2Redirect", + "oauth2Callback", + "appIcon", + "favicon", + "webManifest": return true default: return false |