Files
soft_usite/rest/routes/auth.go
T
Lizandro GuarnizoandClaude Sonnet 5 d8f9acd1f8 feat(studio): rediseño con design tokens, pantalla de consumo y rename a Studio
El SPA pasa a llamarse uMind Studio y vive en /studio (el nombre
"Orquestador" no le decía nada al cliente final, que ahora es quien lo usa).

Diseño:
- Los colores viven una sola vez como variables CSS + clases semánticas
  (.card, .input, .btn-*, .badge-*). Antes cada elemento repetía el par
  claro/oscuro a mano en cientos de lugares y cambiar un tono era buscar
  y reemplazar.
- darkMode pasa de 'media' a 'class' con toggle propio persistido: el
  usuario elige, no el sistema operativo. Se aplica antes de montar la
  app para que no parpadee.
- Componentes compartidos (UiModal, UiBadge, UiEmptyState) donde antes
  había markup duplicado inline.

Nueva pantalla de consumo (/tenants/:id/uso): filtros por fecha con
atajos, total del período, pendiente de facturar, barra contra el tope
del plan, desglose por tipo y gráfico por día. El gráfico son divs con
altura porcentual — no vale traer una librería de charts para esto.

Rename:
- /studio y /portal/studio; /orchestrator redirige 301 conservando la
  ruta interna, así los enlaces guardados siguen funcionando. Los assets
  del bundle quedan exentos (el `base` de Vite sigue en /orchestrator/):
  redirigirlos rompería el SPA.
- El submódulo sembrado migra el mismo registro buscando por las tres
  URLs históricas (/app/umind → /orchestrator → /studio) en vez de
  dejar entradas duplicadas en el menú.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 12:02:54 -05:00

97 lines
2.7 KiB
Go
Executable File

package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
apiControllers "github.com/sujit-baniya/fiber-boilerplate/rest/controllers/api"
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)
func WebAuthRoutes(App fiber.Router) {
App.Get("/login",
middlewares.RedirectToHomePageOnLogin,
controllers.LoginGet,
)
App.Post("/do/login",
middlewares.ValidateLoginPost,
controllers.LoginPost,
)
App.Post("/do/logout",
controllers.LogoutPost,
)
App.Get("/register", middlewares.RedirectToHomePageOnLogin, controllers.RegisterGet)
App.Post("/do/register",
middlewares.RedirectToHomePageOnLogin,
middlewares.ValidateRegisterPost,
controllers.RegisterPost,
)
App.Get("/reset-password",
middlewares.ValidatePasswordReset,
controllers.PasswordReset,
)
App.Get("/token-vencido",
controllers.TokenVencido,
)
App.Post("/do/reset-password",
controllers.RequestPasswordResetPost,
)
// Generar contraseñas aleatorias /do/generate-password
App.Post("/do/generate-password",
controllers.GeneratePasswordPost,
)
App.Get("/request-password-reset", middlewares.RedirectToHomePageOnLogin, controllers.RequestPasswordReset)
App.Post("/do/password-reset/:token",
middlewares.RedirectToHomePageOnLogin,
middlewares.ValidatePasswordResetPost,
middlewares.ValidateRegisterPost,
controllers.PasswordResetPost)
App.Get("/resend/confirm", controllers.ResendConfirmEmail)
App.Get("/do/verify-email",
middlewares.ValidateConfirmToken,
controllers.VerifyRegisteredEmail,
)
}
func AuthRoutes(App fiber.Router) {
App.Post("/do/login",
middlewares.ValidateApiLoginPost,
apiControllers.ApiLoginPost,
)
App.Post("/me", controllers.Me)
App.Post("/do/logout", controllers.LogoutPost)
App.Get("/register", middlewares.RedirectToHomePageOnLogin, controllers.RegisterGet)
//App.Post("/do/register",
// middlewares.ValidateApiRegisterPost,
// apiControllers.ApiRegisterPost,
//)
App.Get("/reset-password",
middlewares.ValidatePasswordReset,
controllers.PasswordReset,
)
App.Post("/do/reset-password",
controllers.RequestPasswordResetPost,
)
// Generar contraseñas aleatorias /do/generate-password
App.Post("/do/generate-password",
controllers.GeneratePasswordPost,
)
App.Get("/request-password-reset", middlewares.RedirectToHomePageOnLogin, controllers.RequestPasswordReset)
App.Post("/do/password-reset/:token",
middlewares.RedirectToHomePageOnLogin,
middlewares.ValidatePasswordResetPost,
middlewares.ValidateRegisterPost,
controllers.PasswordResetPost)
App.Get("/resend/confirm", controllers.ResendConfirmEmail)
App.Get("/do/verify-email",
middlewares.ValidateConfirmToken,
controllers.VerifyRegisteredEmail,
)
}