From c6654bd3c64d6494b3d603db8ba01a5cb3219a58 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 6 Oct 2021 03:52:37 +0000 Subject: [PATCH] Add creation of rider api user when rider is created. #625 --- src/Controller/RiderController.php | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/Controller/RiderController.php b/src/Controller/RiderController.php index afcd9287..b7d7fadd 100644 --- a/src/Controller/RiderController.php +++ b/src/Controller/RiderController.php @@ -25,6 +25,9 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Catalyst\MenuBundle\Annotation\Menu; +use Catalyst\APIBundle\Entity\User as APIUser; +use Catalyst\APIBundle\Entity\Role as APIRole; + use DateTime; class RiderController extends Controller @@ -283,6 +286,9 @@ class RiderController extends Controller $em->persist($obj); $em->flush(); + // create rider's api user + $this->createRiderAPIUser($obj, $em); + // return successful response return $this->json([ 'success' => 'Changes have been saved!' @@ -507,6 +513,43 @@ class RiderController extends Controller } } + protected function createRiderAPIUser($obj, EntityManagerInterface $em) + { + // get api role for rider + $role_id = 'ROLE_RIDER'; + $role = $em->getRepository(APIRole::class)->find($role_id); + if ($role == null) + { + return; + } + + // Secret and API keys are generated in constructor + $api_user = new APIUser(); + + // set enabled to true + $api_user->setEnabled(true); + + // set name to rider's last name + first name + $rider_name = $obj->getFirstName() . ' ' . $obj->getLastName(); + $api_user->setName($rider_name); + + // set rider to api_user + $api_user->setRider($obj); + + // set meta + $meta = ['rider_id' => $obj->getID()]; + $api_user->setMetaData($meta); + + // set role + $api_user->addRole($role); + + // set rider's api user + $obj->setAPIUser($api_user); + + $em->persist($api_user); + $em->flush(); + } + public function popupInfo(EntityManagerInterface $em, $id) { $rider = $em->getRepository(Rider::class)->find($id);