51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package handlers
|
|
|
|
import (
|
|
"git.tijl.dev/tijl/tijl.dev/internal/i18n"
|
|
"git.tijl.dev/tijl/tijl.dev/internal/oidc"
|
|
"git.tijl.dev/tijl/tijl.dev/internal/user"
|
|
"git.tijl.dev/tijl/tijl.dev/modules/web"
|
|
"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")
|
|
}
|
|
}
|
|
|
|
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")
|
|
}
|
|
}
|
|
|
|
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")
|
|
return c.Redirect("/login")
|
|
} else {
|
|
return c.Redirect("/login")
|
|
}
|
|
}
|