vendor/uvdesk/api-bundle/Controller/ApiSettings.php line 45

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\ApiBundle\Controller;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. use Symfony\Component\HttpFoundation\RedirectResponse;
  8. use Webkul\UVDesk\ApiBundle\Entity\ApiAccessCredential;
  9. use Symfony\Component\Security\Core\User\UserInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Webkul\UVDesk\CoreFrameworkBundle\Utils\TokenGenerator;
  12. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  13. use Symfony\Component\DependencyInjection\ContainerInterface;
  14. class ApiSettings extends AbstractController
  15. {
  16.     public function loadConfigurations(ContainerInterface $container)
  17.     {
  18.         if (!$container->get('user.service')->isAccessAuthorized('ROLE_ADMIN')) {
  19.             throw new AccessDeniedException("Insufficient account privileges");
  20.         }
  21.         return $this->render('@UVDeskApi//accessCredentials.html.twig');
  22.     }
  23.     public function loadConfigurationsXHR(Request $requestUserInterface $userEntityManagerInterface $entityManager)
  24.     {
  25.         if (!empty($user)) {
  26.             $collection array_map(function ($accessCredential) {
  27.                 return [
  28.                     'id' => $accessCredential->getId(),
  29.                     'name' => $accessCredential->getName(),
  30.                     'token' => $accessCredential->getToken(),
  31.                     'dateCreated' => $accessCredential->getCreatedOn()->format('(l) F d, Y \a\t H:i:s'),
  32.                     'isEnabled' => $accessCredential->getIsEnabled(),
  33.                 ];
  34.             }, $entityManager->getRepository(ApiAccessCredential::class)->findBy(['user' => $user]));
  35.         }
  36.         return new JsonResponse($collection ?? []);
  37.     }
  38.     public function createAccessCredentials(Request $requestUserInterface $userEntityManagerInterface $entityManager)
  39.     {
  40.         if ($request->getMethod() == 'POST') {
  41.             $params $request->request->all();
  42.             if (!empty($params['name']) && !empty($user)) {
  43.                 ($accessCredential = new ApiAccessCredential())
  44.                     ->setUser($user)
  45.                     ->setName($params['name'])
  46.                     ->setToken(strtoupper(TokenGenerator::generateToken(64)))
  47.                     ->setCreatedOn(new \DateTime('now'))
  48.                     ->setIsEnabled(true)
  49.                     ->setIsExpired(false);
  50.                 $entityManager->persist($accessCredential);
  51.                 $entityManager->flush();
  52.             }
  53.             $this->addFlash('success''Api access credentials created successfully.');
  54.             return new RedirectResponse($this->generateUrl('uvdesk_api_load_configurations'));
  55.         }
  56.         return $this->render('@UVDeskApi//accessCredentialSettings.html.twig');
  57.     }
  58.     public function updateAccessCredentialsXHR(Request $requestUserInterface $userEntityManagerInterface $entityManager)
  59.     {
  60.         $params $request->request->all();
  61.         if (empty($params)) {
  62.             return new JsonResponse([], 404);
  63.         } else {
  64.             $accessCredential $entityManager->getRepository(ApiAccessCredential::class)->findOneById($params['id']);
  65.             if (empty($accessCredential) || $accessCredential->getUser()->getId() != $user->getId()) {
  66.                 return new JsonResponse([], 404);
  67.             }
  68.         }
  69.         switch ($request->getMethod()) {
  70.             case 'PATCH':
  71.                 $accessCredential
  72.                     ->setIsEnabled(("false" == $params['isEnabled']) ? false true)
  73.                     ->setIsExpired(("false" == $params['isEnabled']) ? true false);
  74.                 
  75.                 $entityManager->persist($accessCredential);
  76.                 $entityManager->flush();
  77.                 break;
  78.             case 'DELETE':
  79.                 $entityManager->remove($accessCredential);
  80.                 $entityManager->flush();
  81.                 break;
  82.             default:
  83.                 break;
  84.         }
  85.         return new JsonResponse([]);
  86.     }
  87. }