security/routes/manage.go

56 lines
1.0 KiB
Go

package routes
import (
"git.matterlinux.xyz/matter/security/lib"
"git.matterlinux.xyz/matter/security/log"
"github.com/gofiber/fiber/v2"
)
func MiddleAuth(c *fiber.Ctx) error {
cookie := c.Cookies("auth")
if cookie == "" {
return c.Redirect("/login")
}
users, err := lib.LoadUsers()
if err != nil {
log.Error("Failed to load users: %s", err.Error())
return lib.RenderError(c, 500)
}
for _, u := range users {
if u.Cookie == "notset" || u.Cookie == "" {
continue
}
if cookie == u.Cookie {
return c.Next()
}
}
c.ClearCookie("auth")
return c.Redirect("/login")
}
func GET_Manage(c *fiber.Ctx) error {
return c.Render("manage", fiber.Map{})
}
func GET_Logout(c *fiber.Ctx) error {
user, err := lib.GetUser(c)
if err != nil {
log.Error("Failed to load user: %s", err.Error())
return lib.RenderError(c, 500)
}
user.Cookie = "notset"
err = lib.UpdateUser(user)
if err != nil {
log.Error("Failed to save users: %s", err.Error())
return lib.RenderError(c, 500)
}
return c.Redirect("/login")
}