diff --git a/internal/server/handle_auth.go b/internal/server/handle_auth.go
index 5b81e7e..c21baa1 100644
--- a/internal/server/handle_auth.go
+++ b/internal/server/handle_auth.go
@@ -6,6 +6,7 @@ import (
"github.com/gorilla/sessions"
"github.com/labstack/echo-contrib/session"
"github.com/labstack/echo/v4"
+
"github.com/rjNemo/rentease/internal/auth"
"github.com/rjNemo/rentease/internal/view"
)
@@ -34,14 +35,13 @@ func handleLogin(as *auth.Service) echo.HandlerFunc {
}
if !as.Authenticate(c.FormValue("email"), c.FormValue("password")) {
- return c.Redirect(http.StatusTemporaryRedirect, routeLogin)
+ return hxRedirect(c, http.StatusTemporaryRedirect, routeLogin)
}
sess.Values["foo"] = "bar"
if err := sess.Save(c.Request(), c.Response()); err != nil {
return err
}
- c.Response().Header().Add("HX-Redirect", "/bookings")
- return c.NoContent(200)
+ return hxRedirect(c, http.StatusOK, "/bookings")
}
}
diff --git a/internal/server/helper.go b/internal/server/helper.go
new file mode 100644
index 0000000..fe9be48
--- /dev/null
+++ b/internal/server/helper.go
@@ -0,0 +1,26 @@
+package server
+
+import (
+ "context"
+ "log"
+
+ "github.com/a-h/templ"
+ "github.com/labstack/echo/v4"
+)
+
+func renderTempl(c echo.Context, status int, t templ.Component) error {
+ c.Response().Writer.WriteHeader(status)
+
+ err := t.Render(context.Background(), c.Response().Writer)
+ if err != nil {
+ log.Printf("failed to render response template %s", err)
+ return err
+ }
+
+ return nil
+}
+
+func hxRedirect(c echo.Context, statusCode int, url string) error {
+ c.Response().Header().Add("HX-Redirect", url)
+ return c.NoContent(statusCode)
+}
diff --git a/internal/server/server.go b/internal/server/server.go
index 5d82e56..33fa7a4 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -5,13 +5,11 @@ import (
"embed"
"errors"
"fmt"
- "log"
"net/http"
"os"
"os/signal"
"time"
- "github.com/a-h/templ"
"github.com/getsentry/sentry-go"
sentryecho "github.com/getsentry/sentry-go/echo"
"github.com/gorilla/sessions"
@@ -123,18 +121,6 @@ func (s Server) Start() {
}
}
-func renderTempl(c echo.Context, status int, t templ.Component) error {
- c.Response().Writer.WriteHeader(status)
-
- err := t.Render(context.Background(), c.Response().Writer)
- if err != nil {
- log.Printf("failed to render response template %s", err)
- return err
- }
-
- return nil
-}
-
func NewRouter(fs embed.FS, debug bool, secret string, origins []string) *echo.Echo {
e := echo.New()
// config
diff --git a/internal/view/login.templ b/internal/view/login.templ
index fedb33a..fcb352c 100644
--- a/internal/view/login.templ
+++ b/internal/view/login.templ
@@ -16,6 +16,7 @@ templ Login() {
+ Registration is disabled. Please ask an admin to activate it.