feat: Agregar campo 'user' al JSON de configuración
- Agregado campo 'user: String' a MonitoredApp - Función default_user() que obtiene usuario del sistema ($USER/$LOGNAME) - Actualizado todos los lugares donde se crea MonitoredApp: * config.rs (add_app) * app_manager.rs (register_app) - usa config.user * discovery.rs (sync) - extrae de .service file * handlers.rs (update_app) - usa config.user - El campo se guarda en monitored_apps.json - Formulario de edición ahora carga el usuario correcto - Resuelve problema: antes ponía 'pablinux' por defecto - Ahora muestra el usuario real (ej: 'user_apps')
This commit is contained in:
@@ -170,6 +170,7 @@ pub async fn update_app_handler(
|
||||
entry_point,
|
||||
node_bin,
|
||||
mode,
|
||||
user: config.user.clone(),
|
||||
service_file_path,
|
||||
registered_at: chrono::Local::now().to_rfc3339(),
|
||||
deleted: false,
|
||||
|
||||
@@ -32,6 +32,10 @@ pub struct MonitoredApp {
|
||||
#[serde(default = "default_mode")]
|
||||
pub mode: String,
|
||||
|
||||
/// Usuario del sistema que ejecuta la aplicación
|
||||
#[serde(default = "default_user")]
|
||||
pub user: String,
|
||||
|
||||
/// Ruta completa al archivo .service de systemd
|
||||
#[serde(default)]
|
||||
pub service_file_path: String,
|
||||
@@ -64,6 +68,13 @@ fn default_mode() -> String {
|
||||
"production".to_string()
|
||||
}
|
||||
|
||||
fn default_user() -> String {
|
||||
// Intentar obtener el usuario actual del sistema
|
||||
std::env::var("USER")
|
||||
.or_else(|_| std::env::var("LOGNAME"))
|
||||
.unwrap_or_else(|_| "root".to_string())
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct AppConfig {
|
||||
pub apps: Vec<MonitoredApp>,
|
||||
@@ -200,6 +211,7 @@ impl ConfigManager {
|
||||
entry_point: String::new(),
|
||||
node_bin: String::new(),
|
||||
mode: "production".to_string(),
|
||||
user: default_user(),
|
||||
service_file_path: String::new(),
|
||||
registered_at,
|
||||
deleted: false,
|
||||
|
||||
@@ -255,6 +255,7 @@ pub fn sync_discovered_services(services: Vec<DiscoveredService>) {
|
||||
entry_point: service.entry_point.unwrap_or_default(),
|
||||
node_bin: service.node_bin.unwrap_or_default(),
|
||||
mode: service.node_env,
|
||||
user: service.user.clone().unwrap_or_else(|| "root".to_string()),
|
||||
service_file_path: service.service_file.clone(),
|
||||
registered_at,
|
||||
deleted: false,
|
||||
|
||||
@@ -86,6 +86,7 @@ impl AppManager {
|
||||
entry_point,
|
||||
node_bin,
|
||||
mode,
|
||||
user: config.user.clone(),
|
||||
service_file_path,
|
||||
registered_at,
|
||||
deleted: false,
|
||||
|
||||
Reference in New Issue
Block a user