forked from KnpLabs/KnpUserBundle
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathUserInterface.php
More file actions
294 lines (260 loc) · 6.78 KB
/
Copy pathUserInterface.php
File metadata and controls
294 lines (260 loc) · 6.78 KB
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FOS\UserBundle\Model;
use Symfony\Component\Security\Core\User\EquatableInterface;
use Symfony\Component\Security\Core\User\UserInterface as BaseUserInterface;
/**
* @internal Only for back compatibility. Remove / merge when dropping support for Symfony 4
*/
interface FosUserInterface extends \Serializable
{
const ROLE_DEFAULT = 'ROLE_USER';
const ROLE_SUPER_ADMIN = 'ROLE_SUPER_ADMIN';
/**
* Returns the user unique id.
*
* @return mixed
*/
public function getId();
/**
* Sets the username.
*
* @param string $username
*
* @return static
*/
public function setUsername($username);
/**
* Gets the canonical username in search and sort queries.
*
* @return string
*/
public function getUsernameCanonical();
/**
* Sets the canonical username.
*
* @param string $usernameCanonical
*
* @return static
*/
public function setUsernameCanonical($usernameCanonical);
/**
* @param string|null $salt
*
* @return static
*/
public function setSalt($salt);
/**
* Gets email.
*
* @return string
*/
public function getEmail();
/**
* Sets the email.
*
* @param string $email
*
* @return static
*/
public function setEmail($email);
/**
* Gets the canonical email in search and sort queries.
*
* @return string
*/
public function getEmailCanonical();
/**
* Sets the canonical email.
*
* @param string $emailCanonical
*
* @return static
*/
public function setEmailCanonical($emailCanonical);
/**
* Gets the plain password.
*
* @return string
*/
public function getPlainPassword();
/**
* Sets the plain password.
*
* @param string $password
*
* @return static
*/
public function setPlainPassword($password);
/**
* Sets the hashed password.
*
* @param string $password
*
* @return static
*/
public function setPassword($password);
/**
* Tells if the the given user has the super admin role.
*
* @return bool
*/
public function isSuperAdmin();
/**
* @param bool $boolean
*
* @return static
*/
public function setEnabled($boolean);
/**
* Sets the super admin status.
*
* @param bool $boolean
*
* @return static
*/
public function setSuperAdmin($boolean);
/**
* Gets the confirmation token.
*
* @return string|null
*/
public function getConfirmationToken();
/**
* Sets the confirmation token.
*
* @param string|null $confirmationToken
*
* @return static
*/
public function setConfirmationToken($confirmationToken);
/**
* Sets the timestamp that the user requested a password reset.
*
* @return static
*/
public function setPasswordRequestedAt(\DateTime $date = null);
/**
* Checks whether the password reset request has expired.
*
* @param int $ttl Requests older than this many seconds will be considered expired
*
* @return bool
*/
public function isPasswordRequestNonExpired($ttl);
/**
* Sets the last login time.
*
* @return static
*/
public function setLastLogin(\DateTime $time = null);
/**
* Never use this to check if this user has access to anything!
*
* Use the AuthorizationChecker, or an implementation of AccessDecisionManager
* instead, e.g.
*
* $authorizationChecker->isGranted('ROLE_USER');
*
* @param string $role
*
* @return bool
*/
public function hasRole($role);
/**
* Sets the roles of the user.
*
* This overwrites any previous roles.
*
* @return static
*/
public function setRoles(array $roles);
/**
* Adds a role to the user.
*
* @param string $role
*
* @return static
*/
public function addRole($role);
/**
* Removes a role to the user.
*
* @param string $role
*
* @return static
*/
public function removeRole($role);
/**
* Checks whether the user's account has expired.
*
* Internally, if this method returns false, the authentication system
* will throw an AccountExpiredException and prevent login.
*
* @return bool true if the user's account is non expired, false otherwise
*
* @see AccountExpiredException
*/
public function isAccountNonExpired();
/**
* Checks whether the user is locked.
*
* Internally, if this method returns false, the authentication system
* will throw a LockedException and prevent login.
*
* @return bool true if the user is not locked, false otherwise
*
* @see LockedException
*/
public function isAccountNonLocked();
/**
* Checks whether the user's credentials (password) has expired.
*
* Internally, if this method returns false, the authentication system
* will throw a CredentialsExpiredException and prevent login.
*
* @return bool true if the user's credentials are non expired, false otherwise
*
* @see CredentialsExpiredException
*/
public function isCredentialsNonExpired();
/**
* Checks whether the user is enabled.
*
* Internally, if this method returns false, the authentication system
* will throw a DisabledException and prevent login.
*
* @return bool true if the user is enabled, false otherwise
*
* @see DisabledException
*/
public function isEnabled();
}
// This is required to support apps that explicitly check if a user is an instance of AdvancedUserInterface
if (interface_exists('\Symfony\Component\Security\Core\User\AdvancedUserInterface')) {
/**
* @author Thibault Duplessis <thibault.duplessis@gmail.com>
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
*
* @deprecated since Symfony 4.1. Remove in Nov 2023 (End of support for security fixes SF 4.4)
*/
interface UserInterface extends FosUserInterface, \Symfony\Component\Security\Core\User\AdvancedUserInterface
{
}
} else {
/**
* @author Thibault Duplessis <thibault.duplessis@gmail.com>
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
* @author Julian Finkler <julian@developer-heaven.de>
*/
interface UserInterface extends FosUserInterface, BaseUserInterface, EquatableInterface
{
}
}