Merge branch '625-new-rider-cannot-log-in-to-app' into 'master-fix'

Resolve "New rider cannot log in to app"

See merge request jankstudio/resq!739
This commit is contained in:
Kendrick Chan 2021-10-06 04:14:23 +00:00
commit 38ce447b0a

View file

@ -25,6 +25,9 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Catalyst\MenuBundle\Annotation\Menu; use Catalyst\MenuBundle\Annotation\Menu;
use Catalyst\APIBundle\Entity\User as APIUser;
use Catalyst\APIBundle\Entity\Role as APIRole;
use DateTime; use DateTime;
class RiderController extends Controller class RiderController extends Controller
@ -283,6 +286,9 @@ class RiderController extends Controller
$em->persist($obj); $em->persist($obj);
$em->flush(); $em->flush();
// create rider's api user
$this->createRiderAPIUser($obj, $em);
// return successful response // return successful response
return $this->json([ return $this->json([
'success' => 'Changes have been saved!' '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) public function popupInfo(EntityManagerInterface $em, $id)
{ {
$rider = $em->getRepository(Rider::class)->find($id); $rider = $em->getRepository(Rider::class)->find($id);