Skip to content

feat(upgrade): integrate UpgradeMODX functionality into core - #71

Open
Ibochkarev wants to merge 3 commits into
3.xfrom
feat/integrate-upgrade-modx-core
Open

feat(upgrade): integrate UpgradeMODX functionality into core#71
Ibochkarev wants to merge 3 commits into
3.xfrom
feat/integrate-upgrade-modx-core

Conversation

@Ibochkarev

@Ibochkarev Ibochkarev commented Aug 21, 2026

Copy link
Copy Markdown
Member

Что сделано

Добавляет апгрейд ядра в один клик из Manager: скачивает пакет из Sentinel, верифицирует SHA-256 через HTTPS, распаковывает с проверками путей ZipArchive, копирует файлы (пропускает config.inc.php), затем редиректит на setup. Виджет Dashboard Updates и бейдж header показывают апдейты ядра и Extras.

Зачем нужно

modxcms#13715 / modxcms#16660 просят путь апгрейда из менеджера вместо FTP плюс экстра UpgradeMODX. modxcms#14182 просит показывать апдейты Extras на дашборде.

Как проверить

  1. Пользователь с upgrade_core (и Administrator, если группы заданы) открывает виджет Updates
  2. Запустите Upgrade MODX, когда релиз доступен — ожидание редирект на setup
  3. Подтвердите, что бейдж header считает апдейты ядра + Extras
  4. Подтвердите, что второй параллельный апгрейд возвращает ошибку занятости
  5. composer test -- --filter UpgradeCoreTest

Связанные

Refs modxcms#13715
Refs modxcms#16660
Refs modxcms#14182

Оригинал: modxcms#16856

- Add SoftwareUpdate/UpgradeCore processor for one-button MODX upgrade
- Add Upgrade MODX and Download buttons to dashboard updates widget
- Add updates badge in manager navbar when MODX or Extras updates available
- Show Extras package names in dashboard widget when updates available
- Add system settings: core_upgrade_temp_dir, core_upgrade_allowed_groups, core_upgrade_force_pcl_zip
- Add unit tests for UpgradeCore validation

Resolves modxcms#13715, modxcms#16660, modxcms#14182
- Change permission for UpgradeCore processor to 'upgrade_core'
- Add checksum verification for downloaded upgrade packages
- Implement path traversal protection during zip extraction
- Add unit tests for permission checks and error handling in UpgradeCore
- Update lexicon entries for new permissions and error messages
Use a unique work directory, ZipArchive-only safe extract, HTTPS plus required SHA-256, flock, site_url redirect, and require upgrade_core without group bypass.
@Ibochkarev Ibochkarev changed the title feat(upgrade): интеграция UpgradeMODX в ядро feat(upgrade): integrate UpgradeMODX functionality into core Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant