--- name: metabase_update_user kind: function lang: go domain: infra version: "1.0.0" purity: impure signature: "func MetabaseUpdateUser(client MetabaseClient, userID int, fields map[string]any) (map[string]any, error)" description: "Actualiza campos de un usuario en Metabase. Solo se modifican los campos incluidos en el map. Requiere permisos de superusuario. Endpoint: PUT /api/user/:id." tags: [metabase, user, update, api] uses_functions: [] uses_types: [MetabaseClient_go_infra] returns: [] returns_optional: false error_type: "error_go_core" imports: [fmt] tested: false tests: [] test_file_path: "" file_path: "functions/infra/metabase_update_user.go" --- ## Ejemplo ```go // Cambiar nombre user, err := MetabaseUpdateUser(client, 5, map[string]any{ "first_name": "Jane", "last_name": "Smith", }) // Promover a admin user, err := MetabaseUpdateUser(client, 5, map[string]any{ "is_superuser": true, }) // Cambiar grupos user, err := MetabaseUpdateUser(client, 5, map[string]any{ "group_ids": []int{1, 3, 5}, }) ``` ## Notas ### Campos actualizables | Campo | Tipo | Descripcion | |-------|------|-------------| | first_name | string | Nombre | | last_name | string | Apellido | | email | string | Email (debe ser unico) | | is_superuser | bool | Permisos de admin | | group_ids | []int | IDs de grupos del usuario | | locale | string | Locale (ej: "es", "en") | | login_attributes | map | Atributos para sandboxing | Solo incluir los campos que se quieren cambiar. Los demas se mantienen sin modificar. Retorna el objeto usuario actualizado.