diff --git a/catalyst/api-bundle/Entity/User.php b/catalyst/api-bundle/Entity/User.php index a55c88c6..6065979d 100644 --- a/catalyst/api-bundle/Entity/User.php +++ b/catalyst/api-bundle/Entity/User.php @@ -53,6 +53,11 @@ class User extends BaseUser */ protected $roles; + /** + * @ORM\Column(type="json") + */ + protected $metadata; + public function __construct() { parent::__construct(); @@ -63,6 +68,7 @@ class User extends BaseUser // set date created $this->date_create = new DateTime(); + $this->metadata = []; } public function getID() @@ -140,6 +146,20 @@ class User extends BaseUser return $this->generateKey('secret'); } + public function setMetadata($meta) + { + $this->metadata = $meta; + return $this; + } + + public function getMetadata() + { + if ($this->metadata == null) + return []; + + return $this->metadata; + } + protected function generateKey($prefix = '') { return md5(uniqid($prefix, true)); diff --git a/src/Controller/APIUserController.php b/src/Controller/APIUserController.php index 8dd7e2f1..0196ae34 100644 --- a/src/Controller/APIUserController.php +++ b/src/Controller/APIUserController.php @@ -14,6 +14,8 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Catalyst\MenuBundle\Annotation\Menu; +use App\Entity\Rider; + class APIUserController extends Controller { /** @@ -135,6 +137,7 @@ class APIUserController extends Controller // get roles $em = $this->getDoctrine()->getManager(); $params['roles'] = $em->getRepository(APIRole::class)->findAll(); + $params['riders'] = $em->getRepository(Rider::class)->findBy([], ['first_name' => 'asc']); // response return $this->render('api-user/form.html.twig', $params); @@ -149,9 +152,13 @@ class APIUserController extends Controller $em = $this->getDoctrine()->getManager(); $obj = new APIUser(); + // metadata + $meta = ['rider_id' => $req->request->get('rider_id')]; + // set and save values $obj->setName($req->request->get('name')) ->setEnabled($req->request->get('enabled') ? true : false) + ->setMetadata($meta) ->clearRoles(); // set roles @@ -221,6 +228,7 @@ class APIUserController extends Controller // get roles $params['roles'] = $em->getRepository(APIRole::class)->findAll(); + $params['riders'] = $em->getRepository(Rider::class)->findBy([], ['first_name' => 'asc']); $params['obj'] = $obj; @@ -241,8 +249,12 @@ class APIUserController extends Controller throw $this->createNotFoundException('The item does not exist'); // set and save values + $meta = $obj->getMetadata(); + $meta['rider_id'] = $req->request->get('rider_id'); + $obj->setName($req->request->get('name')) ->setEnabled($req->request->get('enabled') ? true : false) + ->setMetadata($meta) ->clearRoles(); // set roles diff --git a/src/Entity/Rider.php b/src/Entity/Rider.php index 8a2ed9ea..fa3e0df9 100644 --- a/src/Entity/Rider.php +++ b/src/Entity/Rider.php @@ -9,6 +9,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Criteria; use App\Ramcar\JOStatus; +use Catalyst\APIBundle\Entity\User as APIUser; /** * @ORM\Entity @@ -129,6 +130,12 @@ class Rider */ protected $current_job_order; + /** + * @ORM\OneToOne(targetEntity="Catalyst\APIBundle\Entity\User") + * @ORM\JoinColumn(name="api_user_id", referencedColumnName="id", nullable=true) + */ + protected $api_user; + public function __construct() { $this->job_orders = new ArrayCollection(); @@ -142,6 +149,7 @@ class Rider $this->active_job_order = null; $this->current_job_order = null; + $this->api_user = null; } public function getID() @@ -392,4 +400,15 @@ class Rider { return $this->current_job_order; } + + public function setAPIUser($user) + { + $this->api_user = $user; + return $this; + } + + public function getAPIUser() + { + return $this->api_user; + } } diff --git a/templates/api-user/form.html.twig b/templates/api-user/form.html.twig index 57c3c313..49c3e980 100644 --- a/templates/api-user/form.html.twig +++ b/templates/api-user/form.html.twig @@ -45,6 +45,21 @@ +
+
+ + + +
+