Issues (3627)

app/bundles/UserBundle/Entity/UserToken.php (1 issue)

1
<?php
2
3
/*
4
 * @copyright   2017 Mautic Contributors. All rights reserved
5
 * @author      Mautic, Inc.
6
 *
7
 * @link        https://mautic.org
8
 *
9
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
10
 */
11
12
namespace Mautic\UserBundle\Entity;
13
14
use Doctrine\ORM\Mapping as ORM;
15
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder;
16
17
class UserToken
18
{
19
    /**
20
     * @var int
21
     */
22
    private $id;
0 ignored issues
show
The private property $id is not used, and could be removed.
Loading history...
23
24
    /**
25
     * @var User
26
     */
27
    private $user;
28
29
    /**
30
     * @var string
31
     */
32
    private $authorizator;
33
34
    /**
35
     * @var string
36
     */
37
    private $secret;
38
39
    /**
40
     * @var \DateTime|null
41
     */
42
    private $expiration = null;
43
44
    /**
45
     * @var bool
46
     */
47
    private $oneTimeOnly = true;
48
49
    public static function loadMetadata(ORM\ClassMetadata $metadata)
50
    {
51
        $builder = new ClassMetadataBuilder($metadata);
52
53
        $builder->setTable('user_tokens')
54
            ->setCustomRepositoryClass(UserTokenRepository::class);
55
56
        $builder->addId();
57
58
        $builder->createManyToOne('user', User::class)
59
            ->addJoinColumn('user_id', 'id', false, false, 'CASCADE')
60
            ->build();
61
62
        $builder->createField('authorizator', 'string')
63
            ->length(32)
64
            ->build();
65
66
        $builder->createField('secret', 'string')
67
            ->length(120)
68
            ->unique()
69
            ->build();
70
71
        $builder->createField('expiration', 'datetime')
72
            ->nullable()
73
            ->build();
74
75
        $builder->createField('oneTimeOnly', 'boolean')
76
            ->columnName('one_time_only')
77
            ->build();
78
    }
79
80
    /**
81
     * @return User
82
     */
83
    public function getUser()
84
    {
85
        return $this->user;
86
    }
87
88
    /**
89
     * @param User $user
90
     *
91
     * @return UserToken
92
     */
93
    public function setUser($user)
94
    {
95
        $this->user = $user;
96
97
        return $this;
98
    }
99
100
    /**
101
     * @return string
102
     */
103
    public function getAuthorizator()
104
    {
105
        return $this->authorizator;
106
    }
107
108
    /**
109
     * @param string $authorizator
110
     *
111
     * @return UserToken
112
     */
113
    public function setAuthorizator($authorizator)
114
    {
115
        $this->authorizator = $authorizator;
116
117
        return $this;
118
    }
119
120
    /**
121
     * @return string
122
     */
123
    public function getSecret()
124
    {
125
        return $this->secret;
126
    }
127
128
    /**
129
     * Use \Mautic\UserBundle\Entity\UserTokenRepositoryInterface::generateSecret to get valid secret.
130
     *
131
     * @param string $secret
132
     *
133
     * @return UserToken
134
     */
135
    public function setSecret($secret)
136
    {
137
        $this->secret = $secret;
138
139
        return $this;
140
    }
141
142
    /**
143
     * @return \DateTime|null
144
     */
145
    public function getExpiration()
146
    {
147
        return $this->expiration;
148
    }
149
150
    /**
151
     * @param \DateTime|null $expiration
152
     *
153
     * @return UserToken
154
     */
155
    public function setExpiration($expiration = null)
156
    {
157
        $this->expiration = $expiration;
158
159
        return $this;
160
    }
161
162
    /**
163
     * @return bool
164
     */
165
    public function isOneTimeOnly()
166
    {
167
        return $this->oneTimeOnly;
168
    }
169
170
    /**
171
     * @param bool $oneTimeOnly
172
     *
173
     * @return UserToken
174
     */
175
    public function setOneTimeOnly($oneTimeOnly = true)
176
    {
177
        $this->oneTimeOnly = $oneTimeOnly;
178
179
        return $this;
180
    }
181
}
182