fix: Joomla update server — element names, platform gating, domain race #637
Reference in New Issue
Block a user
Delete Branch "fix"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Four fixes for the Joomla update server system:
1. Element name derivation (#635)
AutoElementName()was using the manifest Name field verbatim, producingpkg_MokoSuiteBackupinstead ofpkg_mokosuitebackup. Joomla's updater matches byelement + type + client_idin#__extensions, so the case mismatch made updates invisible.AutoElementName()plg_prefix for plugins (Joomla plugins have no element prefix)2. Changelog element mismatch
changelog.xmlresolved the element name only from the config table, whileupdates.xmluses the manifest as primary source. This caused mismatched<element>values between the two feeds, breaking Joomla's changelog popup.updates.xml3. Platform gating
ServeUpdatesXMLonly blockeddolibarr, meaning WordPress/PrestaShop/Drupal/WHMCS repos incorrectly served Joomla XML responses.joomla,both, or unset4. Domain auto-association race condition
The domain count check and insert in
ValidateLicenseKeywere not atomic — concurrent requests from different domains could both pass the MaxSites check and exceed the limit.db.WithTxfor atomicityvalidateAndAssociateDomain()for readabilityTest plan
AutoElementName()returnspkg_mokosuitebackupfor Name=MokoSuiteBackup, PackageType=packagelowernamewith no prefixchangelog.xmlandupdates.xmlemit matching<element>values/updates.xmlFixes #635
Pull request closed