Add creation of rider api user when rider is created. #625
This commit is contained in:
parent
697fa20071
commit
c6654bd3c6
1 changed files with 43 additions and 0 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue