diff --git a/repository/users.go b/repository/user.go similarity index 100% rename from repository/users.go rename to repository/user.go diff --git a/router/users.go b/router/user.go similarity index 89% rename from router/users.go rename to router/user.go index 10cc289..d33c900 100644 --- a/router/users.go +++ b/router/user.go @@ -7,6 +7,7 @@ import ( "forge.capytal.company/capytalcode/project-comicverse/service" "forge.capytal.company/capytalcode/project-comicverse/templates" "forge.capytal.company/loreddev/x/smalltrip/exception" + "forge.capytal.company/loreddev/x/smalltrip/middleware" "forge.capytal.company/loreddev/x/tinyssert" ) @@ -14,6 +15,8 @@ type userController struct { assert tinyssert.Assertions templates templates.ITemplate service *service.UserService + + loginPath string } func newUserController( @@ -132,6 +135,17 @@ func (ctrl userController) register(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/", http.StatusSeeOther) } +func (ctrl userController) authMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if ctrl.isLogged(r) { + http.Redirect(w, r, ctrl.loginPath, http.StatusTemporaryRedirect) + } + next.ServeHTTP(w, r) + }) +} + +var _ middleware.Middleware = userController{}.authMiddleware + func (ctrl userController) isLogged(r *http.Request) bool { // TODO: Check if token in valid (depends on token service being implemented) cs := r.CookiesNamed("token")