Fix cs after php-cs-fixer upgrade, fix phpstan and rector errors

This commit is contained in:
Julien Fastré 2024-09-05 18:00:37 +02:00
parent e29e1db6ed
commit e8f09b507f
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
5 changed files with 39 additions and 26 deletions

View File

@ -343,7 +343,7 @@ class WorkflowController extends AbstractController
$this->entityManager->flush(); $this->entityManager->flush();
if ($onHoldStep) { if (null !== $onHoldStep) {
$this->entityManager->remove($onHoldStep); $this->entityManager->remove($onHoldStep);
} }

View File

@ -1,16 +1,26 @@
<?php <?php
declare(strict_types=1);
/*
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Chill\MainBundle\Controller; namespace Chill\MainBundle\Controller;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Entity\Workflow\EntityWorkflow; use Chill\MainBundle\Entity\Workflow\EntityWorkflow;
use Chill\MainBundle\Entity\Workflow\EntityWorkflowStepHold; use Chill\MainBundle\Entity\Workflow\EntityWorkflowStepHold;
use Chill\MainBundle\Repository\Workflow\EntityWorkflowRepository; use Chill\MainBundle\Repository\Workflow\EntityWorkflowRepository;
use Chill\MainBundle\Repository\Workflow\EntityWorkflowStepHoldRepository; use Chill\MainBundle\Repository\Workflow\EntityWorkflowStepHoldRepository;
use Chill\MainBundle\Security\ChillSecurity;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Core\Security;
use Symfony\Component\Workflow\Registry; use Symfony\Component\Workflow\Registry;
@ -22,7 +32,7 @@ class WorkflowOnHoldController extends AbstractController
private readonly Security $security, private readonly Security $security,
private readonly Registry $registry, private readonly Registry $registry,
private readonly EntityWorkflowStepHoldRepository $entityWorkflowStepHoldRepository, private readonly EntityWorkflowStepHoldRepository $entityWorkflowStepHoldRepository,
private readonly EntityWorkflowRepository $entityWorkflowRepository private readonly EntityWorkflowRepository $entityWorkflowRepository,
) {} ) {}
#[Route(path: '/{_locale}/main/workflow/{id}/hold', name: 'chill_main_workflow_on_hold')] #[Route(path: '/{_locale}/main/workflow/{id}/hold', name: 'chill_main_workflow_on_hold')]
@ -33,10 +43,14 @@ class WorkflowOnHoldController extends AbstractController
$currentStep = $entityWorkflow->getCurrentStep(); $currentStep = $entityWorkflow->getCurrentStep();
$currentUser = $this->security->getUser(); $currentUser = $this->security->getUser();
if (!$currentUser instanceof User) {
throw new AccessDeniedHttpException('only user can put a workflow on hold');
}
$workflow = $this->registry->get($entityWorkflow, $entityWorkflow->getWorkflowName()); $workflow = $this->registry->get($entityWorkflow, $entityWorkflow->getWorkflowName());
$enabledTransitions = $workflow->getEnabledTransitions($entityWorkflow); $enabledTransitions = $workflow->getEnabledTransitions($entityWorkflow);
if (!count($enabledTransitions) > 0) { if (0 === count($enabledTransitions)) {
throw $this->createAccessDeniedException('You are not allowed to apply any transitions to this workflow, therefore you cannot toggle the hold status.'); throw $this->createAccessDeniedException('You are not allowed to apply any transitions to this workflow, therefore you cannot toggle the hold status.');
} }
@ -64,5 +78,4 @@ class WorkflowOnHoldController extends AbstractController
return $this->redirectToRoute('chill_main_workflow_show', ['id' => $entityWorkflow->getId()]); return $this->redirectToRoute('chill_main_workflow_show', ['id' => $entityWorkflow->getId()]);
} }
} }

View File

@ -26,21 +26,13 @@ class EntityWorkflowStepHold implements TrackCreationInterface
#[ORM\Id] #[ORM\Id]
#[ORM\GeneratedValue] #[ORM\GeneratedValue]
#[ORM\Column(type: \Doctrine\DBAL\Types\Types::INTEGER)] #[ORM\Column(type: \Doctrine\DBAL\Types\Types::INTEGER)]
private ?int $id; private ?int $id = null;
#[ORM\ManyToOne(targetEntity: EntityWorkflowStep::class)] public function __construct(#[ORM\ManyToOne(targetEntity: EntityWorkflowStep::class)]
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private EntityWorkflowStep $step; private EntityWorkflowStep $step, #[ORM\ManyToOne(targetEntity: User::class)]
#[ORM\JoinColumn(nullable: false)]
#[ORM\ManyToOne(targetEntity: User::class)] private User $byUser) {}
#[ORM\JoinColumn(nullable: false)]
private User $byUser;
public function __construct(EntityWorkflowStep $step, User $byUser)
{
$this->step = $step;
$this->byUser = $byUser;
}
public function getId(): ?int public function getId(): ?int
{ {

View File

@ -19,12 +19,10 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException; use Doctrine\ORM\NoResultException;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Workflow\Workflow;
/** /**
* @template-extends ServiceEntityRepository<EntityWorkflowStepHold> * @template-extends ServiceEntityRepository<EntityWorkflowStepHold>
*/ */
class EntityWorkflowStepHoldRepository extends ServiceEntityRepository class EntityWorkflowStepHoldRepository extends ServiceEntityRepository
{ {
public function __construct(ManagerRegistry $registry) public function __construct(ManagerRegistry $registry)
@ -92,7 +90,7 @@ class EntityWorkflowStepHoldRepository extends ServiceEntityRepository
->setParameter('user', $user) ->setParameter('user', $user)
->getQuery() ->getQuery()
->getSingleResult(); ->getSingleResult();
} catch (NoResultException $e) { } catch (NoResultException) {
return null; return null;
} }
} }

View File

@ -1,5 +1,14 @@
<?php <?php
declare(strict_types=1);
/*
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Chill\MainBundle\Tests\Controller; namespace Chill\MainBundle\Tests\Controller;
use Chill\MainBundle\Controller\WorkflowOnHoldController; use Chill\MainBundle\Controller\WorkflowOnHoldController;
@ -8,19 +17,20 @@ use Chill\MainBundle\Entity\Workflow\EntityWorkflowStep;
use Chill\MainBundle\Entity\Workflow\EntityWorkflowStepHold; use Chill\MainBundle\Entity\Workflow\EntityWorkflowStepHold;
use Chill\MainBundle\Repository\Workflow\EntityWorkflowRepository; use Chill\MainBundle\Repository\Workflow\EntityWorkflowRepository;
use Chill\MainBundle\Repository\Workflow\EntityWorkflowStepHoldRepository; use Chill\MainBundle\Repository\Workflow\EntityWorkflowStepHoldRepository;
use Chill\MainBundle\Security\ChillSecurity;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use PHPUnit\Framework\TestCase;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Core\Security;
use Symfony\Component\Workflow\Registry; use Symfony\Component\Workflow\Registry;
use Symfony\Component\Workflow\Transition; use Symfony\Component\Workflow\Transition;
use Symfony\Component\Workflow\Workflow; use Symfony\Component\Workflow\Workflow;
/**
* @internal
*
* @coversNothing
*/
class WorkflowOnHoldControllerTest extends KernelTestCase class WorkflowOnHoldControllerTest extends KernelTestCase
{ {
private $entityManager; private $entityManager;