/
UserInterface.php
184 lines (154 loc) · 4.85 KB
/
UserInterface.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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<?php
declare(strict_types=1);
/*
* This file is part of the NucleosUserBundle package.
*
* (c) Christian Gripp <mail@core23.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Nucleos\UserBundle\Model;
use DateTime;
use Symfony\Component\Security\Core\User\EquatableInterface;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Component\Security\Core\User\UserInterface as BaseUserInterface;
interface UserInterface extends PasswordAuthenticatedUserInterface, BaseUserInterface, EquatableInterface
{
public const ROLE_DEFAULT = 'ROLE_USER';
public const ROLE_SUPER_ADMIN = 'ROLE_SUPER_ADMIN';
/**
* Returns the identifier for this user (e.g. its username or email address).
*/
public function getUserIdentifier(): string;
/**
* Gets the username. This is no longer provided by the parent interface
* (replaced by getUserIdentifier()) but users still have usernames.
*/
public function getUsername(): string;
/**
* Sets the username.
*/
public function setUsername(string $username): void;
public function getEmail(): string;
/**
* Sets the email.
*/
public function setEmail(string $email): void;
/**
* Gets the plain password.
*
* @deprecated
*/
public function getPlainPassword(): ?string;
/**
* Sets the plain password.
*
* @deprecated
*/
public function setPlainPassword(?string $password): void;
/**
* Sets the hashed password.
*/
public function setPassword(string $password): void;
/**
* Tells if the the given user has the super admin role.
*/
public function isSuperAdmin(): bool;
public function setEnabled(bool $boolean): void;
/**
* Sets the super admin status.
*/
public function setSuperAdmin(bool $boolean): void;
/**
* Gets the confirmation token.
*/
public function getConfirmationToken(): ?string;
/**
* Sets the confirmation token.
*/
public function setConfirmationToken(?string $confirmationToken): void;
/**
* Sets the timestamp that the user requested a password reset.
*/
public function setPasswordRequestedAt(DateTime $date = null): void;
/**
* Checks whether the password reset request has expired.
*
* @param int $ttl Requests older than this many seconds will be considered expired
*/
public function isPasswordRequestNonExpired(int $ttl): bool;
/**
* Sets the last login time.
*/
public function setLastLogin(DateTime $time = null): void;
/**
* 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');
*/
public function hasRole(string $role): bool;
/**
* Sets the roles of the user.
*
* This overwrites any previous roles.
*
* @param string[] $roles
*/
public function setRoles(array $roles): void;
/**
* Adds a role to the user.
*/
public function addRole(string $role): void;
/**
* Removes a role to the user.
*/
public function removeRole(string $role): void;
/**
* 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(): bool;
/**
* 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(): bool;
/**
* 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(): bool;
/**
* 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(): bool;
}