partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

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 }