AdminUserSetupController.php (2185B)
1 <?php 2 3 namespace PartKeepr\SetupBundle\Controller; 4 5 use Symfony\Component\HttpFoundation\JsonResponse; 6 use Symfony\Component\HttpFoundation\Request; 7 use Symfony\Component\HttpFoundation\Response; 8 use Symfony\Component\Routing\Annotation\Route; 9 10 class AdminUserSetupController extends SetupBaseController 11 { 12 /** 13 * @Route("/setup/createUser") 14 */ 15 public function createUserAction(Request $request) 16 { 17 $data = json_decode($request->getContent(), true); 18 19 $response = $this->handleRequest($request, '/setup/_int_create_user', $data['adminuser']); 20 21 return new Response($response->getContent()); 22 } 23 24 /** 25 * @Route("/setup/_int_create_user") 26 */ 27 public function intCreateUserAction(Request $request) 28 { 29 if (!$this->ensureAuthKey($request)) { 30 return $this->getAuthKeyErrorResponse(); 31 } 32 33 $data = json_decode($request->getContent(), true); 34 if (!array_key_exists('authKey', $data) || !$this->verifyAuthKey($data['authKey'])) { 35 $response['success'] = false; 36 $response['message'] = 'Invalid Authentication Key'; 37 $response['errors'] = []; 38 39 return new JsonResponse($response); 40 } 41 42 $response = [ 43 'success' => true, 44 'errors' => [], 45 'message' => 'Admin user successfully created', 46 ]; 47 48 try { 49 $manager = $this->get('fos_user.user_manager'); 50 $user = $manager->findUserByUsername($request->query->get('username')); 51 52 if ($user === null) { 53 $manipulator = $this->get('fos_user.util.user_manipulator'); 54 $manipulator->create( 55 $request->query->get('username'), 56 $request->query->get('password'), 57 $request->query->get('email'), 58 true, 59 true 60 ); 61 } 62 } catch (\Exception $e) { 63 $response['success'] = false; 64 $response['message'] = 'User creation error'; 65 $response['errors'] = [$e->getMessage()]; 66 } 67 68 return new JsonResponse($response); 69 } 70 }