bug fix
This commit is contained in:
parent
8bb77fbe6c
commit
21d651f377
|
@ -26,18 +26,18 @@ class PasteController extends AbstractController
|
||||||
$pasteData = $form->getData();
|
$pasteData = $form->getData();
|
||||||
|
|
||||||
$secret = null;
|
$secret = null;
|
||||||
if ($pasteData->isPrivate()) {
|
if ($pasteData->private) {
|
||||||
$secret = hash('sha1', random_bytes(25));
|
$secret = hash('sha1', random_bytes(25));
|
||||||
}
|
}
|
||||||
|
|
||||||
$paste = new Paste(
|
$paste = new Paste(
|
||||||
$pasteData->getText(),
|
$pasteData->text,
|
||||||
$pasteData->getLanguage(),
|
$pasteData->language,
|
||||||
$pasteData->getDescription(),
|
$pasteData->description,
|
||||||
$pasteData->getFilename(),
|
$pasteData->filename,
|
||||||
$pasteData->getAuthor(),
|
$pasteData->author,
|
||||||
new \DateTimeImmutable(),
|
new \DateTimeImmutable(),
|
||||||
$pasteData->getExpirationDate(),
|
$pasteData->expirationDate,
|
||||||
$request->getClientIp(),
|
$request->getClientIp(),
|
||||||
$secret
|
$secret
|
||||||
);
|
);
|
||||||
|
@ -52,10 +52,11 @@ class PasteController extends AbstractController
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/{id}/{secret}')]
|
#[Route('/{id}/{secret}')]
|
||||||
public function showPaste(PasteRepository $pasteRepository, Request $request, string $id, ?string $secret=NULL): Response
|
public function showPaste(PasteRepository $pasteRepository, string $id, ?string $secret=NULL): Response
|
||||||
{
|
{
|
||||||
$paste = $pasteRepository->findOneBy(['id' => $id, 'secret' => $secret]);
|
$paste = $pasteRepository->findOneBy(['id' => $id, 'secret' => $secret]);
|
||||||
$form = $this->createForm(PasteForm::class, $paste);
|
$pasteData = new PasteFormData($paste);
|
||||||
|
$form = $this->createForm(PasteForm::class, $pasteData);
|
||||||
|
|
||||||
return $this->render('paste.html.twig', [
|
return $this->render('paste.html.twig', [
|
||||||
'form' => $form,
|
'form' => $form,
|
||||||
|
|
|
@ -3,120 +3,36 @@ declare(strict_types = 1);
|
||||||
|
|
||||||
namespace App\DTO;
|
namespace App\DTO;
|
||||||
|
|
||||||
|
use App\Entity\Paste;
|
||||||
use Symfony\Component\Validator\Constraints as Assert;
|
use Symfony\Component\Validator\Constraints as Assert;
|
||||||
|
|
||||||
|
|
||||||
class PasteFormData
|
class PasteFormData
|
||||||
{
|
{
|
||||||
private int $id;
|
|
||||||
|
|
||||||
#[Assert\NotBlank]
|
#[Assert\NotBlank]
|
||||||
private string $text;
|
public string $text;
|
||||||
|
|
||||||
#[Assert\Type(\boolean::class)]
|
#[Assert\Type(\boolean::class)]
|
||||||
private bool $private;
|
public bool $private;
|
||||||
|
public ?string $language = null;
|
||||||
private ?string $language = null;
|
public ?string $description = null;
|
||||||
|
public ?string $filename = null;
|
||||||
private ?string $description = null;
|
|
||||||
|
|
||||||
private ?string $filename = null;
|
|
||||||
|
|
||||||
#[Assert\NotBlank]
|
#[Assert\NotBlank]
|
||||||
private string $author = 'anonymous';
|
public string $author = 'anonymous';
|
||||||
|
|
||||||
#[Assert\Type(\DateTimeImmutable::class)]
|
#[Assert\Type(\DateTimeImmutable::class)]
|
||||||
private ?\DateTimeImmutable $expirationDate;
|
public ?\DateTimeImmutable $expirationDate;
|
||||||
|
|
||||||
private ?string $secret;
|
public function __construct(?Paste $paste=null)
|
||||||
|
|
||||||
public function getId(): int
|
|
||||||
{
|
{
|
||||||
return $this->id;
|
if ($paste === null)
|
||||||
}
|
{
|
||||||
|
return;
|
||||||
public function setId(int $id): void
|
}
|
||||||
{
|
$this->text = $paste->text;
|
||||||
$this->id = $id;
|
$this->private = $paste->secret !== null;
|
||||||
}
|
$this->language = $paste->language;
|
||||||
|
$this->description = $paste->description;
|
||||||
public function getText(): string
|
$this->filename = $paste->filename;
|
||||||
{
|
$this->author = $paste->author;
|
||||||
return $this->text;
|
$this->expirationDate = $paste->expirationDate;
|
||||||
}
|
|
||||||
|
|
||||||
public function setText(string $text): void
|
|
||||||
{
|
|
||||||
$this->text = $text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLanguage(): ?string
|
|
||||||
{
|
|
||||||
return $this->language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setLanguage(?string $language): void
|
|
||||||
{
|
|
||||||
$this->language = $language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getDescription(): ?string
|
|
||||||
{
|
|
||||||
return $this->description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setDescription(?string $description): void
|
|
||||||
{
|
|
||||||
$this->description = $description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getFilename(): ?string
|
|
||||||
{
|
|
||||||
return $this->filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setFilename(?string $filename): void
|
|
||||||
{
|
|
||||||
$this->filename = $filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getAuthor(): string
|
|
||||||
{
|
|
||||||
return $this->author;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setAuthor(string $author): void
|
|
||||||
{
|
|
||||||
$this->author = $author;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getExpirationDate(): ?\DateTime
|
|
||||||
{
|
|
||||||
return $this->expirationDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setExpirationDate(?\DateTime $date): void
|
|
||||||
{
|
|
||||||
$this->expirationDate = $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getSecret(): ?string
|
|
||||||
{
|
|
||||||
return $this->secret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setSecret(?string $secret): void
|
|
||||||
{
|
|
||||||
$this->secret = $secret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function isPrivate(): bool
|
|
||||||
{
|
|
||||||
return $this->private;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setPrivate(bool $private): void
|
|
||||||
{
|
|
||||||
$this->private = $private;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue