diff --git a/grumphp.yml b/grumphp.yml index eda5fcd33..cccee9beb 100644 --- a/grumphp.yml +++ b/grumphp.yml @@ -40,7 +40,7 @@ grumphp: check: tasks: - phpcsfixer - # - phpstan + - phpstan - twigcs # - xlifflint # TODO: Re-implement - yamllint diff --git a/src/Controller/App/MapperController.php b/src/Controller/App/MapperController.php index 4aae345af..2046ac8c4 100644 --- a/src/Controller/App/MapperController.php +++ b/src/Controller/App/MapperController.php @@ -6,6 +6,7 @@ use App\Entity\Note; use App\Entity\Region; use App\Entity\Template; +use App\Entity\User; use App\Entity\Welcome; use App\Service\RegionsProvider; use App\Service\TemplatesProvider; @@ -22,6 +23,9 @@ class MapperController extends AbstractController { private Mapper $mapper; + + private ?User $user; + /** @var Template[] */ private array $templates; @@ -39,6 +43,7 @@ public function index(Request $request, string $regionKey, int $id, ?string $con { $region = $this->provider->getRegion($continent, $regionKey); + $this->user = $this->getUser(); // @phpstan-ignore assign.propertyType $this->mapper = $this->entityManager->find(Mapper::class, $id); $mapperRegions = array_map(fn (Region $region) => $region->getId(), $this->mapper->getRegion()->toArray()); @@ -102,7 +107,7 @@ private function updateWelcomeDate(bool $state): void if (true === $state) { $welcome->setDate(new \DateTime()); - $welcome->setUser($this->getUser()); + $welcome->setUser($this->user); $this->entityManager->persist($welcome); } else { @@ -119,7 +124,7 @@ private function updateWelcomeReply(bool $state): void $welcome = new Welcome(); $welcome->setMapper($this->mapper); $welcome->setDate(new \DateTime()); - $welcome->setUser($this->getUser()); + $welcome->setUser($this->user); } $welcome->setReply($state ? new \DateTime() : null); @@ -164,7 +169,7 @@ private function note(Request $request): FormInterface { $note = new Note(); $note->setMapper($this->mapper); - $note->setAuthor($this->getUser()); + $note->setAuthor($this->user); $form = $this->createFormBuilder($note) ->add('text', TextareaType::class, ['label' => 'Note']) diff --git a/src/Entity/Mapper.php b/src/Entity/Mapper.php index e876a0cb3..181efacce 100644 --- a/src/Entity/Mapper.php +++ b/src/Entity/Mapper.php @@ -26,18 +26,21 @@ class Mapper #[ORM\Column(type: 'string', length: 255)] private ?string $status; + /** @var Collection */ #[ORM\OneToMany(targetEntity: Changeset::class, mappedBy: 'mapper', orphanRemoval: true)] private Collection $changesets; #[ORM\Column(type: 'text', nullable: true)] private ?string $image; + /** @var Collection */ #[ORM\OneToMany(targetEntity: Note::class, mappedBy: 'mapper', orphanRemoval: true)] private Collection $notes; #[ORM\OneToOne(targetEntity: Welcome::class, mappedBy: 'mapper', cascade: ['persist'])] private ?Welcome $welcome; + /** @var Collection */ #[ORM\ManyToMany(targetEntity: Region::class, inversedBy: 'mappers')] private Collection $region; @@ -109,7 +112,7 @@ public function setStatus(string $status): self } /** - * @return Collection|Changeset[] + * @return Collection */ public function getChangesets(): Collection { @@ -149,7 +152,7 @@ public function setImage(?string $image): self } /** - * @return Collection|Note[] + * @return Collection */ public function getNotes(): Collection { diff --git a/src/Entity/Region.php b/src/Entity/Region.php index 166fab40f..d061de642 100644 --- a/src/Entity/Region.php +++ b/src/Entity/Region.php @@ -17,6 +17,7 @@ class Region #[ORM\Column(type: 'datetime')] private \DateTime $lastUpdate; + /** @var Collection */ #[ORM\ManyToMany(targetEntity: Mapper::class, mappedBy: 'region')] private Collection $mappers; diff --git a/src/Security/OpenStreetMapAuthenticator.php b/src/Security/OpenStreetMapAuthenticator.php index dd8f5c878..89a57e530 100644 --- a/src/Security/OpenStreetMapAuthenticator.php +++ b/src/Security/OpenStreetMapAuthenticator.php @@ -44,9 +44,9 @@ public function authenticate(Request $request): Passport $openstreetmapUser = $client->fetchUserFromToken($accessToken); $user = $this->entityManager->getRepository(User::class)->find($openstreetmapUser->getId()); - if (null === $user) { + if (null === $user && null !== $openstreetmapUser->getId()) { $user = new User(); - $user->setId($openstreetmapUser->getId()); + $user->setId((int) $openstreetmapUser->getId()); } $user->setDisplayName($openstreetmapUser->getDisplayName());