src/Controller/TokenController.php line 18
<?phpnamespace App\Controller;use App\Entity\TokenManager;use App\Form\UserTokenType;use App\Repository\ProgramManagerRepository;use App\Repository\TokenManagerRepository;use App\Repository\UserRepository;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;#[Route('/admin/token')]class TokenController extends BaseController{#[Route('/{id}/edit-token', name: 'app_user_edit_tokens', methods: ['GET', 'POST'])]public function editToken(Request $request,TokenManager $tokenManager,TokenManagerRepository $tokenManagerRepository,ProgramManagerRepository $programManagerRepository,UserRepository $userRepository,): Response {$this->denyAccessUnlessGranted('ROLE_PROGRAM_MANAGER');$form = $this->createForm(UserTokenType::class);$form->get('tokensBot')->setData(0);$form->handleRequest($request);$notEnoughTokens = null;$programManager = $this->getUser()->getProgramManager();$user = $userRepository->findUserFromTokenManager($tokenManager);if ($form->isSubmitted() && $form->isValid()) {$newTokens = intval($form->get('tokensBot')->getData()) + intval($tokenManager->getTokensBot());if ($newTokens < $tokenManager->getTokensBot()) {$tokenDiff = $tokenManager->getTokensBot() - $newTokens;$programManager->addTokens($tokenDiff);$tokenManager->setTokensBot($newTokens);$programManagerRepository->save($programManager, true);$tokenManagerRepository->save($tokenManager, true);if ($request->get('origin')) {return $this->redirectToRoute($request->get('origin'), json_decode($request->get('origin_params'), associative: true), Response::HTTP_SEE_OTHER);}return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);} elseif ($newTokens > $tokenManager->getTokensBot()) {$totalTokens = $tokenManager->getTokensBot() + $programManager->getTokensPool();if ($totalTokens < $newTokens) {$notEnoughTokens = $programManager->getTokensPool();} else {$programManager->setTokensPool($totalTokens - $newTokens);$tokenManager->setTokensBot($newTokens);$programManagerRepository->save($programManager, true);$tokenManagerRepository->save($tokenManager, true);if ($request->get('origin')) {return $this->redirectToRoute($request->get('origin'), json_decode($request->get('origin_params'), associative: true), Response::HTTP_SEE_OTHER);}return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);}}}return $this->render('user/edit-token.html.twig', ['origin' => $request->get('origin'),'tokenFormVar' => true,'notEnoughTokens' => $notEnoughTokens,'manager' => $programManager,'origin_params' => json_decode($request->get('origin_params'), associative: true),'tokenManager' => $tokenManager,'form' => $form,'user' => $user,]);}}