31 lines
807 B
Go
Executable File
31 lines
807 B
Go
Executable File
package middlewares
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/sujit-baniya/fiber-boilerplate/pkg/auth"
|
|
)
|
|
|
|
func LoadUserMiddleware(c *fiber.Ctx) error {
|
|
user, err := auth.User(c)
|
|
if err == nil && user != nil {
|
|
// Convertimos el usuario a un map[string]interface{} e incluimos los campos necesarios
|
|
userData := map[string]interface{}{
|
|
"ID": user.ID,
|
|
"Name": user.Name,
|
|
"Email": user.Email,
|
|
"NombreUsuario": user.NombreUsuario,
|
|
"IsAdmin": user.IsAdmin,
|
|
"Role": map[string]interface{}{
|
|
"ID": user.Role.ID,
|
|
"Name": user.Role.Name,
|
|
// Incluye otros campos relevantes del rol
|
|
},
|
|
}
|
|
|
|
// Guarda el map en el contexto
|
|
c.Locals("user", userData)
|
|
}
|
|
// Si no está autenticado, continuamos sin agregar nada
|
|
return c.Next()
|
|
}
|