fix: seeds ya no reasignan módulos a roles restringidos + Query Runner con alcance real
- Los seeds que creaban módulos nuevos asignaban esos submódulos a TODOS los roles en cada arranque (idempotente contra re-agregar lo ya quitado, pero igual tocaba roles personalizados/restringidos por primera vez apenas existían). Ahora solo se asignan automáticamente al rol "Administrador"; cualquier rol restringido que crees para un empleado ya no recibe módulos nuevos sin que tú se los habilites a propósito desde /app/roles. - Se revierte el bloqueo "solo administrador" que había puesto en /query-runner/run y /run-batch: bloqueaba también a usuarios con el submódulo Query Runner correctamente asignado a su rol. En su lugar se agrega la validación real que faltaba — RunQuery/RunBatchQuery no verificaban que el conx_db_id recibido perteneciera al rol del usuario (solo el listado de conexiones del selector estaba filtrado); ahora si no es admin, se verifica contra Role.ConxDBs antes de ejecutar cualquier SQL. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5ac70a4d6e
commit
21f968c532
+6
-2
@@ -141,8 +141,12 @@ func UserRoutes(app fiber.Router) {
|
||||
protected.Get("/query-runner/databases", controllers.GetDatabases)
|
||||
protected.Get("/query-runner/tables", controllers.GetTables)
|
||||
protected.Get("/query-runner/test", controllers.TestConnection)
|
||||
protected.Post("/query-runner/run", middlewares.SoloAdmin, controllers.RunQuery)
|
||||
protected.Post("/query-runner/run-batch", middlewares.SoloAdmin, controllers.RunBatchQuery)
|
||||
// Sin SoloAdmin a propósito: RunQuery/RunBatchQuery ya limitan el alcance
|
||||
// internamente (un no-admin solo ve/consulta las conexiones que su rol
|
||||
// tiene asignadas vía Role.ConxDBs). El acceso real se controla asignando o
|
||||
// no el submódulo "Query Runner" a su rol, no aquí.
|
||||
protected.Post("/query-runner/run", controllers.RunQuery)
|
||||
protected.Post("/query-runner/run-batch", controllers.RunBatchQuery)
|
||||
protected.Get("/query-runner/history", controllers.GetHistory)
|
||||
protected.Delete("/query-runner/history", controllers.ClearHistory)
|
||||
protected.Post("/query-runner/export/csv", controllers.ExportCSV)
|
||||
|
||||
Reference in New Issue
Block a user