Skip to content

Commit

Permalink
Merge branch '5.1-dev' into users-accesslevel-delete
Browse files Browse the repository at this point in the history
  • Loading branch information
chmst committed Apr 5, 2024
2 parents 2eec18c + 97cf0fe commit ce9a3d0
Show file tree
Hide file tree
Showing 911 changed files with 15,961 additions and 6,436 deletions.
12 changes: 8 additions & 4 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,10 @@ steps:
- phpmin-system-mysql
- phpmin-system-postgres
environment:
WEB_SERVER:
from_secret: webserver
FTP_SERVER:
from_secret: ftpserver
FTP_USERNAME:
from_secret: ftpusername
FTP_PASSWORD:
Expand All @@ -235,11 +239,11 @@ steps:
from_secret: github_token
commands:
- export PLUGIN_DEST_DIR=/artifacts/$DRONE_REPO/$DRONE_BRANCH/$DRONE_PULL_REQUEST/system-tests/$DRONE_BUILD_NUMBER
- echo https://ci.joomla.org$PLUGIN_DEST_DIR
- rclone config create artifacts ftp host ci.joomla.org user $FTP_USERNAME port 21 pass $FTP_PASSWORD
- echo https://$WEB_SERVER$PLUGIN_DEST_DIR
- rclone config create artifacts ftp host $FTP_SERVER user $FTP_USERNAME port 21 pass $FTP_PASSWORD
- rclone mkdir artifacts:$PLUGIN_DEST_DIR
- rclone copy tests/System/output/ artifacts:$PLUGIN_DEST_DIR
- 'curl -X POST "https://api.github.com/repos/$DRONE_REPO/statuses/$DRONE_COMMIT" -H "Content-Type: application/json" -H "Authorization: token $GITHUB_TOKEN" -d "{\"state\":\"failure\", \"context\": \"Artifacts from Failure\", \"description\": \"You can find artifacts from the failure of the build here:\", \"target_url\": \"https://ci.joomla.org$PLUGIN_DEST_DIR\"}" > /dev/null'
- 'curl -X POST "https://api.github.com/repos/$DRONE_REPO/statuses/$DRONE_COMMIT" -H "Content-Type: application/json" -H "Authorization: token $GITHUB_TOKEN" -d "{\"state\":\"failure\", \"context\": \"Artifacts from Failure\", \"description\": \"You can find artifacts from the failure of the build here:\", \"target_url\": \"https://$WEB_SERVER$PLUGIN_DEST_DIR\"}" > /dev/null'
when:
status:
- failure
Expand Down Expand Up @@ -403,6 +407,6 @@ trigger:

---
kind: signature
hmac: c1434b09300896f8627ccb11c92e97878caf7a303772db01a647dca53a92fa3f
hmac: 2511b0e67290bd50c69982b00930e6b7d32097a32cec1bd787cfc3d06c94e875

...
6 changes: 3 additions & 3 deletions .github/workflows/create-translation-pull-request-v5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
git remote add upstream https://github.com/joomla/joomla-cms.git
git fetch upstream
git checkout --progress --force -B translation5 refs/remotes/origin/translation5
git merge upstream/5.0-dev
git merge upstream/5.1-dev
- name: Fetch and extract translations
run: |
Expand Down Expand Up @@ -73,5 +73,5 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
run: |
gh pr list -R joomla/joomla-cms --state open --author joomla-translation-bot -S "Translation Update" | grep -v "No pull" || \
gh pr create --title "Translation Update" --body "Automatically created pull request based on core-translation repository changes" -R joomla/joomla-cms --base 5.0-dev
gh pr list -R joomla/joomla-cms --state open --author joomla-translation-bot -S "[5.x] Translation Update" | grep -v "No pull" || \
gh pr create --title "[5.x] Translation Update" --body "Automatically created pull request based on core-translation repository changes" -R joomla/joomla-cms --base 5.1-dev
4 changes: 2 additions & 2 deletions .phan/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
//
// Note that the **only** effect of choosing `'5.6'` is to infer that functions removed in php 7.0 exist.
// (See `backward_compatibility_checks` for additional options)
// Automatically inferred from composer.json requirement for "php" of "^7.2.5"
'target_php_version' => '7.2',
// Automatically inferred from composer.json requirement for "php" of "^8.1.0"
'target_php_version' => '8.1',

