I am batman

This commit is contained in:
2026-07-12 20:26:16 -04:00
commit 5a3a6357cf
37 changed files with 2938 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
package middleware
import (
"github.com/gofiber/fiber/v2"
"gorm.io/gorm"
)
func OnlyAdmin(db *gorm.DB, fn fiber.Handler) fiber.Handler {
return func(c *fiber.Ctx) error {
role, ok := c.Locals("userRole").(string)
if !ok || role != "Admin" {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "Access denied"})
}
return fn(c)
}
}
func OnlyModerator(db *gorm.DB, fn fiber.Handler) fiber.Handler {
return func(c *fiber.Ctx) error {
role, ok := c.Locals("userRole").(string)
if !ok || (role != "Moderator" && role != "Admin") {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "Access denied"})
}
return fn(c)
}
}
func OnlyUser(db *gorm.DB, fn fiber.Handler) fiber.Handler {
return func(c *fiber.Ctx) error {
role, ok := c.Locals("userRole").(string)
if !ok || role != "User" {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "Access denied"})
}
return fn(c)
}
}