Add bruteforce protection
This commit is contained in:
39
tests/units/AuthenticationTest.php
Normal file
39
tests/units/AuthenticationTest.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__.'/Base.php';
|
||||
|
||||
use Model\User;
|
||||
use Model\Authentication;
|
||||
|
||||
class AuthenticationTest extends Base
|
||||
{
|
||||
public function testHasCaptcha()
|
||||
{
|
||||
$u = new User($this->container);
|
||||
$a = new Authentication($this->container);
|
||||
|
||||
$this->assertFalse($a->hasCaptcha('not_found'));
|
||||
$this->assertFalse($a->hasCaptcha('admin'));
|
||||
|
||||
$this->assertTrue($u->incrementFailedLogin('admin'));
|
||||
$this->assertTrue($u->incrementFailedLogin('admin'));
|
||||
$this->assertTrue($u->incrementFailedLogin('admin'));
|
||||
|
||||
$this->assertFalse($a->hasCaptcha('not_found'));
|
||||
$this->assertTrue($a->hasCaptcha('admin'));
|
||||
}
|
||||
|
||||
public function testHandleFailedLogin()
|
||||
{
|
||||
$u = new User($this->container);
|
||||
$a = new Authentication($this->container);
|
||||
|
||||
$this->assertFalse($u->isLocked('admin'));
|
||||
|
||||
for ($i = 0; $i <= 6; $i++) {
|
||||
$a->handleFailedLogin('admin');
|
||||
}
|
||||
|
||||
$this->assertTrue($u->isLocked('admin'));
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,31 @@ use Model\Project;
|
||||
|
||||
class UserTest extends Base
|
||||
{
|
||||
public function testFailedLogin()
|
||||
{
|
||||
$u = new User($this->container);
|
||||
|
||||
$this->assertEquals(0, $u->getFailedLogin('admin'));
|
||||
$this->assertEquals(0, $u->getFailedLogin('not_found'));
|
||||
|
||||
$this->assertTrue($u->incrementFailedLogin('admin'));
|
||||
$this->assertTrue($u->incrementFailedLogin('admin'));
|
||||
|
||||
$this->assertEquals(2, $u->getFailedLogin('admin'));
|
||||
$this->assertTrue($u->resetFailedLogin('admin'));
|
||||
$this->assertEquals(0, $u->getFailedLogin('admin'));
|
||||
}
|
||||
|
||||
public function testLocking()
|
||||
{
|
||||
$u = new User($this->container);
|
||||
|
||||
$this->assertFalse($u->isLocked('admin'));
|
||||
$this->assertFalse($u->isLocked('not_found'));
|
||||
$this->assertTrue($u->lock('admin', 1));
|
||||
$this->assertTrue($u->isLocked('admin'));
|
||||
}
|
||||
|
||||
public function testGetByEmail()
|
||||
{
|
||||
$u = new User($this->container);
|
||||
|
||||
Reference in New Issue
Block a user