Refactor authentication system (#2602)
Make auth configuration available via UI, remove FOSUserBundle and SAML-Bundle dependency
This commit is contained in:
@@ -14,9 +14,12 @@ use App\Entity\User;
|
||||
use App\Entity\UserPreference;
|
||||
use App\Export\Spreadsheet\ColumnDefinition;
|
||||
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
|
||||
use App\Tests\Security\TestUserEntity;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Security\Core\User\EquatableInterface;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
/**
|
||||
* @covers \App\Entity\User
|
||||
@@ -26,6 +29,9 @@ class UserTest extends TestCase
|
||||
public function testDefaultValues()
|
||||
{
|
||||
$user = new User();
|
||||
self::assertInstanceOf(\Serializable::class, $user);
|
||||
self::assertInstanceOf(EquatableInterface::class, $user);
|
||||
self::assertInstanceOf(UserInterface::class, $user);
|
||||
$this->assertInstanceOf(ArrayCollection::class, $user->getPreferences());
|
||||
self::assertNull($user->getTitle());
|
||||
self::assertNull($user->getDisplayName());
|
||||
@@ -34,6 +40,7 @@ class UserTest extends TestCase
|
||||
self::assertNull($user->getId());
|
||||
self::assertNull($user->getApiToken());
|
||||
self::assertNull($user->getPlainApiToken());
|
||||
self::assertNull($user->getPasswordRequestedAt());
|
||||
self::assertEquals(User::DEFAULT_LANGUAGE, $user->getLocale());
|
||||
self::assertFalse($user->hasTeamAssignment());
|
||||
self::assertFalse($user->canSeeAllData());
|
||||
@@ -89,6 +96,20 @@ class UserTest extends TestCase
|
||||
self::assertEquals($date, $user->getRegisteredAt());
|
||||
}
|
||||
|
||||
public function testPasswordRequestedAt()
|
||||
{
|
||||
$date = new \DateTime('-60 minutes');
|
||||
$sut = new User();
|
||||
self::assertFalse($sut->isPasswordRequestNonExpired(3599));
|
||||
|
||||
self::assertNull($sut->getPasswordRequestedAt());
|
||||
$sut->setPasswordRequestedAt($date);
|
||||
self::assertEquals($date, $sut->getPasswordRequestedAt());
|
||||
self::assertFalse($sut->isPasswordRequestNonExpired(3599));
|
||||
// 10 seconds just to make sure it doesn't expire by accident
|
||||
self::assertTrue($sut->isPasswordRequestNonExpired(3610));
|
||||
}
|
||||
|
||||
public function testPreferences()
|
||||
{
|
||||
$user = new User();
|
||||
@@ -216,6 +237,12 @@ class UserTest extends TestCase
|
||||
self::assertFalse($sut->canSeeAllData());
|
||||
self::assertFalse($sut->isSuperAdmin());
|
||||
self::assertTrue($sut->isTeamlead());
|
||||
|
||||
$sut->setSuperAdmin(true);
|
||||
self::assertTrue($sut->isSuperAdmin());
|
||||
|
||||
$sut->setSuperAdmin(false);
|
||||
self::assertFalse($sut->isSuperAdmin());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -306,4 +333,62 @@ class UserTest extends TestCase
|
||||
self::assertEquals($item[1], $column->getType());
|
||||
}
|
||||
}
|
||||
|
||||
public function testEqualsTo()
|
||||
{
|
||||
$sut = new User();
|
||||
|
||||
$user = new TestUserEntity();
|
||||
self::assertFalse($sut->isEqualTo($user));
|
||||
|
||||
$sut2 = clone $sut;
|
||||
self::assertTrue($sut->isEqualTo($sut));
|
||||
self::assertTrue($sut->isEqualTo($sut2));
|
||||
self::assertTrue($sut2->isEqualTo($sut));
|
||||
|
||||
$sut->setPassword('sdfsdfsdfsdf');
|
||||
self::assertFalse($sut->isEqualTo($sut2));
|
||||
self::assertFalse($sut2->isEqualTo($sut));
|
||||
|
||||
$sut2->setPassword('sdfsdfsdfsdf');
|
||||
self::assertTrue($sut->isEqualTo($sut2));
|
||||
self::assertTrue($sut2->isEqualTo($sut));
|
||||
|
||||
$sut->setUsername('12345678');
|
||||
self::assertFalse($sut->isEqualTo($sut2));
|
||||
self::assertFalse($sut2->isEqualTo($sut));
|
||||
|
||||
$sut2->setUsername('12345678');
|
||||
self::assertTrue($sut->isEqualTo($sut2));
|
||||
self::assertTrue($sut2->isEqualTo($sut));
|
||||
}
|
||||
|
||||
public function testSerialize()
|
||||
{
|
||||
$sut = new User();
|
||||
$sut->setPassword('ABC-1234567890');
|
||||
$sut->setUsername('foo-BAR');
|
||||
$sut->setEmail('hello@world.com');
|
||||
$sut->setEnabled(false);
|
||||
|
||||
$data = serialize($sut);
|
||||
|
||||
$expected = [
|
||||
'foo-BAR',
|
||||
false,
|
||||
null,
|
||||
'hello@world.com',
|
||||
];
|
||||
|
||||
$unserialized = unserialize($data);
|
||||
|
||||
$actual = [
|
||||
$sut->getUsername(),
|
||||
$sut->isEnabled(),
|
||||
$sut->getId(),
|
||||
$sut->getEmail(),
|
||||
];
|
||||
|
||||
self::assertEquals($expected, $actual);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user