feat: multi-query/upload .sql en query runner + selector BD por rol
This commit is contained in:
+10
-1
@@ -17,6 +17,7 @@ type Roles struct {
|
||||
EsPortalCliente bool `json:"es_portal_cliente" gorm:"column:es_portal_cliente;default:false"`
|
||||
EsPortalPartner bool `json:"es_portal_partner" gorm:"column:es_portal_partner;default:false"`
|
||||
Submodules []Submodules `json:"submodules" gorm:"many2many:roles_submodules"`
|
||||
ConxDBs []ConxDb `json:"conx_dbs" gorm:"many2many:roles_conx_db"`
|
||||
}
|
||||
|
||||
// TableName overrides the table name used by Modules to `modules`
|
||||
@@ -41,7 +42,7 @@ func AllRoles(limit, offset int, search string) ([]Roles, int64, error) {
|
||||
}
|
||||
|
||||
// Obtener los módulos con paginación
|
||||
if err := db.Order("id DESC").Limit(limit).Offset(offset).Preload("Submodules").Find(&roles).Error; err != nil {
|
||||
if err := db.Order("id DESC").Limit(limit).Offset(offset).Preload("Submodules").Preload("ConxDBs").Find(&roles).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
@@ -62,6 +63,14 @@ func AllRolesSelect() ([]Roles, error) {
|
||||
|
||||
// CreateModule creates a new rol
|
||||
func CreateRole(role Roles) error {
|
||||
var conxDbs []ConxDb
|
||||
for _, db := range role.ConxDBs {
|
||||
var found ConxDb
|
||||
if err := app.Http.Database.DB.First(&found, db.ID).Error; err == nil {
|
||||
conxDbs = append(conxDbs, found)
|
||||
}
|
||||
}
|
||||
role.ConxDBs = conxDbs
|
||||
if err := app.Http.Database.DB.Create(&role).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
+1
-1
@@ -175,7 +175,7 @@ func FindUserByID(id interface{}) (*Users, error) {
|
||||
db := app.Http.Database.DB.Model(&Users{})
|
||||
|
||||
// Buscar el usuario por ID
|
||||
if err := db.Where("id = ?", id).Preload("Role.Submodules.Module").First(&user).Error; err != nil {
|
||||
if err := db.Where("id = ?", id).Preload("Role.Submodules.Module").Preload("Role.ConxDBs").First(&user).Error; err != nil {
|
||||
// Manejar el error si el registro no se encuentra
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, fmt.Errorf("usuario no encontrado con ID: %d", id)
|
||||
|
||||
Reference in New Issue
Block a user