Set api role for rider api user. #617

This commit is contained in:
Korina Cordero 2021-08-21 06:39:12 +00:00
parent ff5e747d7a
commit 25954afe63

View file

@ -11,6 +11,7 @@ use Symfony\Component\Console\Output\OutputInterface;
use Doctrine\ORM\EntityManagerInterface;
use Catalyst\APIBundle\Entity\User as APIUser;
use Catalyst\APIBundle\Entity\Role as APIRole;
use App\Entity\Rider;
@ -31,7 +32,8 @@ class CreateRiderAPIUserCommand extends Command
{
$this->setName('api:user-create-for-rider')
->setDescription('Create API users for existing riders.')
->setHelp('Creates API users for existing riders.');
->setHelp('Creates API users for existing riders.')
->addArgument('role_id', InputArgument::REQUIRED, 'Role ID for api_user.');
}
protected function execute(InputInterface $input, OutputInterface $output)
@ -40,6 +42,15 @@ class CreateRiderAPIUserCommand extends Command
// get all existing riders
$riders = $this->em->getRepository(Rider::class)->findAll();
// get role for rider api user
$role_id = $input->getArgument('role_id');
$role = $this->em->getRepository(APIRole::class)->find($role_id);
if ($role == null)
{
error_log('Cannot find role with id ' . $role_id);
return 0;
}
foreach ($riders as $rider)
{
// create api user for each rider
@ -47,6 +58,9 @@ class CreateRiderAPIUserCommand extends Command
// 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 = $rider->getLastName() . '_' . $rider->getFirstName();
$api_user->setName($rider_name);
@ -58,6 +72,9 @@ class CreateRiderAPIUserCommand extends Command
$meta = ['rider_id' => $rider->getID()];
$api_user->setMetaData($meta);
// set role
$api_user->addRole($role);
// set rider's api user
$rider->setAPIUser($api_user);