From 441e1805c108a6c1cd35ee093246b975a03f8474 Mon Sep 17 00:00:00 2001 From: Pujit Mehrotra Date: Tue, 15 Jul 2025 10:30:04 -0400 Subject: [PATCH] fix: replace myservers.cfg reads in UpdateFlashBackup.php (#1517) ## Summary by CodeRabbit * **New Features** * Added a new method for verifying user sign-in status using a dedicated configuration handler. * Introduced a class to manage connection configuration and status checks. * **Refactor** * Updated logic for checking connection and registration status to use new configuration handling methods for improved clarity and reliability. --- .../etc/rc.d/rc.flash_backup | 25 +++++++++--------- .../include/UpdateFlashBackup.php | 5 ++-- .../include/connect-config.php | 26 +++++++++++++++++++ 3 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/connect-config.php diff --git a/plugin/source/dynamix.unraid.net/etc/rc.d/rc.flash_backup b/plugin/source/dynamix.unraid.net/etc/rc.d/rc.flash_backup index 41aba8716..9d62778dc 100755 --- a/plugin/source/dynamix.unraid.net/etc/rc.d/rc.flash_backup +++ b/plugin/source/dynamix.unraid.net/etc/rc.d/rc.flash_backup @@ -166,22 +166,23 @@ _enabled() { return 1 } _connected() { - CFG=$API_CONFIG_HOME/connect.json - [[ ! -f "${CFG}" ]] && return 1 + local connect_config username status_cfg connection_status + connect_config=$API_CONFIG_HOME/connect.json + [[ ! -f "${connect_config}" ]] && return 1 - username=$(jq -r '.username // empty' "${CFG}" 2>/dev/null) + # is the user signed in? + username=$(jq -r '.username // empty' "${connect_config}" 2>/dev/null) if [ -z "${username}" ]; then return 1 fi - # the minigraph status is no longer synced to the connect config file - # to avoid a false negative, we'll omit this check for now. - # - # shellcheck disable=SC1090 - # source <(sed -nr '/\[connectionStatus\]/,/\[/{/minigraph/p}' "${CFG}" 2>/dev/null) - # # ensure connected - # if [[ -z "${minigraph}" || "${minigraph}" != "CONNECTED" ]]; then - # return 1 - # fi + # are we connected to mothership? + status_cfg="/var/local/emhttp/connectStatus.json" + [[ ! -f "${status_cfg}" ]] && return 1 + connection_status=$(jq -r '.connectionStatus // empty' "${status_cfg}" 2>/dev/null) + if [[ "${connection_status}" != "CONNECTED" ]]; then + return 1 + fi + return 0 } _haserror() { diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php index c61efd225..cd30c5650 100644 --- a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/UpdateFlashBackup.php @@ -18,10 +18,9 @@ $cli = php_sapi_name()=='cli'; $docroot ??= ($_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp'); require_once "$docroot/webGui/include/Wrappers.php"; +require_once "$docroot/plugins/dynamix.my.servers/include/connect-config.php"; -$myservers_flash_cfg_path='/boot/config/plugins/dynamix.my.servers/myservers.cfg'; -$myservers = file_exists($myservers_flash_cfg_path) ? @parse_ini_file($myservers_flash_cfg_path,true) : []; -$isRegistered = !empty($myservers['remote']['username']); +$isRegistered = ConnectConfig::isUserSignedIn(); // Read connection status from the new API status file $statusFilePath = '/var/local/emhttp/connectStatus.json'; diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/connect-config.php b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/connect-config.php new file mode 100644 index 000000000..cee6bf8e9 --- /dev/null +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/connect-config.php @@ -0,0 +1,26 @@ +