From caed04db10d7d43dc106de205ac020edf405c90e Mon Sep 17 00:00:00 2001 From: indifferentketchup Date: Thu, 30 Apr 2026 21:45:34 +0000 Subject: [PATCH] Add AdminGrantedAccessInformation insight --- .../AdminGrantedAccessInformation.php | 26 ++++++++++++++++++ src/Pattern/ProjectZomboid/AdminPattern.php | 2 ++ .../AdminGrantedAccessInformationTest.php | 27 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 src/Analysis/ProjectZomboid/AdminGrantedAccessInformation.php create mode 100644 test/tests/Games/ProjectZomboid/Analysis/AdminGrantedAccessInformationTest.php diff --git a/src/Analysis/ProjectZomboid/AdminGrantedAccessInformation.php b/src/Analysis/ProjectZomboid/AdminGrantedAccessInformation.php new file mode 100644 index 0000000..13464d7 --- /dev/null +++ b/src/Analysis/ProjectZomboid/AdminGrantedAccessInformation.php @@ -0,0 +1,26 @@ +setLabel('Admin granted access'); + $this->setValue(sprintf( + '%s granted %s to %s', + $matches['admin'], + $matches['level'], + $matches['target'] + )); + } +} diff --git a/src/Pattern/ProjectZomboid/AdminPattern.php b/src/Pattern/ProjectZomboid/AdminPattern.php index 5d778ff..d2e183c 100644 --- a/src/Pattern/ProjectZomboid/AdminPattern.php +++ b/src/Pattern/ProjectZomboid/AdminPattern.php @@ -36,4 +36,6 @@ class AdminPattern public const string ADDED_ITEM_ENTRY = '/^\[\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] (?.+?) added item (?Base\.\S+) in (?.+?)\'s inventory\.?$/'; public const string ADDED_XP_ENTRY = '/^\[\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] (?.+?) added (?[\d.]+) (?\S+) xp\'s to (?.+?)\.?$/'; + + public const string GRANTED_ACCESS_ENTRY = '/^\[\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\] (?.+?) granted (?\w+) access level on (?.+?)\.?$/'; } diff --git a/test/tests/Games/ProjectZomboid/Analysis/AdminGrantedAccessInformationTest.php b/test/tests/Games/ProjectZomboid/Analysis/AdminGrantedAccessInformationTest.php new file mode 100644 index 0000000..7ded68f --- /dev/null +++ b/test/tests/Games/ProjectZomboid/Analysis/AdminGrantedAccessInformationTest.php @@ -0,0 +1,27 @@ +assertSame([AdminPattern::GRANTED_ACCESS_ENTRY], AdminGrantedAccessInformation::getPatterns()); + } + + public function testEntryRegexMatchesFullLine(): void + { + $line = "[16-04-26 18:35:10.000] AdminUser granted admin access level on Player1."; + $this->assertSame(1, preg_match(AdminPattern::GRANTED_ACCESS_ENTRY, $line, $m)); + + $insight = new AdminGrantedAccessInformation(); + $insight->setMatches($m, 0); + + $this->assertSame('Admin granted access', $insight->getLabel()); + $this->assertSame('AdminUser granted admin to Player1', $insight->getValue()); + } +}