Completed
Push — ezp_30797 ( 8198f2...1e476a )
by
unknown
18:51
created

PasswordInfo::hasExpirationWarningDate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
declare(strict_types=1);
8
9
namespace eZ\Publish\API\Repository\Values\User;
10
11
use DateTime;
12
use DateTimeImmutable;
13
use eZ\Publish\API\Repository\Values\ValueObject;
14
15
final class PasswordInfo extends ValueObject
16
{
17
    /** @var \DateTimeImmutable|null */
18
    private $expirationDate;
19
20
    /** @var \DateTimeImmutable|null */
21
    private $expirationWarningDate;
22
23
    public function __construct(?DateTimeImmutable $expirationDate = null, ?DateTimeImmutable $expirationWarningDate = null)
24
    {
25
        $this->expirationDate = $expirationDate;
26
        $this->expirationWarningDate = $expirationWarningDate;
27
    }
28
29
    public function isPasswordExpired(): bool
30
    {
31
        if ($this->expirationDate === null) {
32
            return false;
33
        }
34
35
        return $this->expirationDate < new DateTime();
36
    }
37
38
    public function hasExpirationDate(): bool
39
    {
40
        return $this->expirationDate !== null;
41
    }
42
43
    public function getExpirationDate(): ?DateTimeImmutable
44
    {
45
        return $this->expirationDate;
46
    }
47
48
    public function hasExpirationWarningDate(): bool
49
    {
50
        return $this->expirationWarningDate !== null;
51
    }
52
53
    public function getExpirationWarningDate(): ?DateTimeImmutable
54
    {
55
        return $this->expirationWarningDate;
56
    }
57
}
58