From 7197b45c41111d164e22cbfb98fdcaa84fda15e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20de=20la=20Pen=CC=83a?=
Date: Wed, 21 Oct 2026 16:56:02 +0100 Subject: [PATCH 1/2] feat: hide sensitive columns from find and replace --- .phpstan/constants.php | 12 +++++++ src/FindReplace/Exclusion/Package.php | 21 +++++++++++++ tests/FindReplace/Exclusion/PackageTest.php | 35 +++++++++++++++++++++ tests/bootstrap.php | 12 +++++++ 4 files changed, 80 insertions(+) create mode 100644 src/FindReplace/Exclusion/Package.php create mode 100644 tests/FindReplace/Exclusion/PackageTest.php diff --git a/.phpstan/constants.php b/.phpstan/constants.php index debb2b1..146563c 100644 --- a/.phpstan/constants.php +++ b/.phpstan/constants.php @@ -4,3 +4,15 @@ const NAILS_CI_SYSTEM_PATH = NAILS_COMMON_PATH . 'vendor/pocketarc/codeigniter/system/'; const BASEPATH = NAILS_CI_SYSTEM_PATH; const NAILS_DB_PREFIX = 'nails_'; + +if (!interface_exists(\Nails\FindReplace\Interfaces\Exclusion::class, false)) { + foreach ([ + dirname(__DIR__) . '/vendor/nails/common/src/FindReplace/Interfaces/Exclusion.php', + dirname(__DIR__, 2) . '/common/src/FindReplace/Interfaces/Exclusion.php', + ] as $nailsFindReplaceExclusion) { + if (is_file($nailsFindReplaceExclusion)) { + require_once $nailsFindReplaceExclusion; + break; + } + } +} diff --git a/src/FindReplace/Exclusion/Package.php b/src/FindReplace/Exclusion/Package.php new file mode 100644 index 0000000..6eb9158 --- /dev/null +++ b/src/FindReplace/Exclusion/Package.php @@ -0,0 +1,21 @@ +hidden() + ); + } + + public function testReadOnly(): void + { + self::assertSame( + [], + (new Package())->readOnly() + ); + } +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 93ac78f..67eac2b 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -5,3 +5,15 @@ require 'vendor/autoload.php'; Testing::bootstrapModule(__FILE__); + +if (!interface_exists(\Nails\FindReplace\Interfaces\Exclusion::class, false)) { + foreach ([ + dirname(__DIR__) . '/vendor/nails/common/src/FindReplace/Interfaces/Exclusion.php', + dirname(__DIR__, 2) . '/common/src/FindReplace/Interfaces/Exclusion.php', + ] as $nailsFindReplaceExclusion) { + if (is_file($nailsFindReplaceExclusion)) { + require_once $nailsFindReplaceExclusion; + break; + } + } +} From a55ffe2f419f3b1e3f7e16e3fbdf6e7257e56535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20de=20la=20Pen=CC=83a?=
Date: Wed, 21 Oct 2026 17:04:36 +0100 Subject: [PATCH 2/2] fix: require find-replace so exclusion tests can autoload --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index 8036df4..c059653 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,7 @@ "nails/module-cron": "dev-develop" }, "require-dev": { + "nails/module-find-replace": "dev-develop", "phpunit/phpunit": "^12.0", "phpstan/phpstan": "^2.0", "nails/module-admin": "dev-develop",