Beispiel #1
0
 /**
  * @param Request $request
  *
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  */
 public function saveTokenAction(Request $request)
 {
     $apiToken = new ApiToken();
     $apiToken->setUser($this->getUser());
     $formBuilder = $this->createFormBuilder($apiToken, array('action' => $this->generateUrl('api_key_create'), 'data_class' => 'CSBill\\UserBundle\\Entity\\ApiToken'));
     $formBuilder->add('name');
     $form = $formBuilder->getForm();
     $form->handleRequest($request);
     $response = array();
     if ($form->isValid()) {
         $factory = new Factory();
         $generator = $factory->getMediumStrengthGenerator();
         $token = $generator->generateString(64, Generator::CHAR_ALNUM);
         $apiToken->setToken($token);
         $this->save($apiToken);
         $response['status'] = 0;
         $response['token'] = array('token' => $apiToken->getToken(), 'name' => $apiToken->getName(), 'id' => $apiToken->getId());
         return $this->json($response);
     } else {
         $response['status'] = 1;
     }
     $content = $this->renderView('CSBillUserBundle:Api:create.html.twig', array('form' => $form->createView()));
     $response['content'] = $content;
     return $this->json($response);
 }
Beispiel #2
0
 /**
  * @param User   $user
  * @param string $name
  *
  * @return ApiToken
  */
 public function create(User $user, $name)
 {
     $apiToken = new ApiToken();
     $apiToken->setToken($this->generateToken());
     $apiToken->setUser($user);
     $apiToken->setName($name);
     $entityManager = $this->registry->getManager();
     $entityManager->persist($apiToken);
     $entityManager->flush();
     return $apiToken;
 }
Beispiel #3
0
 public function testGetOrCreate()
 {
     $registry = M::mock(ManagerRegistry::class);
     $user = new User();
     $token1 = new ApiToken();
     $token1->setName('token1');
     $token2 = new ApiToken();
     $token2->setName('token2');
     $user->setApiTokens([$token1, $token2]);
     $manager = M::mock(ObjectManager::class);
     $registry->shouldReceive('getManager')->withNoArgs()->andReturn($manager);
     $manager->shouldReceive('persist')->withAnyArgs()->andReturn();
     $manager->shouldReceive('flush')->withNoArgs();
     $tm = new ApiTokenManager($registry);
     $token = $tm->getOrCreate($user, 'token3');
     $this->assertInstanceOf(ApiToken::class, $token);
     $this->assertNotSame($token1, $token);
     $this->assertNotSame($token2, $token);
     $this->assertSame($user, $token->getUser());
     $this->assertSame('token3', $token->getName());
 }
Beispiel #4
0
 /**
  * @param Request $request
  *
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  */
 public function saveTokenAction(Request $request)
 {
     $apiToken = new ApiToken();
     $apiToken->setUser($this->getUser());
     $formBuilder = $this->createFormBuilder($apiToken, ['action' => $this->generateUrl('api_key_create'), 'data_class' => 'CSBill\\UserBundle\\Entity\\ApiToken']);
     $formBuilder->add('name');
     $form = $formBuilder->getForm();
     $form->handleRequest($request);
     $response = [];
     if ($request->isMethod('POST')) {
         if ($form->isValid()) {
             $apiToken->setToken($this->get('api.token.manager')->generateToken());
             $this->save($apiToken);
             $response['status'] = 'success';
             $response['token'] = ['token' => $apiToken->getToken(), 'name' => $apiToken->getName(), 'id' => $apiToken->getId()];
             return $this->json($response);
         } else {
             $response['status'] = 'failure';
         }
     }
     $content = $this->renderView('CSBillUserBundle:Api:create.html.twig', ['form' => $form->createView()]);
     $response['content'] = $content;
     return $this->json($response);
 }