@@ -56,48 +56,17 @@ public function newAction(Request $request)
56
56
$ form ->handleRequest ($ request );
57
57
58
58
if ($ form ->isSubmitted () && $ form ->isValid ()) {
59
- try {
60
- $ this ->validateUsername ($ form , $ locale , new User ());
61
- $ this ->validatePassword ($ form , $ locale );
62
- $ this ->validateEmail ($ form , $ locale , new User ());
63
- $ this ->validateFirstname ($ form , $ locale );
64
- $ this ->validateDob ($ form , $ locale );
65
- $ this ->validateRoles ($ form , $ locale );
66
-
67
- // Everything ok, now proceed to create the user
68
- $ userManager = $ this ->container ->get ('fos_user.user_manager ' );
69
- $ user = $ userManager ->createUser ();
70
-
71
- $ user ->setFirstname ($ form ['firstname ' ]->getData ());
72
- $ user ->setLastname ($ form ['lastname ' ]->getData ());
73
- $ user ->setDob ($ form ['dob ' ]->getData ());
74
- $ user ->setEmail ($ form ['email ' ]->getData ());
75
- $ user ->setUsername ($ form ['username ' ]->getData ());
76
- $ user ->setPlainPassword ($ form ['password ' ]->getData ());
77
- $ user ->setRoles ($ form ['roles ' ]->getData ());
78
- $ user ->setConfirmationToken (null );
79
- $ user ->setEnabled (true );
80
- $ user ->setLastLogin (new \DateTime ());
81
-
82
- $ userManager ->updateUser ($ user );
83
- $ flashMsg = $ this ->get ('translator ' )->trans ('flash.user_created_successfully ' );
84
- $ this ->addFlash ('success ' , $ flashMsg );
85
-
86
- } catch (HttpException $ e ) {
87
- // Error messages for this section will come from above validate methods
88
- return $ this ->redirectToRoute ('admin_user_new ' );
89
-
90
- // Always catch exact exception for which flash message or logger is needed,
91
- // otherwise catch block will not get executed on higher or lower ranked exceptions.
92
- } catch (\Doctrine \DBAL \Exception \UniqueConstraintViolationException $ e ) {
93
- $ flashMsg = $ this ->get ('translator ' )->trans ('flash.user_already_exists ' );
94
- $ this ->logMessage (400 , 'danger ' , $ e ->getMessage ());
95
- $ this ->addFlash ('danger ' , $ flashMsg );
96
- return $ this ->redirectToRoute ('admin_user_new ' );
97
- }
59
+ $ userManager = $ this ->container ->get ('fos_user.user_manager ' );
60
+ $ user = $ userManager ->createUser ();
61
+
62
+ $ this ->setUserData ($ user , $ form );
63
+
64
+ $ userManager ->updateUser ($ user );
65
+
66
+ $ this ->logMessageAndFlash (200 , 'success ' , 'User successfully created: ' , $ this ->get ('translator ' )->trans ('flash.user_creatd_successfully ' ), $ request ->getLocale () );
98
67
99
68
return $ this ->redirectToRoute ('admin_user_index ' );
100
- } // if form is valid
69
+ }
101
70
102
71
return $ this ->render ('@ApiBundle/Resources/views/admin/user/new.html.twig ' , [
103
72
'form ' => $ form ->createView (),
@@ -128,49 +97,19 @@ public function showAction(User $user)
128
97
*/
129
98
public function editAction (User $ user , Request $ request )
130
99
{
131
- $ entityManager = $ this ->getDoctrine ()->getManager ();
132
-
133
100
$ editForm = $ this ->createForm (UserType::class, $ user );
134
101
$ deleteForm = $ this ->createDeleteForm ($ user );
135
102
$ locale = $ request ->getLocale ();
136
103
137
104
$ editForm ->handleRequest ($ request );
138
105
139
106
if ($ editForm ->isSubmitted () && $ editForm ->isValid ()) {
140
- try {
141
- $ this ->validateUsername ($ editForm , $ locale , $ user );
142
- $ this ->validatePassword ($ editForm , $ locale );
143
- $ this ->validateEmail ($ editForm , $ locale , $ user );
144
- $ this ->validateFirstname ($ editForm , $ locale );
145
- $ this ->validateDob ($ editForm , $ locale );
146
- $ this ->validateRoles ($ editForm , $ locale );
147
-
148
- $ user ->setFirstname ($ editForm ['firstname ' ]->getData ());
149
- $ user ->setLastname ($ editForm ['lastname ' ]->getData ());
150
- $ user ->setDob ($ editForm ['dob ' ]->getData ());
151
- $ user ->setEmail ($ editForm ['email ' ]->getData ());
152
- $ user ->setUsername ($ editForm ['username ' ]->getData ());
153
- $ user ->setPlainPassword ($ editForm ['password ' ]->getData ());
154
- $ user ->setRoles ($ editForm ['roles ' ]->getData ());
155
- $ user ->setConfirmationToken (null );
156
- $ user ->setEnabled (true );
157
- $ user ->setLastLogin (new \DateTime ());
158
-
159
- $ entityManager ->flush ();
160
- $ flashMsg = $ this ->get ('translator ' )->trans ('flash.user_updated_successfully ' );
161
- $ this ->addFlash ('success ' , $ flashMsg );
162
-
163
- // Always catch exact exception for which flash message or logger is needed,
164
- // otherwise catch block will not get executed on higher or lower ranked exceptions.
165
- } catch (HttpException $ e ) {
166
- // Error messages for this section will come from above validate methods
167
- return $ this ->redirectToRoute ('admin_user_edit ' , ['id ' => $ user ->getId ()]);
168
- } catch (\Doctrine \DBAL \Exception \UniqueConstraintViolationException $ e ) {
169
- $ flashMsg = $ this ->get ('translator ' )->trans ('flash.user_already_exists ' );
170
- $ this ->logMessage (400 , 'danger ' , $ e ->getMessage ());
171
- $ this ->addFlash ('danger ' , $ flashMsg );
172
- return $ this ->redirectToRoute ('admin_user_edit ' , ['id ' => $ user ->getId ()]);
173
- }
107
+ $ this ->setUserData ($ user , $ editForm );
108
+
109
+ $ entityManager = $ this ->getDoctrine ()->getManager ();
110
+ $ entityManager ->flush ();
111
+
112
+ $ this ->logMessageAndFlash (200 , 'success ' , 'User successfully updated: ' , $ this ->get ('translator ' )->trans ('flash.user_updated_successfully ' ), $ request ->getLocale () );
174
113
175
114
return $ this ->redirectToRoute ('admin_user_index ' );
176
115
}
@@ -182,100 +121,6 @@ public function editAction(User $user, Request $request)
182
121
]);
183
122
}
184
123
185
- /**
186
- * Validate username
187
- */
188
- private function validateUsername (\Symfony \Component \Form \Form $ form , $ locale , User $ user ) {
189
- $ username = $ form ['username ' ]->getData ();
190
-
191
- // Check if username is empty
192
- if (null == $ username ) {
193
- $ this ->logMessageAndFlash (400 , 'danger ' , 'Empty username ' , $ this ->get ('translator ' )->trans ('api.show_error_username_missing ' , array (), 'messages ' , $ locale ), $ locale );
194
- }
195
-
196
- // If the username belongs to same user, no need to further check
197
- if (!($ user ->getUsername () == $ username )) {
198
- // Do a check for existing user with userManager->findByUsername
199
- /** @var $user UserInterface */
200
- $ user = $ this ->container ->get ('fos_user.user_manager ' )->findUserByUsernameOrEmail ($ username );
201
- if (null != $ user ) {
202
- $ this ->logMessageAndFlash (400 , 'danger ' , 'User already exists. Username: ' .$ user ->getUsername (), $ this ->get ('translator ' )->trans ('api.show_error_username_taken ' , array (), 'messages ' , $ locale ), $ locale );
203
- }
204
- }
205
- }
206
-
207
- /**
208
- * Validate password
209
- */
210
- private function validatePassword (\Symfony \Component \Form \Form $ form , $ locale ) {
211
- $ password = $ form ['password ' ]->getData ();
212
-
213
- // Check if password is empty
214
- if (null == $ password ) {
215
- $ this ->logMessageAndFlash (400 , 'danger ' , 'Invalid empty password ' , $ this ->get ('translator ' )->trans ('api.show_error_password ' , array (), 'messages ' , $ locale ), $ locale );
216
- }
217
- }
218
-
219
- /**
220
- * Validate email
221
- */
222
- private function validateEmail (\Symfony \Component \Form \Form $ form , $ locale , User $ user ) {
223
- $ email = $ form ['email ' ]->getData ();
224
-
225
- // Check if email is valid
226
- if (!filter_var ($ email , FILTER_VALIDATE_EMAIL )) {
227
- $ this ->logMessageAndFlash (400 , 'danger ' , 'Invalid email: ' .$ email , $ this ->get ('translator ' )->trans ('api.show_error_email ' , array (), 'messages ' , $ locale ), $ locale );
228
- }
229
-
230
- // If the email belongs to same user, no need to further check
231
- if (!($ user ->getEmail () == $ email )) {
232
- $ user = $ this ->container ->get ('fos_user.user_manager ' )->findUserByUsernameOrEmail ($ email );
233
- if (null != $ user ) {
234
- $ this ->logMessageAndFlash (400 , 'danger ' , 'Email ' .$ user ->getEmail ().' already taken by Username: ' .$ user ->getUsername (), $ this ->get ('translator ' )->trans ('api.show_error_email_taken ' , array (), 'messages ' , $ locale ), $ locale );
235
- }
236
- }
237
- }
238
-
239
- /**
240
- * Validate firstname
241
- */
242
- private function validateFirstname (\Symfony \Component \Form \Form $ form , $ locale ) {
243
- $ firstname = $ form ['firstname ' ]->getData ();
244
-
245
- // Check if firstname is empty. At least firstname is required.
246
- if (null == $ firstname ) {
247
- $ this ->logMessageAndFlash (400 , 'danger ' , 'Invalid empty firstname ' , $ this ->get ('translator ' )->trans ('api.show_error_firstname ' , array (), 'messages ' , $ locale ), $ locale );
248
- }
249
-
250
- }
251
-
252
- /**
253
- * Validate dob
254
- */
255
- private function validateDob (\Symfony \Component \Form \Form $ form , $ locale ) {
256
- $ dob = $ form ['dob ' ]->getData ();
257
-
258
- // Check if dob is valid
259
- list ($ mm ,$ dd ,$ yyyy ) = explode ('/ ' , $ dob ->format ('m/d/Y ' ) );
260
- if (!checkdate ($ mm ,$ dd ,$ yyyy )) {
261
- $ this ->logMessageAndFlash (400 , 'danger ' , 'Invalid mm/dd/yyyy DOB: ' .$ dob , $ this ->get ('translator ' )->trans ('api.show_error_dob ' , array (), 'messages ' , $ locale ), $ locale );
262
- }
263
- }
264
-
265
- /**
266
- * Validate roles
267
- */
268
- private function validateRoles (\Symfony \Component \Form \Form $ form , $ locale ) {
269
- $ roles = $ form ['roles ' ]->getData ();
270
- $ permittedRoles = ['ROLE_API ' , "ROLE_USER " ];
271
-
272
- foreach ($ roles as $ role ) {
273
- // Check if role is valid
274
- if (!in_array ($ role , $ permittedRoles ) )
275
- $ this ->logMessageAndFlash (400 , 'warning ' , 'Invalid role: ' .$ role , $ this ->get ('translator ' )->trans ('api.show_error_role ' .' ' .$ role , array (), 'messages ' , $ locale ), $ locale );
276
- }
277
- }
278
-
279
124
/**
280
125
* Deletes a User entity.
281
126
*
@@ -290,9 +135,7 @@ public function deleteAction(Request $request, User $user)
290
135
291
136
$ entityManager ->flush ();
292
137
293
- $ flashMsg = $ this ->get ('translator ' )->trans ('flash.user_deleted_successfully ' );
294
- $ this ->logMessage (200 , 'success ' , 'User successfully deleted: ' );
295
- $ this ->addFlash ('success ' , $ flashMsg );
138
+ $ this ->logMessageAndFlash (200 , 'success ' , 'User successfully deleted: ' , $ this ->get ('translator ' )->trans ('flash.user_deleted_successfully ' ), $ request ->getLocale () );
296
139
297
140
return $ this ->redirectToRoute ('admin_user_index ' );
298
141
}
@@ -313,11 +156,24 @@ private function createDeleteForm(User $user)
313
156
;
314
157
}
315
158
159
+ private function setUserData (User $ user , \Symfony \Component \Form \Form $ form )
160
+ {
161
+ $ user ->setFirstname ($ form ['firstname ' ]->getData ());
162
+ $ user ->setLastname ($ form ['lastname ' ]->getData ());
163
+ $ user ->setDob ($ form ['dob ' ]->getData ());
164
+ $ user ->setEmail ($ form ['email ' ]->getData ());
165
+ $ user ->setUsername ($ form ['username ' ]->getData ());
166
+ $ user ->setPlainPassword ($ form ['password ' ]->getData ());
167
+ $ user ->setRoles ($ form ['roles ' ]->getData ());
168
+ $ user ->setConfirmationToken (null );
169
+ $ user ->setEnabled (true );
170
+ $ user ->setLastLogin (new \DateTime ());
171
+ }
172
+
316
173
private function logMessageAndFlash ($ code = 200 , $ type = 'success ' , $ logMsg = '' , $ flashMsg = '' , $ locale = 'en ' )
317
174
{
318
175
$ this ->logMessage ($ code , $ type , $ logMsg );
319
176
$ this ->addFlash ($ type , $ flashMsg );
320
- throw new HttpException ($ code , $ logMsg );
321
177
}
322
178
323
179
private function logMessage ($ code = 200 , $ type ='success ' , $ logMsg = '' ) {
0 commit comments