11
11
12
12
namespace FOS \UserBundle \Model ;
13
13
14
- use FOS \UserBundle \Util \CanonicalizerInterface ;
15
- use Symfony \Component \Security \Core \Encoder \EncoderFactoryInterface ;
16
- use Symfony \Component \Security \Core \Encoder \PasswordEncoderInterface ;
14
+ use FOS \UserBundle \Util \CanonicalFieldsUpdater ;
15
+ use FOS \UserBundle \Util \PasswordUpdaterInterface ;
17
16
18
17
/**
19
18
* Abstract User Manager implementation which can be used as base class for your
23
22
*/
24
23
abstract class UserManager implements UserManagerInterface
25
24
{
26
- /**
27
- * @var EncoderFactoryInterface
28
- */
29
- protected $ encoderFactory ;
25
+ private $ passwordUpdater ;
26
+ private $ canonicalFieldsUpdater ;
30
27
31
- /**
32
- * @var CanonicalizerInterface
33
- */
34
- protected $ usernameCanonicalizer ;
35
-
36
- /**
37
- * @var CanonicalizerInterface
38
- */
39
- protected $ emailCanonicalizer ;
40
-
41
- /**
42
- * Constructor.
43
- *
44
- * @param EncoderFactoryInterface $encoderFactory
45
- * @param CanonicalizerInterface $usernameCanonicalizer
46
- * @param CanonicalizerInterface $emailCanonicalizer
47
- */
48
- public function __construct (EncoderFactoryInterface $ encoderFactory , CanonicalizerInterface $ usernameCanonicalizer , CanonicalizerInterface $ emailCanonicalizer )
28
+ public function __construct (PasswordUpdaterInterface $ passwordUpdater , CanonicalFieldsUpdater $ canonicalFieldsUpdater )
49
29
{
50
- $ this ->encoderFactory = $ encoderFactory ;
51
- $ this ->usernameCanonicalizer = $ usernameCanonicalizer ;
52
- $ this ->emailCanonicalizer = $ emailCanonicalizer ;
30
+ $ this ->passwordUpdater = $ passwordUpdater ;
31
+ $ this ->canonicalFieldsUpdater = $ canonicalFieldsUpdater ;
53
32
}
54
33
55
34
/**
@@ -68,15 +47,15 @@ public function createUser()
68
47
*/
69
48
public function findUserByEmail ($ email )
70
49
{
71
- return $ this ->findUserBy (array ('emailCanonical ' => $ this ->canonicalizeEmail ($ email )));
50
+ return $ this ->findUserBy (array ('emailCanonical ' => $ this ->canonicalFieldsUpdater -> canonicalizeEmail ($ email )));
72
51
}
73
52
74
53
/**
75
54
* {@inheritdoc}
76
55
*/
77
56
public function findUserByUsername ($ username )
78
57
{
79
- return $ this ->findUserBy (array ('usernameCanonical ' => $ this ->canonicalizeUsername ($ username )));
58
+ return $ this ->findUserBy (array ('usernameCanonical ' => $ this ->canonicalFieldsUpdater -> canonicalizeUsername ($ username )));
80
59
}
81
60
82
61
/**
@@ -104,53 +83,14 @@ public function findUserByConfirmationToken($token)
104
83
*/
105
84
public function updateCanonicalFields (UserInterface $ user )
106
85
{
107
- $ user ->setUsernameCanonical ($ this ->canonicalizeUsername ($ user ->getUsername ()));
108
- $ user ->setEmailCanonical ($ this ->canonicalizeEmail ($ user ->getEmail ()));
86
+ $ this ->canonicalFieldsUpdater ->updateCanonicalFields ($ user );
109
87
}
110
88
111
89
/**
112
90
* {@inheritdoc}
113
91
*/
114
92
public function updatePassword (UserInterface $ user )
115
93
{
116
- if (0 !== strlen ($ password = $ user ->getPlainPassword ())) {
117
- $ encoder = $ this ->getEncoder ($ user );
118
- $ user ->setPassword ($ encoder ->encodePassword ($ password , $ user ->getSalt ()));
119
- $ user ->eraseCredentials ();
120
- }
121
- }
122
-
123
- /**
124
- * Canonicalizes an email.
125
- *
126
- * @param string $email
127
- *
128
- * @return string
129
- */
130
- protected function canonicalizeEmail ($ email )
131
- {
132
- return $ this ->emailCanonicalizer ->canonicalize ($ email );
133
- }
134
-
135
- /**
136
- * Canonicalizes a username.
137
- *
138
- * @param string $username
139
- *
140
- * @return string
141
- */
142
- protected function canonicalizeUsername ($ username )
143
- {
144
- return $ this ->usernameCanonicalizer ->canonicalize ($ username );
145
- }
146
-
147
- /**
148
- * @param UserInterface $user
149
- *
150
- * @return PasswordEncoderInterface
151
- */
152
- protected function getEncoder (UserInterface $ user )
153
- {
154
- return $ this ->encoderFactory ->getEncoder ($ user );
94
+ $ this ->passwordUpdater ->hashPassword ($ user );
155
95
}
156
96
}
0 commit comments