Example #1
0
 /**
  * @Route("/users/registration", name="_users_registration")
  * @Method("POST")
  *
  * @ApiDoc(
  *      deprecated=TRUE,
  * 		description = "no longer used.  Was used to create users with very limited data.",
  *      section="Users",
  * 		statusCodes = {
  * 			201 = "User added to the database.",
  * 			403 = "Returned when parameters used for registration are not valid."
  * 		},
  * 		parameters = {
  *                      {"name" = "active",    "dataType"="boolean",   "required"=true, "format"="true/false","description"="User is active or disabled."},
  *                      {"name" = "username",   "dataType"="text",      "required"=true, "description"="username description"},
  *                      {"name" = "lastname",   "dataType"="text",      "required"=true, "description"="lastname description"},
  *                      {"name" = "firstname",  "dataType"="text",      "required"=true, "description"="firstname description"},
  *                      {"name" = "email",      "dataType"="text",      "required"=true, "description"="email description"},
  *                      {"name" = "phone",      "dataType"="text",      "required"=true, "description"="phone description"},
  *                      {"name" = "title",      "dataType"="text",      "required"=true, "description"="title description"},
  *                      {"name" = "office",     "dataType"="text",      "required"=true, "description"="office description"},
  *                      {"name" = "profile_picture", "dataType"="text", "required"=true, "description"="profile_picture description"},
  *                      {"name" = "role_id", "dataType"="text", "required"=true, "description"="role for this user (1 , 2 or 3 )"},
  *                      {"name" = "password",   "dataType"="text",      "required"=true, "description"="password description"},
  *                      
  * 			
  * 		}
  * )
  *
  */
 public function postUsersAction(Request $request)
 {
     $response = new Response();
     $createDate = new \DateTime();
     $createDate->setTimezone(self::timezoneUTC());
     // Create User instance and set property values:
     $user = new User();
     $user->setEnabled($request->get('active'));
     $user->setUsername($request->get('username'));
     $user->setLastname($request->get('lastname'));
     $user->setFirstname($request->get('firstname'));
     $user->setEmail($request->get('email'));
     $user->setPhone($request->get('phone'));
     $user->setTitle($request->get('title'));
     $user->setOffice($request->get('office'));
     $user->setProfilepicture($request->get('profile_picture'));
     $user->setPassword($request->get('password'));
     if ($request->get('role_id') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field role_id must have a value!')));
         return $response;
     }
     $role_id = $request->get('role_id');
     $role = $this->getDoctrine()->getRepository('UserBundle:Role')->findOneById($role_id);
     if (!$role) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'You provided an invalid role id / No role_id provided.')));
         return $response;
     }
     if ($request->get('active') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field active must have a value!')));
         return $response;
     }
     if ($request->get('username') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field username must have a value!')));
         return $response;
     }
     $username_already_exists = $this->getDoctrine()->getRepository('UserBundle:User')->findOneByUsername($request->get('username'));
     if ($username_already_exists) {
         $response->setStatusCode(400);
         $response->setContent(json_encode(array('success' => false, 'message' => 'The username provided is already in use.')));
         return $response;
     }
     if ($request->get('lastname') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field lastname must have a value!')));
         return $response;
     }
     if ($request->get('firstname') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field firstname must have a value!')));
         return $response;
     }
     if ($request->get('email') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field email must have a value!')));
         return $response;
     }
     if ($request->get('phone') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field phone must have a value!')));
         return $response;
     }
     if ($request->get('title') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field title must have a value!')));
         return $response;
     }
     if ($request->get('office') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field office must have a value!')));
         return $response;
     }
     if ($request->get('profile_picture') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field profile_picture must have a value!')));
         return $response;
     }
     if ($request->get('password') == null) {
         $response->setStatusCode(403);
         $response->setContent(json_encode(array('success' => false, 'message' => 'Field password must have a value!')));
         return $response;
     }
     $role_name = $role->getName();
     $user->addRole($role_name);
     $user->setCreatedAt($createDate);
     $user->setUpdatedAt($createDate);
     //   $response->headers->set('Content-Type', 'application/json');
     //  $serializer = $this->get('jms_serializer');
     // Get validator service to check for errors:
     $validator = $this->get('validator');
     $errors = $validator->validate($user);
     ////
     //IN ORDER TO BE A OK RESPONSE < HERE WE MUST RETURN A RESPONSE NOT A VIEW
     if (count($errors) > 0) {
         // Return $errors in JSON format:
         $view = $this->view($errors, 400);
         return $this->handleView($view);
     }
     // End of IF errors check.
     $user->setPassword(md5($request->request->get('password')));
     $key = Uuid::uuid4()->toString();
     $user->setApiKey($key);
     $em = $this->getDoctrine()->getManager();
     $em->persist($user);
     ///SET THE USER TO HAVE USERACCESS TO TEMP_CLIENT
     $temp_client = $this->getDoctrine()->getRepository('CampaignBundle:Client')->findOneByName('temp_client');
     $global_region = $this->getDoctrine()->getRepository('CampaignBundle:Region')->findOneByName('Global');
     $temp_useraccess = new Useraccess();
     $temp_useraccess->setClient($temp_client);
     $temp_useraccess->setRegion($global_region);
     $temp_useraccess->setAllCountries(true);
     $temp_useraccess->setUser($user);
     $em->persist($temp_useraccess);
     //END SET USER FOR USERACCESS
     $em->flush();
     $response->setStatusCode(201);
     $response->setContent(json_encode(array('success' => true, 'message' => 'User added to the database.')));
     return $response;
 }