initial commit

This commit is contained in:
Zoe
2024-11-11 00:18:02 -06:00
commit 796e889809
19 changed files with 1898 additions and 0 deletions

44
middleware/admin.go Normal file
View File

@@ -0,0 +1,44 @@
package middleware
import (
"database/sql"
"time"
"github.com/gofiber/fiber/v3"
)
type Session struct {
SessionID string `json:"session_id"`
ExpiresAt string `json:"expires_at"`
}
func AdminMiddleware(db *sql.DB) func(c fiber.Ctx) error {
return func(c fiber.Ctx) error {
sessionToken := c.Cookies("SessionToken")
if sessionToken == "" {
return c.Redirect().To("/admin/login")
}
// Check if session exists
var session Session
err := db.QueryRow(`
SELECT session_id, expires_at
FROM sessions
WHERE session_id = ?
`, sessionToken).Scan(&session.SessionID, &session.ExpiresAt)
if err != nil {
return c.Redirect().To("/admin/login")
}
sessionExpiry, err := time.Parse("2006-01-02 15:04:05-07:00", session.ExpiresAt)
if err != nil {
return c.Redirect().To("/admin/login")
}
if sessionExpiry.Before(time.Now()) {
return c.Redirect().To("/admin/login")
}
return c.Next()
}
}