ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
PasswordAssistanceSession.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
26
28{
29 public function __construct(
30 private readonly PasswordAssistanceHash $hash,
31 private readonly ObjectId $usr_id,
32 private ?\DateTimeImmutable $creation_datetime = null,
33 private ?\DateTimeImmutable $expiration_datetime = null
34 ) {
35 }
36
37 public function withCreationDateTime(?\DateTimeImmutable $creation_datetime): self
38 {
39 $clone = clone $this;
40 $clone->creation_datetime = $creation_datetime;
41
42 return $clone;
43 }
44
45 public function withExpirationDateTime(?\DateTimeImmutable $expiration_datetime): self
46 {
47 $clone = clone $this;
48 $clone->expiration_datetime = $expiration_datetime;
49
50 return $clone;
51 }
52
53 public function hash(): PasswordAssistanceHash
54 {
55 return $this->hash;
56 }
57
58 public function usrId(): ObjectId
59 {
60 return $this->usr_id;
61 }
62
63 public function creationDateTime(): ?\DateTimeImmutable
64 {
65 return $this->creation_datetime;
66 }
67
68 public function expirationDateTime(): ?\DateTimeImmutable
69 {
70 return $this->expiration_datetime;
71 }
72
73 public function isExpired(ClockInterface $clock): bool
74 {
75 return $this->expiration_datetime !== null && $this->expiration_datetime < $clock->now();
76 }
77}
__construct(private readonly PasswordAssistanceHash $hash, private readonly ObjectId $usr_id, private ?\DateTimeImmutable $creation_datetime=null, private ?\DateTimeImmutable $expiration_datetime=null)