Don't break when the IP is empty

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2020-09-10 14:20:27 +02:00
parent b056b5b7fc
commit c25063dc07
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
2 changed files with 26 additions and 2 deletions

View File

@ -227,6 +227,10 @@ class Throttler {
* @return int * @return int
*/ */
public function getAttempts(string $ip, string $action = '', float $maxAgeHours = 12): int { public function getAttempts(string $ip, string $action = '', float $maxAgeHours = 12): int {
if ($ip === '') {
return 0;
}
$ipAddress = new IpAddress($ip); $ipAddress = new IpAddress($ip);
if ($this->isIPWhitelisted((string)$ipAddress)) { if ($this->isIPWhitelisted((string)$ipAddress)) {
return 0; return 0;

View File

@ -40,8 +40,6 @@ class CapabilitiesTest extends TestCase {
parent::setUp(); parent::setUp();
$this->request = $this->createMock(IRequest::class); $this->request = $this->createMock(IRequest::class);
$this->request->method('getRemoteAddress')
->willReturn('10.10.10.10');
$this->throttler = $this->createMock(Throttler::class); $this->throttler = $this->createMock(Throttler::class);
@ -57,6 +55,9 @@ class CapabilitiesTest extends TestCase {
->with('10.10.10.10') ->with('10.10.10.10')
->willReturn(42); ->willReturn(42);
$this->request->method('getRemoteAddress')
->willReturn('10.10.10.10');
$expected = [ $expected = [
'bruteforce' => [ 'bruteforce' => [
'delay' => 42 'delay' => 42
@ -66,4 +67,23 @@ class CapabilitiesTest extends TestCase {
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);
} }
public function testGetCapabilitiesOnCli() {
$this->throttler->expects($this->atLeastOnce())
->method('getDelay')
->with('')
->willReturn(0);
$this->request->method('getRemoteAddress')
->willReturn('');
$expected = [
'bruteforce' => [
'delay' => 0
]
];
$result = $this->capabilities->getCapabilities();
$this->assertEquals($expected, $result);
}
} }