/** * @Patch("/{user}/roles", requirements={"user"="\d+"}) * @ApiDoc( * section="Users", * description="Update user roles.", * input="user_roles_form" * ) * * @ParamConverter("user", class="AuthBundle:User") * * @param User $user * @param Request $request * * @return array * * @throws InvalidFormException */ public function patchUserRolesAction(User $user, Request $request) { $form = $this->get('form.factory')->create('user_roles_form'); $form->submit($request->request->all()); if (!$form->isValid()) { throw new InvalidFormException($form); } $data = $form->getData(); $user->setRoles($data['roles']); $this->get('doctrine.orm.default_entity_manager')->flush(); return ['resource_id' => $user->getId(), '_link' => $this->route($user)]; }
/** * Load data fixtures with the passed EntityManager. * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $clientManager = $this->container->get('fos_oauth_server.client_manager'); /** @var Client $client */ $client = $clientManager->createClient(); $client->setRedirectUris([]); $client->setAllowedGrantTypes(['password', 'refresh_token']); $client->setRandomId('random_id'); $client->setSecret('secret'); $manager->persist($client); $user = new User(); $user->setRoles(['ROLE_ADMIN']); $user->setUsername('test'); $encoderFactory = $this->container->get('security.encoder_factory'); $user->setPassword($encoderFactory->getEncoder($user)->encodePassword('test', $user->getSalt())); $manager->persist($user); $manager->flush(); }