4
4
5
5
use ApiBundle \Entity \User ;
6
6
use ApiBundle \Form \UserType ;
7
+ use ApiBundle \Form \UserProfileType ;
7
8
8
9
use Sensio \Bundle \FrameworkExtraBundle \Configuration \Method ;
9
10
use Sensio \Bundle \FrameworkExtraBundle \Configuration \Route ;
15
16
use Symfony \Component \HttpFoundation \File \Exception \UploadException ;
16
17
use Symfony \Component \HttpFoundation \File \File ;
17
18
use Symfony \Component \HttpFoundation \File \UploadedFile ;
19
+ use Symfony \Component \Form \Extension \Core \Type \CollectionType ;
20
+ use Symfony \Component \Form \Extension \Core \Type \ChoiceType ;
18
21
19
22
/**
20
23
* Controller used to manage user contents in the backend.
@@ -53,10 +56,22 @@ public function newAction(Request $request)
53
56
{
54
57
$ userManager = $ this ->container ->get ('fos_user.user_manager ' );
55
58
$ user = $ userManager ->createUser ();
56
- $ user ->setRoles (['ROLE_USER ' ]);
57
59
58
60
$ form = $ this ->createForm (UserType::class, $ user );
59
61
62
+ // Role added in admin area
63
+ $ form ->add ('roles ' , CollectionType::class, array (
64
+ 'entry_type ' => ChoiceType::class,
65
+ 'entry_options ' => array (
66
+ 'label ' => false ,
67
+ 'choices ' => array (
68
+ 'ROLE_ADMIN ' => 'ROLE_ADMIN ' ,
69
+ 'ROLE_USER ' => 'ROLE_USER ' ,
70
+ 'ROLE_API ' => 'ROLE_API ' ,
71
+ ),
72
+ ),
73
+ ));
74
+
60
75
$ locale = $ request ->getLocale ();
61
76
62
77
$ form ->handleRequest ($ request );
@@ -127,10 +142,23 @@ public function editAction(User $user, Request $request)
127
142
);
128
143
}
129
144
130
- $ editForm = $ this ->createForm (UserType ::class, $ user );
145
+ $ editForm = $ this ->createForm (UserProfileType ::class, $ user );
131
146
$ deleteForm = $ this ->createDeleteForm ($ user );
132
147
$ locale = $ request ->getLocale ();
133
148
149
+ // Role added in admin area
150
+ $ editForm ->add ('roles ' , CollectionType::class, array (
151
+ 'entry_type ' => ChoiceType::class,
152
+ 'entry_options ' => array (
153
+ 'label ' => false ,
154
+ 'choices ' => array (
155
+ 'ROLE_ADMIN ' => 'ROLE_ADMIN ' ,
156
+ 'ROLE_USER ' => 'ROLE_USER ' ,
157
+ 'ROLE_API ' => 'ROLE_API ' ,
158
+ ),
159
+ ),
160
+ ));
161
+
134
162
$ editForm ->handleRequest ($ request );
135
163
136
164
if ($ editForm ->isSubmitted () && $ editForm ->isValid ()) {
@@ -153,7 +181,7 @@ public function editAction(User $user, Request $request)
153
181
$ user ->setImage ($ currentFilename );
154
182
}
155
183
156
- $ this ->setUserData ($ user , $ editForm );
184
+ $ this ->setUserProfileData ($ user , $ editForm );
157
185
158
186
$ entityManager = $ this ->getDoctrine ()->getManager ();
159
187
$ entityManager ->flush ();
@@ -221,6 +249,17 @@ private function setUserData(User $user, \Symfony\Component\Form\Form $form)
221
249
$ user ->setLastLogin (new \DateTime ());
222
250
}
223
251
252
+ private function setUserProfileData (User $ user , \Symfony \Component \Form \Form $ form )
253
+ {
254
+ $ user ->setFirstname ($ form ['firstname ' ]->getData ());
255
+ $ user ->setLastname ($ form ['lastname ' ]->getData ());
256
+ $ user ->setDob ($ form ['dob ' ]->getData ());
257
+ $ user ->setEmail ($ form ['email ' ]->getData ());
258
+ $ user ->setUsername ($ form ['username ' ]->getData ());
259
+ $ user ->setRoles ($ form ['roles ' ]->getData ());
260
+ }
261
+
262
+
224
263
private function logMessageAndFlash ($ code = 200 , $ type = 'success ' , $ logMsg = '' , $ flashMsg = '' , $ locale = 'en ' )
225
264
{
226
265
$ this ->logMessage ($ code , $ type , $ logMsg );
0 commit comments