From 7e6be67f616103997de673f0e275eb39d81d38f4 Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 20 Mar 2025 14:29:55 -0700 Subject: [PATCH] feat: add ReplaceKey functionality to plugin (#1264) This change enhances the plugin's capability to manage license keys effectively. - Introduced `ReplaceKey.php` from the webgui repo for handling auto-extended key check & installation - Updated dynamix.unraid.net.plg to include the new ReplaceKey.php in restore and preserve files. - Changed the `check()` method call in `Registration.page` to use the `force` parameter per https://app.asana.com/0/1204220153625175/1209573221367693/f - Moved the `require_once` for `reboot-details.php` in Downgrade.page and Update.page to ensure it's included after the `ReplaceKey` check. ## Summary by CodeRabbit - **New Features** - Enhanced license key management now validates and updates credentials more reliably. - Essential configuration files are preserved throughout updates and uninstalls to maintain system integrity. - **Chores** - Optimized the update and registration workflows for a smoother, more stable user experience. - Adjusted internal processing steps to prepare for upcoming improvements in update checks. --- plugin/plugins/dynamix.unraid.net.plg | 2 + .../dynamix.my.servers/Registration.page | 2 +- .../dynamix.plugin.manager/Downgrade.page | 3 +- .../dynamix.plugin.manager/Update.page | 5 +- .../scripts/unraidcheck | 6 +- .../plugins/dynamix/include/ReplaceKey.php | 237 ++++++++++++++++++ web/composables/services/webgui.ts | 2 +- 7 files changed, 250 insertions(+), 7 deletions(-) create mode 100644 plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix/include/ReplaceKey.php diff --git a/plugin/plugins/dynamix.unraid.net.plg b/plugin/plugins/dynamix.unraid.net.plg index 008222d8f..72a9c4d69 100755 --- a/plugin/plugins/dynamix.unraid.net.plg +++ b/plugin/plugins/dynamix.unraid.net.plg @@ -384,6 +384,7 @@ if [ -f /tmp/restore-files-dynamix-unraid-net ]; then "/usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php" "/usr/local/emhttp/plugins/dynamix/include/ProvisionCert.php" "/usr/local/emhttp/plugins/dynamix/include/UpdateDNS.php" + "/usr/local/emhttp/plugins/dynamix/include/ReplaceKey.php" "/usr/local/emhttp/plugins/dynamix/include/Wrappers.php" "/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page" "/usr/local/emhttp/plugins/dynamix.plugin.manager/Update.page" @@ -505,6 +506,7 @@ echo preserveFilesDirs=( "move:/usr/local/emhttp/plugins/dynamix/Registration.page:preventDowngrade" "move:/usr/local/emhttp/plugins/dynamix/include/UpdateDNS.php:preventDowngrade" + "move:/usr/local/emhttp/plugins/dynamix/include/ReplaceKey.php:preventDowngrade" "move:/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page:preventDowngrade" "move:/usr/local/emhttp/plugins/dynamix.plugin.manager/Update.page:preventDowngrade" "move:/usr/local/emhttp/plugins/dynamix.plugin.manager/scripts/unraidcheck:preventDowngrade" diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/Registration.page b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/Registration.page index 9689371e6..dd60c4e03 100644 --- a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/Registration.page +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/Registration.page @@ -16,7 +16,7 @@ Tag="pencil" */ require_once "$docroot/plugins/dynamix/include/ReplaceKey.php"; $replaceKey = new ReplaceKey(); -$replaceKey->check(); +$replaceKey->check(true); ?> diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page index 983b51cf3..037740ac6 100644 --- a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page @@ -17,11 +17,10 @@ Tag="upload" * @note icon-update is rotated via CSS in myservers1.php */ require_once "$docroot/plugins/dynamix/include/ReplaceKey.php"; -require_once "$docroot/plugins/dynamix.my.servers/include/reboot-details.php"; - $replaceKey = new ReplaceKey(); $replaceKey->check(); +require_once "$docroot/plugins/dynamix.my.servers/include/reboot-details.php"; $rebootDetails = new RebootDetails(); $rebootDetails->setPrevious(); diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Update.page b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Update.page index e7d15c474..c3a5e52e6 100644 --- a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Update.page +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Update.page @@ -13,11 +13,12 @@ Tag="upload" * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. */ -require_once "$docroot/plugins/dynamix.my.servers/include/reboot-details.php"; require_once "$docroot/plugins/dynamix/include/ReplaceKey.php"; -$rebootDetails = new RebootDetails(); $replaceKey = new ReplaceKey(); $replaceKey->check(); + +require_once "$docroot/plugins/dynamix.my.servers/include/reboot-details.php"; +$rebootDetails = new RebootDetails(); ?>