feat: demotion of user accounts via crm

This commit is contained in:
Björn Fromme
2026-08-10 13:01:01 +02:00
parent b01c2e84c7
commit b39a78da82
11 changed files with 240 additions and 3 deletions
+41
View File
@@ -77,6 +77,47 @@ class UserTest extends TestCase
$this->assertCount(0, $this->validate($user));
}
public function testSetDisabledBlocksAndUnblocksTheAccount(): void
{
$user = new User();
$user->setDisabled(true);
$this->assertTrue($user->isDisabled());
$this->assertNotNull($user->getDisabledAt());
$user
->setDisabledReason('Gesperrt.')
->setDisabledReasonInternal('Siehe Vorgang 4711.')
->setDisabled(false)
;
$this->assertFalse($user->isDisabled());
$this->assertNull($user->getDisabledAt());
$this->assertNull($user->getDisabledReason());
$this->assertNull($user->getDisabledReasonInternal());
}
public function testSetDisabledKeepsTheOriginalTimestampWhenTheStateIsUnchanged(): void
{
$disabledAt = new \DateTimeImmutable('2026-01-01 08:00:00');
$user = (new User())
->setDisabledAt($disabledAt)
->setDisabledReason('Gesperrt.')
;
$user->setDisabled(true);
$this->assertSame($disabledAt, $user->getDisabledAt());
$this->assertSame('Gesperrt.', $user->getDisabledReason());
$enabled = new User();
$enabled->setDisabled(false);
$this->assertNull($enabled->getDisabledAt());
}
private function validate(User $user): ConstraintViolationListInterface
{
return Validation::createValidatorBuilder()