-
Notifications
You must be signed in to change notification settings - Fork 67
/
UserVerificationEntity.php
168 lines (145 loc) · 4.39 KB
/
UserVerificationEntity.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php
declare(strict_types=1);
/*
* This file is part of the Zikula package.
*
* Copyright Zikula Foundation - https://ziku.la/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Zikula\ZAuthModule\Entity;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Zikula\Core\Doctrine\EntityAccess;
/**
* UserVerification entity class.
*
* We use annotations to define the entity mappings to database (see http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html).
*
* @ORM\Entity(repositoryClass="Zikula\ZAuthModule\Entity\Repository\UserVerificationRepository")
* @ORM\Table(name="users_verifychg")
*
* Account-change verification table.
* Holds a one-time use, expirable verification code used when a user needs to change his email address,
* reset his password and has not answered any security questions,
* or when a new user is registering with the site for the first time.
*/
class UserVerificationEntity extends EntityAccess
{
/**
* ID: Primary ID of the verification record. Not related to the uid.
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @var int
*/
private $id;
/**
* Change type: a code indicating what type of change action created this record.
*
* @ORM\Column(type="smallint")
* @var int
*/
private $changetype;
/**
* User ID: Primary ID of the user record to which this verification record is related. Foreign key to users table.
*
* @ORM\Column(type="integer")
* @var int
*/
private $uid;
/**
* New e-mail address: If the change type indicates that this verification record was created as a result of a user changing his e-mail address,
* then this field holds the new address temporarily until the verification is complete.
* Only after the verification code is received back from the user (thus, verifying the new e-mail address) is the new e-mail address saved to the user's account record.
*
* @ORM\Column(type="string", length=60)
* @Assert\Length(min="0", max="60", allowEmptyString="true")
* @var string
*/
private $newemail;
/**
* Verification Code: The verification code last sent to the user to verify the requested action, as a salted hash of the value sent.
*
* @ORM\Column(type="string", length=138)
* @Assert\Length(min="0", max="138", allowEmptyString="true")
* @var string
*/
private $verifycode;
/**
* Date/Time created: The date and time the verification record was created, as a UTC date/time, used to expire the record.
*
* @ORM\Column(type="datetime")
* @var DateTime
*/
private $created_dt;
/**
* constructor
*/
public function __construct()
{
$this->changetype = 0;
$this->uid = 0;
$this->newemail = '';
$this->verifycode = '';
$this->created_dt = new DateTime('now');
}
public function getId(): ?int
{
return $this->id;
}
public function setId(int $id): void
{
$this->id = $id;
}
public function getChangetype(): int
{
return $this->changetype;
}
public function setChangetype(int $changetype): void
{
$this->changetype = $changetype;
}
public function getUid(): int
{
return $this->uid;
}
public function setUid(int $uid): void
{
$this->uid = $uid;
}
public function getNewemail(): string
{
return $this->newemail;
}
public function setNewemail(string $newemail): void
{
$this->newemail = $newemail;
}
public function getVerifycode(): string
{
return $this->verifycode;
}
public function setVerifycode(string $verifycode): void
{
$this->verifycode = $verifycode;
}
public function getCreated_Dt(): DateTime
{
return $this->created_dt;
}
/**
* @param string|DateTime $created_dt the user verification's created date
*/
public function setCreated_Dt($created_dt): void
{
if ($created_dt instanceof DateTime) {
$this->created_dt = $created_dt;
} else {
$this->created_dt = new DateTime($created_dt);
}
}
}