diff --git a/catalyst/api-bundle/Entity/User.php b/catalyst/api-bundle/Entity/User.php index 6065979d..ff6a7ba8 100644 --- a/catalyst/api-bundle/Entity/User.php +++ b/catalyst/api-bundle/Entity/User.php @@ -53,6 +53,13 @@ class User extends BaseUser */ protected $roles; + // rider linked to user + // NOTE: we're directly linking this only because we don't have to care about other apps using this library + /** + * @ORM\OneToOne(targetEntity="App\Entity\Rider", mappedBy="api_user") + */ + protected $rider; + /** * @ORM\Column(type="json") */ @@ -164,5 +171,16 @@ class User extends BaseUser { return md5(uniqid($prefix, true)); } + + public function setRider($rider) + { + $this->rider = $rider; + return $this; + } + + public function getRider() + { + return $this->rider; + } } diff --git a/src/Controller/APIUserController.php b/src/Controller/APIUserController.php index 0196ae34..06f128e9 100644 --- a/src/Controller/APIUserController.php +++ b/src/Controller/APIUserController.php @@ -153,12 +153,20 @@ class APIUserController extends Controller $obj = new APIUser(); // metadata - $meta = ['rider_id' => $req->request->get('rider_id')]; + $rider_id = $req->request->get('rider_id'); + $rider = $em->getRepository(Rider::class)->find($rider_id); + // TODO: check for null rider + + $meta = ['rider_id' => $rider_id]; + + // set api user in rider + $rider->setAPIUser($obj); // set and save values $obj->setName($req->request->get('name')) ->setEnabled($req->request->get('enabled') ? true : false) ->setMetadata($meta) + ->setRider($rider) ->clearRoles(); // set roles @@ -249,12 +257,21 @@ class APIUserController extends Controller throw $this->createNotFoundException('The item does not exist'); // set and save values + // metadata + $rider_id = $req->request->get('rider_id'); + $rider = $em->getRepository(Rider::class)->find($rider_id); + // TODO: check for null rider + $meta = $obj->getMetadata(); - $meta['rider_id'] = $req->request->get('rider_id'); + $meta['rider_id'] = $rider_id; + + // set api user in rider + $rider->setAPIUser($obj); $obj->setName($req->request->get('name')) ->setEnabled($req->request->get('enabled') ? true : false) ->setMetadata($meta) + ->setRider($rider) ->clearRoles(); // set roles diff --git a/src/Entity/Rider.php b/src/Entity/Rider.php index fa3e0df9..34f49455 100644 --- a/src/Entity/Rider.php +++ b/src/Entity/Rider.php @@ -131,7 +131,7 @@ class Rider protected $current_job_order; /** - * @ORM\OneToOne(targetEntity="Catalyst\APIBundle\Entity\User") + * @ORM\OneToOne(targetEntity="Catalyst\APIBundle\Entity\User", inversedBy="rider") * @ORM\JoinColumn(name="api_user_id", referencedColumnName="id", nullable=true) */ protected $api_user; diff --git a/templates/api-user/form.html.twig b/templates/api-user/form.html.twig index 49c3e980..436f5f7b 100644 --- a/templates/api-user/form.html.twig +++ b/templates/api-user/form.html.twig @@ -52,9 +52,8 @@