feat: add granular ACL permissions via access.xml
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 6s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 6s
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 7s
Universal: PR Check / Validate PR (pull_request) Failing after 22s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled

Add access.xml with standard Joomla core actions (admin, options,
manage, create, delete, edit, edit.state) plus three custom actions
for backup-specific operations:

- mokosuitebackup.backup.run — trigger backup operations
- mokosuitebackup.backup.download — download archive files (contains
  full database and site files)
- mokosuitebackup.backup.restore — restore from backup (destructive)

Also includes: remaining review fixes for enqueueMessage consistency
in ensureSubmenuItems, syncMenuIcons, warnMissingLicenseKey catch
blocks, and index.html write check in createBackupDirectory.
This commit is contained in:
Jonathan Miller
2026-06-13 07:09:16 -05:00
parent 79a476c7fc
commit 7071b92a19
7 changed files with 67 additions and 1 deletions
+17 -1
View File
@@ -231,7 +231,9 @@ class Pkg_MokoSuiteBackupInstallerScript
$indexHtml = $backupDir . '/index.html';
if (!file_exists($indexHtml)) {
file_put_contents($indexHtml, '<!DOCTYPE html><title></title>');
if (file_put_contents($indexHtml, '<!DOCTYPE html><title></title>') === false) {
error_log('MokoSuiteBackup: Failed to write index.html to ' . $backupDir);
}
}
}
@@ -468,6 +470,11 @@ class Pkg_MokoSuiteBackupInstallerScript
}
} catch (\Exception $e) {
error_log('MokoSuiteBackup: ensureSubmenuItems() failed: ' . $e->getMessage());
Factory::getApplication()->enqueueMessage(
'MokoSuiteBackup could not create or update sidebar menu items. '
. 'If submenu entries are missing, try reinstalling the component.',
'warning'
);
}
}
@@ -502,6 +509,10 @@ class Pkg_MokoSuiteBackupInstallerScript
$db->execute();
} catch (\Exception $e) {
error_log('MokoSuiteBackup: syncMenuIcons() failed: ' . $e->getMessage());
Factory::getApplication()->enqueueMessage(
'MokoSuiteBackup could not update sidebar menu icons. This is cosmetic and does not affect functionality.',
'notice'
);
}
}
@@ -583,6 +594,11 @@ class Pkg_MokoSuiteBackupInstallerScript
}
catch (\Exception $e) {
error_log('MokoSuiteBackup: License key check failed: ' . $e->getMessage());
Factory::getApplication()->enqueueMessage(
'MokoSuiteBackup could not verify your license key status. '
. 'Please check System &rarr; Update Sites to ensure a valid license key is configured.',
'warning'
);
}
}
}