tijl.dev-core/internal/handlers/auth.go

53 lines
1.1 KiB
Go
Raw Normal View History

2024-08-22 12:57:38 +02:00
package handlers
import (
2024-08-22 18:04:08 +02:00
"net/http"
2024-08-22 15:15:16 +02:00
"git.tijl.dev/tijl/tijl.dev-core/internal/oidc"
"git.tijl.dev/tijl/tijl.dev-core/internal/user"
2024-08-24 17:48:14 +02:00
"git.tijl.dev/tijl/tijl.dev-core/modules/i18n"
2024-08-22 15:15:16 +02:00
"git.tijl.dev/tijl/tijl.dev-core/modules/web"
2024-08-22 12:57:38 +02:00
"github.com/gofiber/fiber/v2"
)
func loginHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err == nil {
return c.Redirect("/account")
} else {
data := *web.Common(c)
data["Title"] = i18n.Translate(c, "login")
return c.Render("login", data, "layouts/base")
}
}
2024-08-22 13:47:16 +02:00
func loggedinHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err != nil {
return c.Redirect("/login")
} else {
data := *web.Common(c)
data["Title"] = i18n.Translate(c, "account")
return c.Render("loggedin", data, "layouts/base")
}
}
2024-08-22 12:57:38 +02:00
func authHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err == nil {
return c.Redirect("/account")
} else {
return oidc.HandleRedirect(c)
}
}
func logoutHandler(c *fiber.Ctx) error {
_, err := user.GetSession(c)
if err == nil {
c.ClearCookie("session")
2024-08-22 18:04:08 +02:00
return c.Redirect("/login", http.StatusOK)
2024-08-22 12:57:38 +02:00
} else {
2024-08-22 18:04:08 +02:00
return c.Redirect("/login", http.StatusUnauthorized)
2024-08-22 12:57:38 +02:00
}
}