// If enabled, missing properties will be created when
// they are first seen. If false, we'll report an
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ abstract class ActionLogPlugin extends CMSPlugin
*
* @var \Joomla\CMS\Application\CMSApplication
* @since 3.9.0
*
* @deprecated 5.1.0 will be removed in 7.0 use $this->getApplication() instead
*/
protected $app;

Expand All @@ -36,6 +38,8 @@ abstract class ActionLogPlugin extends CMSPlugin
*
* @var \Joomla\Database\DatabaseDriver
* @since 3.9.0
*
* @deprecated 5.1.0 will be removed in 7.0 use $this->getDatabase() instead
*/
protected $db;

Expand Down Expand Up @@ -63,7 +67,8 @@ abstract class ActionLogPlugin extends CMSPlugin
*/
protected function addLog($messages, $messageLanguageKey, $context, $userId = null)
{
$user = $this->app->getIdentity();
$app = $this->getApplication() ?: $this->app;
$user = $app->getIdentity();

foreach ($messages as $index => $message) {
if (!\array_key_exists('userid', $message)) {
Expand All @@ -90,7 +95,7 @@ protected function addLog($messages, $messageLanguageKey, $context, $userId = nu
}

/** @var \Joomla\Component\Actionlogs\Administrator\Model\ActionlogModel $model */
$model = $this->app->bootComponent('com_actionlogs')
$model = $app->bootComponent('com_actionlogs')
->getMVCFactory()->createModel('Actionlog', 'Administrator', ['ignore_request' => true]);

$model->addLog($messages, strtoupper($messageLanguageKey), $context, $userId);
Expand Down
36 changes: 36 additions & 0 deletions administrator/components/com_admin/postinstall/htaccessbrotli.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

/**
* @package Joomla.Administrator
* @subpackage com_admin
*
* @copyright (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* This file contains post-installation message handling for notifying users of a change
* in the default .htaccess file regarding Brotli compression.
*/

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
* Notifies users of a change in the default .htaccess file regarding setting for brotli to prevent double compression
*
* This check returns true regardless of condition.
*
* @return boolean
*
* @since 4.4.4
*/
function admin_postinstall_htaccessbrotli_condition()
{
$htaccessContent = '';

if (is_file(JPATH_ROOT . '/.htaccess') || is_file(JPATH_ROOT . '/htaccess.txt')) {
$htaccessContent = file_get_contents(is_file(JPATH_ROOT . '/.htaccess') ? JPATH_ROOT . '/.htaccess' : JPATH_ROOT . '/htaccess.txt');
}

return !str_contains($htaccessContent, 'E=no-brotli:1');
}
156 changes: 150 additions & 6 deletions administrator/components/com_admin/script.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Extension\ExtensionHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Installer\Installer;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Log\Log;
use Joomla\CMS\Table\Table;
use Joomla\CMS\Uri\Uri;
use Joomla\Database\ParameterType;
use Joomla\Filesystem\File;
use Joomla\Filesystem\Folder;
use Joomla\Registry\Registry;

// phpcs:disable PSR1.Files.SideEffects
Expand Down Expand Up @@ -572,8 +572,6 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'folders_deleted' => [],
'files_errors' => [],
'folders_errors' => [],
'folders_checked' => [],
'files_checked' => [],
];

$files = [
Expand Down Expand Up @@ -2207,6 +2205,127 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
// From 5.1.0-alpha3 to 5.1.0-alpha4
'/administrator/components/com_redirect/tmpl/links/default_batch_footer.php',
'/modules/mod_banners/mod_banners.php',
// From 5.1.0-alpha4 to 5.1.0-beta1
'/administrator/modules/mod_custom/mod_custom.php',
'/administrator/modules/mod_frontend/mod_frontend.php',
'/administrator/modules/mod_latestactions/mod_latestactions.php',
'/administrator/modules/mod_loginsupport/mod_loginsupport.php',
'/administrator/modules/mod_messages/mod_messages.php',
'/administrator/modules/mod_multilangstatus/mod_multilangstatus.php',
'/administrator/modules/mod_sampledata/mod_sampledata.php',
'/administrator/modules/mod_stats_admin/mod_stats_admin.php',
'/administrator/modules/mod_title/mod_title.php',
'/administrator/modules/mod_toolbar/mod_toolbar.php',
'/administrator/modules/mod_user/mod_user.php',
'/administrator/modules/mod_version/mod_version.php',
'/libraries/vendor/web-token/jwt-core/Algorithm.php',
'/libraries/vendor/web-token/jwt-core/AlgorithmManager.php',
'/libraries/vendor/web-token/jwt-core/AlgorithmManagerFactory.php',
'/libraries/vendor/web-token/jwt-core/JWK.php',
'/libraries/vendor/web-token/jwt-core/JWKSet.php',
'/libraries/vendor/web-token/jwt-core/JWT.php',
'/libraries/vendor/web-token/jwt-core/LICENSE',
'/libraries/vendor/web-token/jwt-core/Util/BigInteger.php',
'/libraries/vendor/web-token/jwt-core/Util/ECKey.php',
'/libraries/vendor/web-token/jwt-core/Util/ECSignature.php',
'/libraries/vendor/web-token/jwt-core/Util/Hash.php',
'/libraries/vendor/web-token/jwt-core/Util/JsonConverter.php',
'/libraries/vendor/web-token/jwt-core/Util/KeyChecker.php',
'/libraries/vendor/web-token/jwt-core/Util/RSAKey.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ECDSA.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ES256.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ES384.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ES512.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-eddsa/EdDSA.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental/Blake2b.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental/ES256K.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental/HS1.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental/HS256_64.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental/RS1.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HMAC.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HS256.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HS384.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HS512.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-none/None.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/PS256.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/PS384.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/PS512.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RS256.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RS384.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RS512.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RSAPKCS1.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RSAPSS.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/Util/RSA.php',
'/libraries/vendor/web-token/jwt-signature/Algorithm/MacAlgorithm.php',
'/libraries/vendor/web-token/jwt-signature/Algorithm/SignatureAlgorithm.php',
'/libraries/vendor/web-token/jwt-signature/JWS.php',
'/libraries/vendor/web-token/jwt-signature/JWSBuilder.php',
'/libraries/vendor/web-token/jwt-signature/JWSBuilderFactory.php',
'/libraries/vendor/web-token/jwt-signature/JWSLoader.php',
'/libraries/vendor/web-token/jwt-signature/JWSLoaderFactory.php',
'/libraries/vendor/web-token/jwt-signature/JWSTokenSupport.php',
'/libraries/vendor/web-token/jwt-signature/JWSVerifier.php',
'/libraries/vendor/web-token/jwt-signature/JWSVerifierFactory.php',
'/libraries/vendor/web-token/jwt-signature/LICENSE',
'/libraries/vendor/web-token/jwt-signature/Serializer/CompactSerializer.php',
'/libraries/vendor/web-token/jwt-signature/Serializer/JSONFlattenedSerializer.php',
'/libraries/vendor/web-token/jwt-signature/Serializer/JSONGeneralSerializer.php',
'/libraries/vendor/web-token/jwt-signature/Serializer/JWSSerializer.php',
'/libraries/vendor/web-token/jwt-signature/Serializer/JWSSerializerManager.php',
'/libraries/vendor/web-token/jwt-signature/Serializer/JWSSerializerManagerFactory.php',
'/libraries/vendor/web-token/jwt-signature/Serializer/Serializer.php',
'/libraries/vendor/web-token/jwt-signature/Signature.php',
'/media/plg_system_jooa11y/css/jooa11y.css',
'/media/plg_system_jooa11y/css/jooa11y.min.css',
'/media/plg_system_jooa11y/css/jooa11y.min.css.gz',
'/media/plg_system_jooa11y/scss/jooa11y.scss',
'/media/vendor/joomla-a11y-checker/LICENSE.md',
'/modules/mod_feed/mod_feed.php',
'/modules/mod_languages/mod_languages.php',
'/modules/mod_stats/mod_stats.php',
'/modules/mod_syndicate/mod_syndicate.php',
'/modules/mod_tags_popular/mod_tags_popular.php',
'/modules/mod_tags_similar/mod_tags_similar.php',
'/modules/mod_wrapper/mod_wrapper.php',
// From 5.1.0-beta1 to 5.1.0-beta2
'/administrator/modules/mod_login/mod_login.php',
'/libraries/src/Event/Router/AfterInitialiseRouterEvent.php',
'/libraries/src/Event/Router/RouterEvent.php',
'/libraries/src/Http/HttpFactoryInterface.php',
'/libraries/src/Service/Provider/Http.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_16_128.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_16_64.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_64_128.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_64_64.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_16_128.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_16_64.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_64_128.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_64_64.php',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption/AESCCM.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/A128CTR.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/A192CTR.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/A256CTR.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/AESCTR.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/Chacha20Poly1305.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/RSAOAEP384.php',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption/RSAOAEP512.php',
'/libraries/vendor/web-token/jwt-experimental/LICENSE',
'/libraries/vendor/web-token/jwt-experimental/Signature/Blake2b.php',
'/libraries/vendor/web-token/jwt-experimental/Signature/ES256K.php',
'/libraries/vendor/web-token/jwt-experimental/Signature/HS1.php',
'/libraries/vendor/web-token/jwt-experimental/Signature/HS256_64.php',
'/libraries/vendor/web-token/jwt-experimental/Signature/RS1.php',
'/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/LICENSE',
'/libraries/vendor/web-token/jwt-signature-algorithm-eddsa/LICENSE',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental/LICENSE',
'/libraries/vendor/web-token/jwt-signature-algorithm-hmac/LICENSE',
'/libraries/vendor/web-token/jwt-signature-algorithm-none/LICENSE',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/LICENSE',
// From 5.1.0-beta2 to 5.1.0-rc1
'/administrator/components/com_admin/sql/updates/mysql/4.4.4-2024-03-28.sql',
'/administrator/components/com_admin/sql/updates/postgresql/4.4.4-2024-03-28.sql',
'/administrator/modules/mod_post_installation_messages/mod_post_installation_messages.php',
'/media/vendor/punycode/LICENSE-MIT.txt',
];

$folders = [
Expand Down Expand Up @@ -2441,13 +2560,38 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/libraries/vendor/fgrosse/phpasn1/lib',
'/libraries/vendor/fgrosse/phpasn1',
'/libraries/vendor/fgrosse',
// From 5.1.0-alpha4 to 5.1.0-beta1
'/media/vendor/joomla-a11y-checker',
'/media/plg_system_jooa11y/scss',
'/media/plg_system_jooa11y/css',
'/libraries/vendor/web-token/jwt-signature/Serializer',
'/libraries/vendor/web-token/jwt-signature/Algorithm',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa/Util',
'/libraries/vendor/web-token/jwt-signature',
'/libraries/vendor/web-token/jwt-core/Util',
'/libraries/vendor/web-token/jwt-core',
// From 5.1.0-beta1 to 5.1.0-beta2
'/libraries/vendor/web-token/signature-pack',
'/libraries/vendor/web-token/jwt-signature-algorithm-rsa',
'/libraries/vendor/web-token/jwt-signature-algorithm-none',
'/libraries/vendor/web-token/jwt-signature-algorithm-hmac',
'/libraries/vendor/web-token/jwt-signature-algorithm-experimental',
'/libraries/vendor/web-token/jwt-signature-algorithm-eddsa',
'/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa',
'/libraries/vendor/web-token/jwt-experimental/Signature',
'/libraries/vendor/web-token/jwt-experimental/KeyEncryption',
'/libraries/vendor/web-token/jwt-experimental/ContentEncryption',
'/libraries/vendor/web-token/jwt-experimental',
'/libraries/src/Event/Router',
// From 5.1.0-beta2 to 5.1.0-rc1
'/media/vendor/punycode',
];

$status['files_checked'] = $files;
$status['folders_checked'] = $folders;

foreach ($files as $file) {
if ($fileExists = is_file(JPATH_ROOT . $file)) {
if (is_file(JPATH_ROOT . $file)) {
$status['files_exist'][] = $file;

if ($dryRun === false) {
Expand All @@ -2461,7 +2605,7 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
}

foreach ($folders as $folder) {
if ($folderExists = Folder::exists(JPATH_ROOT . $folder)) {
if (is_dir(JPATH_ROOT . $folder)) {
$status['folders_exist'][] = $folder;

if ($dryRun === false) {
Expand Down

0 comments on commit ce9a3d0

Please sign in to comment.