feat(firewall): add safeguarded rule creation
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
@@ -488,6 +488,41 @@ class FirewallStoreTest extends TestCase
|
||||
self::assertSame('tenant-disabled', $disabled['items'][0]->getReason());
|
||||
}
|
||||
|
||||
#[TestDox('Administrative creation persists tenant and system ownership')]
|
||||
public function testAdministrativeRuleCreation(): void
|
||||
{
|
||||
$manager = new FirewallRuleManager(
|
||||
$this->store,
|
||||
new FirewallRuleCache($this->store),
|
||||
$this->createStub(EventDispatcherInterface::class)
|
||||
);
|
||||
$tenantRule = $manager->createManualRule(
|
||||
FirewallRuleScope::tenant('tenant-a'),
|
||||
FirewallRuleObject::TYPE_DEVICE,
|
||||
FirewallRuleObject::ACTION_BLOCK,
|
||||
'device-123',
|
||||
'Compromised device',
|
||||
'admin-a',
|
||||
3600
|
||||
);
|
||||
$systemRule = $manager->createManualRule(
|
||||
FirewallRuleScope::system(),
|
||||
FirewallRuleObject::TYPE_IP_RANGE,
|
||||
FirewallRuleObject::ACTION_BLOCK,
|
||||
'198.51.100.0/24',
|
||||
'Malicious network',
|
||||
'system-admin',
|
||||
currentIp: '203.0.113.10'
|
||||
);
|
||||
|
||||
$persistedTenant = $this->store->fetchRule($tenantRule->getId());
|
||||
$persistedSystem = $this->store->fetchRule($systemRule->getId());
|
||||
self::assertSame('tenant-a', $persistedTenant->getTenantId());
|
||||
self::assertSame(FirewallRuleObject::SCOPE_SYSTEM, $persistedSystem->getScope());
|
||||
self::assertNull($persistedSystem->getTenantId());
|
||||
self::assertSame('system-admin', $persistedSystem->getCreatedBy());
|
||||
}
|
||||
|
||||
#[TestDox('Administrative log queries enforce tenant scope and supported filters')]
|
||||
public function testAdministrativeLogQuery(): void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user