From 8683adb56121e45c1c5ce6582e3b22f58c67bc7d Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 27 Aug 2021 05:44:56 +0700 Subject: [PATCH 1/4] [Rector] Apply Doctrine ORM 2.9 SetList --- composer.json | 2 +- composer.lock | 50 +++++++++--------- lib/Admin/Controller/Me/DeleteApiClient.php | 4 +- lib/Entity/ApiClient.php | 35 ++++++------- lib/Entity/ApiClientRequest.php | 44 ++++++++-------- lib/Entity/Cron.php | 47 +++++++---------- lib/Entity/CronReport.php | 41 +++++++-------- lib/Entity/Group.php | 29 +++++------ lib/Entity/Media.php | 38 ++++++-------- lib/Entity/Menu.php | 51 ++++++++---------- lib/Entity/PasswordHistory.php | 36 ++++++------- lib/Entity/Permission.php | 41 +++++++-------- lib/Entity/Setting.php | 42 +++++++-------- lib/Entity/User.php | 57 ++++++++------------- rector.php | 2 + 15 files changed, 232 insertions(+), 287 deletions(-) diff --git a/composer.json b/composer.json index 33334aaf..32d557ff 100644 --- a/composer.json +++ b/composer.json @@ -76,7 +76,7 @@ "nunomaduro/phpinsights": "^2.0", "phpstan/phpstan": "^0.12.94", "phpunit/phpunit": ">=9.5", - "rector/rector": "^0.11.49", + "rector/rector": "^0.11.51", "symfony/browser-kit": ">=5.3", "symfony/css-selector": ">=5.3", "symfony/debug-bundle": ">=5.3", diff --git a/composer.lock b/composer.lock index 3a790861..151bfc46 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bb87b6a83a41addaf93148f59e9e94b0", + "content-hash": "1d7089ac5bfb04df9dd1530f391965e8", "packages": [ { "name": "beberlei/assert", @@ -11356,16 +11356,16 @@ }, { "name": "phpstan/phpstan", - "version": "0.12.95", + "version": "0.12.96", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "4ffddfe86e85dcc494a47e5f3dcfd1a2dccdce58" + "reference": "a98bdc51318f20fcae8c953d266f81a70254917f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/4ffddfe86e85dcc494a47e5f3dcfd1a2dccdce58", - "reference": "4ffddfe86e85dcc494a47e5f3dcfd1a2dccdce58", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a98bdc51318f20fcae8c953d266f81a70254917f", + "reference": "a98bdc51318f20fcae8c953d266f81a70254917f", "shasum": "" }, "require": { @@ -11396,7 +11396,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.95" + "source": "https://github.com/phpstan/phpstan/tree/0.12.96" }, "funding": [ { @@ -11416,7 +11416,7 @@ "type": "tidelift" } ], - "time": "2021-08-20T12:53:41+00:00" + "time": "2021-08-21T11:55:13+00:00" }, { "name": "phpunit/php-code-coverage", @@ -11892,21 +11892,21 @@ }, { "name": "rector/rector", - "version": "0.11.49", + "version": "0.11.51", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "fdf11ed923d79c1777f993ef755fc8fe111a25a2" + "reference": "5c16de935192421dc3716002a65ed84666b870a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/fdf11ed923d79c1777f993ef755fc8fe111a25a2", - "reference": "fdf11ed923d79c1777f993ef755fc8fe111a25a2", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/5c16de935192421dc3716002a65ed84666b870a6", + "reference": "5c16de935192421dc3716002a65ed84666b870a6", "shasum": "" }, "require": { "php": "^7.1|^8.0", - "phpstan/phpstan": "0.12.95" + "phpstan/phpstan": "0.12.96" }, "conflict": { "phpstan/phpdoc-parser": "<=0.5.3", @@ -11939,7 +11939,7 @@ "description": "Prefixed and PHP 7.1 downgraded version of rector/rector", "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.11.49" + "source": "https://github.com/rectorphp/rector/tree/0.11.51" }, "funding": [ { @@ -11947,7 +11947,7 @@ "type": "github" } ], - "time": "2021-08-23T11:18:30+00:00" + "time": "2021-08-26T17:03:37+00:00" }, { "name": "sebastian/cli-parser", @@ -12915,16 +12915,16 @@ }, { "name": "slevomat/coding-standard", - "version": "7.0.13", + "version": "7.0.14", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "122a9bf9a4a2195f74100f47dfb8375982f43cc9" + "reference": "15b2b4630c148775debea8e412bc7e128d9868a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/122a9bf9a4a2195f74100f47dfb8375982f43cc9", - "reference": "122a9bf9a4a2195f74100f47dfb8375982f43cc9", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/15b2b4630c148775debea8e412bc7e128d9868a3", + "reference": "15b2b4630c148775debea8e412bc7e128d9868a3", "shasum": "" }, "require": { @@ -12935,12 +12935,12 @@ }, "require-dev": { "phing/phing": "2.16.4", - "php-parallel-lint/php-parallel-lint": "1.3.0", - "phpstan/phpstan": "0.12.93", + "php-parallel-lint/php-parallel-lint": "1.3.1", + "phpstan/phpstan": "0.12.96", "phpstan/phpstan-deprecation-rules": "0.12.6", - "phpstan/phpstan-phpunit": "0.12.21", - "phpstan/phpstan-strict-rules": "0.12.10", - "phpunit/phpunit": "7.5.20|8.5.5|9.5.7" + "phpstan/phpstan-phpunit": "0.12.22", + "phpstan/phpstan-strict-rules": "0.12.11", + "phpunit/phpunit": "7.5.20|8.5.5|9.5.8" }, "type": "phpcodesniffer-standard", "extra": { @@ -12960,7 +12960,7 @@ "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/7.0.13" + "source": "https://github.com/slevomat/coding-standard/tree/7.0.14" }, "funding": [ { @@ -12972,7 +12972,7 @@ "type": "tidelift" } ], - "time": "2021-07-29T14:30:22+00:00" + "time": "2021-08-26T12:17:56+00:00" }, { "name": "squizlabs/php_codesniffer", diff --git a/lib/Admin/Controller/Me/DeleteApiClient.php b/lib/Admin/Controller/Me/DeleteApiClient.php index e413ad4f..7844ef73 100644 --- a/lib/Admin/Controller/Me/DeleteApiClient.php +++ b/lib/Admin/Controller/Me/DeleteApiClient.php @@ -4,6 +4,7 @@ namespace KejawenLab\ApiSkeleton\Admin\Controller\Me; +use KejawenLab\ApiSkeleton\ApiClient\Model\ApiClientInterface; use KejawenLab\ApiSkeleton\Admin\AdminContext; use KejawenLab\ApiSkeleton\ApiClient\ApiClientService; use KejawenLab\ApiSkeleton\Security\Model\UserInterface; @@ -42,9 +43,8 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Profile::class)); } - /** @var UserInterface $user */ $client = $this->service->getByIdAndUser($id, $user); - if (null === $client) { + if (!$client instanceof ApiClientInterface) { $this->addFlash('error', 'sas.page.api_client.not_found'); return new RedirectResponse($this->generateUrl(Profile::class)); diff --git a/lib/Entity/ApiClient.php b/lib/Entity/ApiClient.php index 46679a3c..5f952e36 100755 --- a/lib/Entity/ApiClient.php +++ b/lib/Entity/ApiClient.php @@ -4,7 +4,13 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -22,13 +28,12 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=ApiClientRepository::class) - * @ORM\Table(name="core_api_client") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") * * @UniqueEntity({"user", "name"}) */ +#[Entity(repositoryClass: ApiClientRepository::class)] +#[Table(name: 'core_api_client')] class ApiClient implements ApiClientInterface { use BlameableEntity; @@ -36,47 +41,41 @@ class ApiClient implements ApiClientInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\ManyToOne(targetEntity=User::class, cascade={"persist"}) - * * @Groups({"read"}) * @MaxDepth(1) */ + #[ManyToOne(targetEntity: User::class, cascade: ['persist'])] private ?UserInterface $user; /** - * @ORM\Column(type="string", length=27) - * * @Assert\Length(max=27) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 27)] private ?string $name; /** - * @ORM\Column(type="string", length=40) - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 40)] private ?string $apiKey; /** - * @ORM\Column(type="string", length=64) - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 64)] private ?string $secretKey; public function __construct() diff --git a/lib/Entity/ApiClientRequest.php b/lib/Entity/ApiClientRequest.php index ef999fe2..888b8cb9 100755 --- a/lib/Entity/ApiClientRequest.php +++ b/lib/Entity/ApiClientRequest.php @@ -4,7 +4,13 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Timestampable\Traits\TimestampableEntity; use KejawenLab\ApiSkeleton\ApiClient\Model\ApiClientInterface; @@ -15,83 +21,73 @@ use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\MaxDepth; -/** - * @ORM\Entity(repositoryClass=ApiClientRequestRepository::class) - * @ORM\Table(name="core_api_client_request") - */ +#[Entity(repositoryClass: ApiClientRequestRepository::class)] +#[Table(name: 'core_api_client_request')] class ApiClientRequest implements ApiClientRequestInterface { use BlameableEntity; use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\ManyToOne(targetEntity=ApiClient::class, cascade={"persist"}) - * * @Groups({"read"}) * @MaxDepth(1) */ + #[ManyToOne(targetEntity: ApiClient::class, cascade: ['persist'])] private ApiClientInterface $apiClient; /** * @Groups({"read"}) - * - * @ORM\Column(type="string") */ + #[Column(type: 'string')] private string $path; /** * @Groups({"read"}) - * - * @ORM\Column(type="string", length=9) */ + #[Column(type: 'string', length: 9)] private string $method; /** * @Groups({"read"}) * - * @ORM\Column(type="json") - * * @OA\Property(type="array", @OA\Items(type="string")) */ + #[Column(type: 'json')] private array $headers; /** * @Groups({"read"}) * - * @ORM\Column(type="json") - * * @OA\Property(type="array", @OA\Items(type="string")) */ + #[Column(type: 'json')] private array $queries; /** * @Groups({"read"}) * - * @ORM\Column(type="json") - * * @OA\Property(type="array", @OA\Items(type="string")) */ + #[Column(type: 'json')] private array $requests; /** * @Groups({"read"}) * - * @ORM\Column(type="json") - * * @OA\Property(type="array", @OA\Items(type="string")) */ + #[Column(type: 'json')] private array $files; public function getId(): ?string diff --git a/lib/Entity/Cron.php b/lib/Entity/Cron.php index 765a6b17..5e3fa173 100755 --- a/lib/Entity/Cron.php +++ b/lib/Entity/Cron.php @@ -4,7 +4,12 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -21,14 +26,12 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=CronRepository::class) - * @ORM\Table(name="core_cronjob") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") - * * @UniqueEntity(fields={"name"}) * @ConsoleCommand() */ +#[Entity(repositoryClass: CronRepository::class)] +#[Table(name: 'core_cronjob')] class Cron implements CronInterface { use BlameableEntity; @@ -36,76 +39,64 @@ class Cron implements CronInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\Column(type="string", length=255) - * * @Assert\Length(max=255) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255)] private ?string $name; /** - * @ORM\Column(type="string", length=255, nullable=true) - * * @Assert\Length(max=255) - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255, nullable: true)] private ?string $description; /** - * @ORM\Column(type="string", length=255) - * * @Assert\Length(max=255) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255)] private ?string $command; /** - * @ORM\Column(type="string", length=255) - * * @Assert\Length(max=255) * @Assert\NotBlank() * @CronScheduleFormat() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255)] private ?string $schedule; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $enabled; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $symfonyCommand; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $running; public function __construct() diff --git a/lib/Entity/CronReport.php b/lib/Entity/CronReport.php index 87750a22..f83e2d3c 100755 --- a/lib/Entity/CronReport.php +++ b/lib/Entity/CronReport.php @@ -7,7 +7,13 @@ use DateTime; use DateTimeImmutable; use DateTimeInterface; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\Mapping\Table; use Gedmo\Timestampable\Traits\TimestampableEntity; use KejawenLab\ApiSkeleton\Cron\Model\CronInterface; use KejawenLab\ApiSkeleton\Cron\Model\CronReportInterface; @@ -16,59 +22,51 @@ use Ramsey\Uuid\UuidInterface; use Symfony\Component\Serializer\Annotation\Groups; -/** - * @ORM\Entity(repositoryClass=CronReportRepository::class) - * @ORM\Table(name="core_cronjob_report") - */ +#[Entity(repositoryClass: CronReportRepository::class)] +#[Table(name: 'core_cronjob_report')] class CronReport implements CronReportInterface { use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\ManyToOne(targetEntity=Cron::class, cascade={"persist"}) - * * @Groups({"read"}) */ + #[ManyToOne(targetEntity: Cron::class, cascade: ['persist'])] private ?CronInterface $cron = null; /** - * @ORM\Column(type="datetime") - * * @Groups({"read"}) */ + #[Column(type: 'datetime')] private DateTimeInterface $runAt; /** - * @ORM\Column(type="float") - * * @Groups({"read"}) */ + #[Column(type: 'float')] private float $runtime; /** - * @ORM\Column(type="text") - * * @Groups({"read"}) */ + #[Column(type: 'text')] private ?string $output = null; /** - * @ORM\Column(type="smallint") - * * @Groups({"read"}) */ + #[Column(type: 'smallint')] private int $exitCode; public function getId(): ?string @@ -91,6 +89,9 @@ public function getRunAt(): DateTimeInterface return $this->runAt; } + /** + * @param DateTimeInterface $runAt + */ public function setRunAt(DateTime|DateTimeImmutable $runAt): void { $this->runAt = $runAt; diff --git a/lib/Entity/Group.php b/lib/Entity/Group.php index 2b70c53e..83ab61f8 100755 --- a/lib/Entity/Group.php +++ b/lib/Entity/Group.php @@ -4,7 +4,12 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -19,13 +24,12 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=GroupRepository::class) - * @ORM\Table(name="core_group") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") * * @UniqueEntity(fields={"code"}) */ +#[Entity(repositoryClass: GroupRepository::class)] +#[Table(name: 'core_group')] class Group implements GroupInterface { use BlameableEntity; @@ -33,35 +37,30 @@ class Group implements GroupInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\Column(type="string", length=7) - * * @Assert\Length(max=7) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 7)] private ?string $code; /** - * @ORM\Column(type="string", length=255) - * * @Assert\Length(max=255) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255)] private ?string $name; public function __construct() diff --git a/lib/Entity/Media.php b/lib/Entity/Media.php index 90f623d7..f82c1ca8 100755 --- a/lib/Entity/Media.php +++ b/lib/Entity/Media.php @@ -4,7 +4,12 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Timestampable\Traits\TimestampableEntity; use KejawenLab\ApiSkeleton\Media\Model\MediaInterface; @@ -18,49 +23,38 @@ use Vich\UploaderBundle\Mapping\Annotation as Vich; /** - * @ORM\Entity(repositoryClass=MediaRepository::class) - * @ORM\Table(name="core_media") - * - * * @UniqueEntity(fields={"fileName"}) * * @Vich\Uploadable */ +#[Entity(repositoryClass: MediaRepository::class)] +#[Table(name: 'core_media')] class Media implements MediaInterface { use BlameableEntity; use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; - /** - * @ORM\Column(type="string", length=255) - */ + #[Column(type: 'string', length: 255)] private ?string $fileName; - /** - * @ORM\Column(type="string", length=255) - */ + #[Column(type: 'string', length: 255)] private ?string $folder; - /** - * @ORM\Column(type="boolean") - */ + #[Column(type: 'boolean')] private bool $public; - /** - * @ORM\Column(type="boolean") - */ + #[Column(type: 'boolean')] private bool $hidden; /** diff --git a/lib/Entity/Menu.php b/lib/Entity/Menu.php index 8e39c1ac..519e44df 100755 --- a/lib/Entity/Menu.php +++ b/lib/Entity/Menu.php @@ -4,7 +4,13 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -21,13 +27,12 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=MenuRepository::class) - * @ORM\Table(name="core_menu") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") * * @UniqueEntity(fields={"code"}) */ +#[Entity(repositoryClass: MenuRepository::class)] +#[Table(name: 'core_menu')] class Menu implements MenuInterface { use BlameableEntity; @@ -35,91 +40,77 @@ class Menu implements MenuInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\ManyToOne(targetEntity=Menu::class, cascade={"persist"}) - * * @Groups({"read"}) * @MaxDepth(1) */ + #[ManyToOne(targetEntity: Menu::class, cascade: ['persist'])] private ?MenuInterface $parent; /** - * @ORM\Column(type="string", length=27) - * * @Assert\Length(max=27) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 27)] private ?string $code; /** - * @ORM\Column(type="string", length=255) - * * @Assert\Length(max=255) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255)] private ?string $name; /** - * @ORM\Column(type="integer") - * * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'integer')] private int $sortOrder; /** - * @ORM\Column(type="string", length=255) - * * @Assert\Length(max=255) * @Assert\NotBlank() * @Route() */ + #[Column(type: 'string', length: 255)] private ?string $routeName; /** - * @ORM\Column(type="string", length=27, nullable=true) - * * @Assert\Length(max=27) - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 27, nullable: true)] private ?string $iconClass; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $showable; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $adminOnly; /** * @Groups({"read"}) */ private ?string $apiPath; - private ?string $adminPath; public function __construct() diff --git a/lib/Entity/PasswordHistory.php b/lib/Entity/PasswordHistory.php index b27629f2..ed7cded2 100755 --- a/lib/Entity/PasswordHistory.php +++ b/lib/Entity/PasswordHistory.php @@ -4,43 +4,37 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Timestampable\Traits\TimestampableEntity; use KejawenLab\ApiSkeleton\Repository\PasswordHistoryRepository; use KejawenLab\ApiSkeleton\Security\Model\PasswordHistoryInterface; use Ramsey\Uuid\UuidInterface; -/** - * @ORM\Entity(repositoryClass=PasswordHistoryRepository::class) - * @ORM\Table(name="core_user_password_history") - */ +#[Entity(repositoryClass: PasswordHistoryRepository::class)] +#[Table(name: 'core_user_password_history')] class PasswordHistory implements PasswordHistoryInterface { use BlameableEntity; use TimestampableEntity; - - /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; - /** - * @ORM\Column(type="string") - */ + #[Column(type: 'string')] private ?string $source = null; - /** - * @ORM\Column(type="string", length=49) - */ + #[Column(type: 'string', length: 49)] private ?string $identifier = null; - /** - * @ORM\Column(type="string") - */ + #[Column(type: 'string')] private ?string $password = null; public function getId(): ?string diff --git a/lib/Entity/Permission.php b/lib/Entity/Permission.php index 85996cf2..a663c84b 100755 --- a/lib/Entity/Permission.php +++ b/lib/Entity/Permission.php @@ -4,7 +4,13 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -19,11 +25,10 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=PermissionRepository::class) - * @ORM\Table(name="core_permission") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") */ +#[Entity(repositoryClass: PermissionRepository::class)] +#[Table(name: 'core_permission')] class Permission implements PermissionInterface { use BlameableEntity; @@ -31,59 +36,51 @@ class Permission implements PermissionInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\ManyToOne(targetEntity=Group::class, cascade={"persist"}) - * * @Groups({"read"}) **/ + #[ManyToOne(targetEntity: Group::class, cascade: ['persist'])] private ?GroupInterface $group; /** - * @ORM\ManyToOne(targetEntity=Menu::class, cascade={"persist"}) - * * @Assert\NotBlank() - * * @Groups({"read"}) **/ + #[ManyToOne(targetEntity: Menu::class, cascade: ['persist'])] private ?MenuInterface $menu; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $addable; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $editable; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $viewable; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $deletable; public function __construct() diff --git a/lib/Entity/Setting.php b/lib/Entity/Setting.php index 9212e828..6c2ae709 100755 --- a/lib/Entity/Setting.php +++ b/lib/Entity/Setting.php @@ -4,7 +4,12 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -19,13 +24,12 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=SettingRepository::class) - * @ORM\Table(name="core_setting") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") * * @UniqueEntity(fields={"parameter"}) */ +#[Entity(repositoryClass: SettingRepository::class)] +#[Table(name: 'core_setting')] class Setting implements SettingInterface { use BlameableEntity; @@ -33,56 +37,46 @@ class Setting implements SettingInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\Column(name="setting_group", type="string", length=27) - * * @Assert\Length(max=27) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(name: 'setting_group', type: 'string', length: 27)] private ?string $group; /** - * @ORM\Column(type="string", length=27) - * * @Assert\Length(max=27) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 27)] private ?string $parameter; /** - * @ORM\Column(type="text") - * * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'text')] private ?string $value; - /** - * @ORM\Column(type="boolean") - */ + #[Column(type: 'boolean')] private bool $public; /** - * @ORM\Column(type="boolean") - * * @Groups({"read"}) */ + #[Column(type: 'boolean')] private bool $reserved; public function __construct() @@ -96,7 +90,7 @@ public function __construct() public function getId(): ?string { - return (string)$this->id; + return (string) $this->id; } public function getGroup(): ?string diff --git a/lib/Entity/User.php b/lib/Entity/User.php index ecebc826..6916ae88 100755 --- a/lib/Entity/User.php +++ b/lib/Entity/User.php @@ -5,7 +5,13 @@ namespace KejawenLab\ApiSkeleton\Entity; use DateTimeImmutable; -use Doctrine\ORM\Mapping as ORM; +use Doctrine\ORM\Mapping\Column; +use Doctrine\ORM\Mapping\CustomIdGenerator; +use Doctrine\ORM\Mapping\Entity; +use Doctrine\ORM\Mapping\GeneratedValue; +use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\Mapping\Table; use Gedmo\Blameable\Traits\BlameableEntity; use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity; @@ -22,14 +28,12 @@ use Symfony\Component\Validator\Constraints as Assert; /** - * @ORM\Entity(repositoryClass=UserRepository::class) - * @ORM\Table(name="core_user") - * * @Gedmo\SoftDeleteable(fieldName="deletedAt") - * * @UniqueEntity(fields={"username"}) * @UniqueEntity(fields={"email"}) */ +#[Entity(repositoryClass: UserRepository::class)] +#[Table(name: 'core_user')] class User implements UserInterface { use BlameableEntity; @@ -37,90 +41,73 @@ class User implements UserInterface use TimestampableEntity; /** - * @ORM\Id() - * @ORM\Column(type="uuid", unique=true) - * @ORM\GeneratedValue(strategy="CUSTOM") - * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator") - * * @Groups({"read"}) * * @OA\Property(type="string") */ + #[Id] + #[Column(type: 'uuid', unique: true)] + #[GeneratedValue(strategy: 'CUSTOM')] + #[CustomIdGenerator(class: 'Ramsey\Uuid\Doctrine\UuidGenerator')] private UuidInterface $id; /** - * @ORM\ManyToOne(targetEntity=Group::class, cascade={"persist"}) - * * @Assert\NotBlank() - * * @Groups({"read"}) **/ + #[ManyToOne(targetEntity: Group::class, cascade: ['persist'])] private ?GroupInterface $group; /** - * @ORM\ManyToOne(targetEntity=User::class, cascade={"persist"}) - * * @Groups({"read"}) */ + #[ManyToOne(targetEntity: User::class, cascade: ['persist'])] private ?UserInterface $supervisor; /** - * @ORM\Column(type="string", length=180, unique=true) - * * @Assert\Length(max=180) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 180, unique: true)] private ?string $username; /** - * @ORM\Column(type="string", length=255, nullable=true) - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255, nullable: true)] private ?string $profileImage; /** - * @ORM\Column(type="string", length=55) - * * @Assert\Length(max=55) * @Assert\NotBlank() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 55)] private ?string $fullName; /** - * @ORM\Column(type="string", length=255, unique=true) - * * @Assert\Length(max=255) * @Assert\NotBlank() * @Assert\Email() - * * @Groups({"read"}) */ + #[Column(type: 'string', length: 255, unique: true)] private ?string $email; /** - * @ORM\Column(type="datetime_immutable") - * * @Groups({"read"}) */ + #[Column(type: 'datetime_immutable')] private DateTimeImmutable $lastLogin; - /** - * @ORM\Column(type="string") - */ + #[Column(type: 'string')] private ?string $password; - /** - * @ORM\Column(type="string", nullable=true) - */ + #[Column(type: 'string', nullable: true)] private ?string $deviceId = null; private ?File $file = null; - private ?string $plainPassword = null; public function __construct() diff --git a/rector.php b/rector.php index 0466a624..cfcad96e 100755 --- a/rector.php +++ b/rector.php @@ -4,6 +4,7 @@ use Rector\CodeQuality\Rector\Array_\CallableThisArrayToAnonymousFunctionRector; use Rector\Core\Configuration\Option; +use Rector\Doctrine\Set\DoctrineSetList; use Rector\Set\ValueObject\SetList; use Rector\TypeDeclaration\Rector\ClassMethod\AddArrayReturnDocTypeRector; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; @@ -20,6 +21,7 @@ $containerConfigurator->import(SetList::EARLY_RETURN); $containerConfigurator->import(Setlist::TYPE_DECLARATION); $containerConfigurator->import(SetList::TYPE_DECLARATION_STRICT); + $containerConfigurator->import(DoctrineSetList::DOCTRINE_ORM_29); $parameters = $containerConfigurator->parameters(); $parameters->set(Option::AUTO_IMPORT_NAMES, true); From 89af3c25aa19a5128bf639c8fc406949b2ff6ea6 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 27 Aug 2021 14:44:36 +0700 Subject: [PATCH 2/4] apply symfony 5.2 set --- lib/Admin/Controller/ApiClient/Audit.php | 9 ++------- lib/Admin/Controller/ApiClient/Delete.php | 10 ++-------- lib/Admin/Controller/ApiClient/Download.php | 10 ++-------- lib/Admin/Controller/ApiClient/Main.php | 9 ++------- lib/Admin/Controller/ApiClient/Report.php | 8 ++------ lib/Admin/Controller/Cron/Audit.php | 7 ++----- lib/Admin/Controller/Cron/Delete.php | 9 ++------- lib/Admin/Controller/Cron/Download.php | 9 ++------- lib/Admin/Controller/Cron/Get.php | 8 ++------ lib/Admin/Controller/Cron/Main.php | 8 ++------ lib/Admin/Controller/Cron/Put.php | 8 ++------ lib/Admin/Controller/Cron/Report.php | 8 ++------ lib/Admin/Controller/Cron/Run.php | 10 ++-------- lib/Admin/Controller/DashboardController.php | 6 ++---- lib/Admin/Controller/Group/Audit.php | 7 ++----- lib/Admin/Controller/Group/Delete.php | 9 ++------- lib/Admin/Controller/Group/Download.php | 9 ++------- lib/Admin/Controller/Group/Get.php | 8 ++------ lib/Admin/Controller/Group/Main.php | 8 ++------ lib/Admin/Controller/Group/Permission.php | 9 ++------- lib/Admin/Controller/Group/PermissionPut.php | 12 ++---------- lib/Admin/Controller/Group/Put.php | 8 ++------ lib/Admin/Controller/LoginController.php | 6 ++---- lib/Admin/Controller/Me/CreateApiClient.php | 12 ++---------- lib/Admin/Controller/Me/DeleteApiClient.php | 11 ++--------- lib/Admin/Controller/Me/Profile.php | 11 +++-------- lib/Admin/Controller/Media/Audit.php | 7 ++----- lib/Admin/Controller/Media/Delete.php | 9 ++------- lib/Admin/Controller/Media/Download.php | 9 ++------- lib/Admin/Controller/Media/Get.php | 10 ++-------- lib/Admin/Controller/Media/Main.php | 7 ++----- lib/Admin/Controller/Menu/Audit.php | 7 ++----- lib/Admin/Controller/Menu/Delete.php | 9 ++------- lib/Admin/Controller/Menu/Download.php | 9 ++------- lib/Admin/Controller/Menu/Get.php | 8 ++------ lib/Admin/Controller/Menu/Main.php | 8 ++------ lib/Admin/Controller/Menu/Put.php | 8 ++------ lib/Admin/Controller/Setting/Audit.php | 7 ++----- lib/Admin/Controller/Setting/Delete.php | 10 ++-------- lib/Admin/Controller/Setting/Download.php | 9 ++------- lib/Admin/Controller/Setting/Get.php | 8 ++------ lib/Admin/Controller/Setting/Main.php | 8 ++------ lib/Admin/Controller/Setting/Put.php | 8 ++------ lib/Admin/Controller/User/Audit.php | 7 ++----- lib/Admin/Controller/User/Delete.php | 9 ++------- lib/Admin/Controller/User/Download.php | 9 ++------- lib/Admin/Controller/User/Get.php | 8 ++------ lib/Admin/Controller/User/Main.php | 8 ++------ lib/Admin/Controller/User/Put.php | 8 ++------ lib/Entity/ApiClient.php | 6 ++++-- lib/Entity/Cron.php | 16 +++++++++------- lib/Entity/Group.php | 10 ++++++---- lib/Entity/Media.php | 4 ++-- lib/Entity/Menu.php | 18 ++++++++++-------- lib/Entity/Permission.php | 3 ++- lib/Entity/Setting.php | 12 +++++++----- lib/Entity/User.php | 19 +++++++++++-------- rector.php | 8 ++++++++ 58 files changed, 158 insertions(+), 357 deletions(-) diff --git a/lib/Admin/Controller/ApiClient/Audit.php b/lib/Admin/Controller/ApiClient/Audit.php index 81432135..da73c0a9 100755 --- a/lib/Admin/Controller/ApiClient/Audit.php +++ b/lib/Admin/Controller/ApiClient/Audit.php @@ -35,11 +35,10 @@ public function __construct(private ApiClientService $service, private UserServi } /** - * @Route(path="users/{userId}/api-clients/{id}/audit", name=Audit::class, methods={"GET"}, priority=-255) - * * @throws InvalidArgumentException */ - public function __invoke(string $userId, string $id): Response + #[Route(path: 'users/{userId}/api-clients/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] + public function __invoke(string $userId, string $id) : Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -47,24 +46,20 @@ public function __invoke(string $userId, string $id): Response return new RedirectResponse($this->generateUrl(GetAllUser::class)); } - $entity = $this->service->get($id); if (!$entity instanceof ApiClientInterface) { $this->addFlash('error', 'sas.page.api_client.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(Group::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - $audit = $this->audit->getAudits($entity, $id)->toArray(); $class = new ReflectionClass(ApiClient::class); $context = StringUtil::lowercase($class->getShortName()); - return $this->render(sprintf('%s/audit.html.twig', $context), [ 'page_title' => 'sas.page.audit.view', 'context' => $context, diff --git a/lib/Admin/Controller/ApiClient/Delete.php b/lib/Admin/Controller/ApiClient/Delete.php index ec4bd77b..6b5f5de1 100755 --- a/lib/Admin/Controller/ApiClient/Delete.php +++ b/lib/Admin/Controller/ApiClient/Delete.php @@ -26,10 +26,8 @@ public function __construct(private ApiClientService $service, private UserServi { } - /** - * @Route(path="users/{userId}/api-clients/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $userId, string $id): Response + #[Route(path: 'users/{userId}/api-clients/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $userId, string $id) : Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -37,18 +35,14 @@ public function __invoke(string $userId, string $id): Response return new RedirectResponse($this->generateUrl(GetAllUser::class)); } - $client = $this->service->get($id); if (!$client instanceof ApiClientInterface) { $this->addFlash('error', 'sas.page.api_client.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($client); - $this->addFlash('info', 'sas.page.api_client.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/ApiClient/Download.php b/lib/Admin/Controller/ApiClient/Download.php index 29a64ce4..f69aebfb 100755 --- a/lib/Admin/Controller/ApiClient/Download.php +++ b/lib/Admin/Controller/ApiClient/Download.php @@ -26,10 +26,8 @@ public function __construct(private ApiClientService $service, private UserServi { } - /** - * @Route(path="/users/{userId}/api-clients/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(string $userId): Response + #[Route(path: '/users/{userId}/api-clients/download', name: Download::class, methods: ['GET'])] + public function __invoke(string $userId) : Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -37,21 +35,17 @@ public function __invoke(string $userId): Response return new RedirectResponse($this->generateUrl(GetAllUser::class)); } - $records = $this->service->total(); if (10000 < $records) { $this->addFlash('error', 'sas.page.error.too_many_records'); return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'api-clients', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/ApiClient/Main.php b/lib/Admin/Controller/ApiClient/Main.php index a5988c51..35d37793 100755 --- a/lib/Admin/Controller/ApiClient/Main.php +++ b/lib/Admin/Controller/ApiClient/Main.php @@ -35,10 +35,8 @@ public function __construct( ) { } - /** - * @Route(path="/users/{userId}/api-clients", name=Main::class, methods={"GET", "POST"}, defaults={"userId": "2e0cac45-822f-4b97-95f1-9516ad824ec1"}) - */ - public function __invoke(Request $request, string $userId): Response + #[Route(path: '/users/{userId}/api-clients', name: Main::class, methods: ['GET', 'POST'], defaults: ['userId' => '2e0cac45-822f-4b97-95f1-9516ad824ec1'])] + public function __invoke(Request $request, string $userId) : Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -46,7 +44,6 @@ public function __invoke(Request $request, string $userId): Response return new RedirectResponse($this->generateUrl(GetAllUser::class)); } - $client = new ApiClient(); $client->setUser($user); $form = $this->createForm(ApiClientType::class, $client); @@ -58,10 +55,8 @@ public function __invoke(Request $request, string $userId): Response $this->addFlash('info', 'sas.page.api_client.saved'); } } - $class = new ReflectionClass(ApiClient::class); $context = StringUtil::lowercase($class->getShortName()); - return $this->render(sprintf('%s/all.html.twig', $context), [ 'page_title' => 'sas.page.api_client.list', 'context' => $context, diff --git a/lib/Admin/Controller/ApiClient/Report.php b/lib/Admin/Controller/ApiClient/Report.php index cde277a5..a6a7730e 100755 --- a/lib/Admin/Controller/ApiClient/Report.php +++ b/lib/Admin/Controller/ApiClient/Report.php @@ -31,10 +31,8 @@ public function __construct(private ApiClientRequestService $service, private Us { } - /** - * @Route(path="/users/{userId}/api-clients/{id}/logs", name=Report::class, methods={"GET"}) - */ - public function __invoke(Request $request, string $userId, string $id): Response + #[Route(path: '/users/{userId}/api-clients/{id}/logs', name: Report::class, methods: ['GET'])] + public function __invoke(Request $request, string $userId, string $id) : Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -42,9 +40,7 @@ public function __invoke(Request $request, string $userId, string $id): Response return new RedirectResponse($this->generateUrl(GetAllUser::class)); } - $class = new ReflectionClass(ApiClientRequest::class); - return $this->render('apiclient/report.html.twig', [ 'page_title' => 'sas.page.api_client.report', 'id' => $id, diff --git a/lib/Admin/Controller/Cron/Audit.php b/lib/Admin/Controller/Cron/Audit.php index 296879d3..7d98e675 100755 --- a/lib/Admin/Controller/Cron/Audit.php +++ b/lib/Admin/Controller/Cron/Audit.php @@ -29,24 +29,21 @@ public function __construct(private CronService $service, private AuditService $ } /** - * @Route(path="/crons/{id}/audit", name=Audit::class, methods={"GET"}, priority=-255) - * * @throws InvalidArgumentException */ - public function __invoke(string $id): Response + #[Route(path: '/crons/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] + public function __invoke(string $id) : Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.cron.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(Cron::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Cron::class)); } } diff --git a/lib/Admin/Controller/Cron/Delete.php b/lib/Admin/Controller/Cron/Delete.php index a6770b91..688aef18 100755 --- a/lib/Admin/Controller/Cron/Delete.php +++ b/lib/Admin/Controller/Cron/Delete.php @@ -23,10 +23,8 @@ public function __construct(private CronService $service) { } - /** - * @Route(path="/crons/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/crons/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { @@ -34,11 +32,8 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($cron); - $this->addFlash('info', 'sas.page.cron.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Cron/Download.php b/lib/Admin/Controller/Cron/Download.php index 140d700c..1764fdde 100755 --- a/lib/Admin/Controller/Cron/Download.php +++ b/lib/Admin/Controller/Cron/Download.php @@ -23,10 +23,8 @@ public function __construct(private CronService $service, private SerializerInte { } - /** - * @Route(path="/crons/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/crons/download', name: Download::class, methods: ['GET'])] + public function __invoke() : Response { $records = $this->service->total(); if (10000 < $records) { @@ -34,14 +32,11 @@ public function __invoke(): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'crons', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/Cron/Get.php b/lib/Admin/Controller/Cron/Get.php index e3a9ae7c..2633b188 100755 --- a/lib/Admin/Controller/Cron/Get.php +++ b/lib/Admin/Controller/Cron/Get.php @@ -29,10 +29,8 @@ public function __construct(private CronService $service, private AuditService $ parent::__construct($this->service); } - /** - * @Route(path="/crons/{id}", name=Get::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/crons/{id}', name: Get::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { @@ -40,12 +38,10 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $audit = new Record($cron); if ($this->reader->getProvider()->isAuditable(Cron::class)) { $audit = $this->audit->getAudits($cron, $id, 1); } - return $this->renderDetail($audit, new ReflectionClass(Cron::class)); } } diff --git a/lib/Admin/Controller/Cron/Main.php b/lib/Admin/Controller/Cron/Main.php index 6dce88c5..b6a10b71 100755 --- a/lib/Admin/Controller/Cron/Main.php +++ b/lib/Admin/Controller/Cron/Main.php @@ -27,10 +27,8 @@ public function __construct(private CronService $service, Paginator $paginator) parent::__construct($this->service, $paginator); } - /** - * @Route(path="/crons", name=Main::class, methods={"GET", "POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/crons', name: Main::class, methods: ['GET', 'POST'])] + public function __invoke(Request $request) : Response { $cron = new Cron(); if ($request->isMethod(Request::METHOD_POST)) { @@ -46,7 +44,6 @@ public function __invoke(Request $request): Response } } } - $form = $this->createForm(CronType::class, $cron); if ($request->isMethod(Request::METHOD_POST)) { $form->handleRequest($request); @@ -55,7 +52,6 @@ public function __invoke(Request $request): Response $this->addFlash('info', 'sas.page.cron.saved'); } } - return $this->renderList($form, $request, new ReflectionClass(Cron::class)); } } diff --git a/lib/Admin/Controller/Cron/Put.php b/lib/Admin/Controller/Cron/Put.php index 2296aad3..60677831 100755 --- a/lib/Admin/Controller/Cron/Put.php +++ b/lib/Admin/Controller/Cron/Put.php @@ -24,18 +24,14 @@ public function __construct(private CronService $service) { } - /** - * @Route(path="/crons/{id}/edit", name=Put::class, methods={"GET"}, priority=1) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/crons/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] + public function __invoke(Request $request, string $id) : Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { $this->addFlash('error', 'sas.page.cron.not_found'); } - $this->addFlash('id', $cron->getId()); - return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/Cron/Report.php b/lib/Admin/Controller/Cron/Report.php index e6cf4692..217668db 100755 --- a/lib/Admin/Controller/Cron/Report.php +++ b/lib/Admin/Controller/Cron/Report.php @@ -28,15 +28,11 @@ public function __construct(private CronReportService $service, private Paginato { } - /** - * @Route(path="/crons/{id}/logs", name=Report::class, methods={"GET"}, priority=-27) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/crons/{id}/logs', name: Report::class, methods: ['GET'], priority: -27)] + public function __invoke(Request $request, string $id) : Response { $class = new ReflectionClass(CronReport::class); - $request->query->set($this->settingService->getPerPageField(), 10); - return $this->render('cron/report.html.twig', [ 'page_title' => 'sas.page.cron_report.list', 'id' => $id, diff --git a/lib/Admin/Controller/Cron/Run.php b/lib/Admin/Controller/Cron/Run.php index 64b997d2..fc5dd507 100755 --- a/lib/Admin/Controller/Cron/Run.php +++ b/lib/Admin/Controller/Cron/Run.php @@ -27,10 +27,8 @@ public function __construct(private CronService $service, private KernelInterfac { } - /** - * @Route(path="/crons/{id}/run", name=Run::class, methods={"GET"}, priority=-17) - */ - public function __invoke(string $id): Response + #[Route(path: '/crons/{id}/run', name: Run::class, methods: ['GET'], priority: -17)] + public function __invoke(string $id) : Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { @@ -38,23 +36,19 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $application = new Application($this->kernel); $application->setAutoExit(false); - $input = new ArrayInput([ 'command' => 'semart:cron:run', 'job' => $cron->getId(), '--schedule_now' => null, ]); - $return = $application->run($input, new NullOutput()); if (0 === $return) { $this->addFlash('info', 'sas.page.cron.run_success'); } else { $this->addFlash('error', 'sas.page.cron.run_failed'); } - return new RedirectResponse($this->generateUrl(Get::class, ['id' => $id])); } } diff --git a/lib/Admin/Controller/DashboardController.php b/lib/Admin/Controller/DashboardController.php index c8ded6c9..f91dcdb0 100755 --- a/lib/Admin/Controller/DashboardController.php +++ b/lib/Admin/Controller/DashboardController.php @@ -14,10 +14,8 @@ */ final class DashboardController extends Base { - /** - * @Route(path="/", name=AdminContext::ADMIN_ROUTE, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/', name: AdminContext::ADMIN_ROUTE, methods: ['GET'])] + public function __invoke() : Response { return $this->render('dashboard/layout.html.twig', ['page_title' => 'sas.page.dashboard']); } diff --git a/lib/Admin/Controller/Group/Audit.php b/lib/Admin/Controller/Group/Audit.php index e70140fe..444493ea 100755 --- a/lib/Admin/Controller/Group/Audit.php +++ b/lib/Admin/Controller/Group/Audit.php @@ -29,24 +29,21 @@ public function __construct(private GroupService $service, private AuditService } /** - * @Route(path="/groups/{id}/audit", name=Audit::class, methods={"GET"}, priority=-255) - * * @throws InvalidArgumentException */ - public function __invoke(string $id): Response + #[Route(path: '/groups/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] + public function __invoke(string $id) : Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.group.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(Group::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Group::class)); } } diff --git a/lib/Admin/Controller/Group/Delete.php b/lib/Admin/Controller/Group/Delete.php index ae26a6b1..8e0282bd 100755 --- a/lib/Admin/Controller/Group/Delete.php +++ b/lib/Admin/Controller/Group/Delete.php @@ -23,10 +23,8 @@ public function __construct(private GroupService $service) { } - /** - * @Route(path="/groups/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/groups/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $group = $this->service->get($id); if (!$group instanceof GroupInterface) { @@ -34,11 +32,8 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($group); - $this->addFlash('info', 'sas.page.group.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Group/Download.php b/lib/Admin/Controller/Group/Download.php index 70a97199..8c5b46dc 100755 --- a/lib/Admin/Controller/Group/Download.php +++ b/lib/Admin/Controller/Group/Download.php @@ -23,10 +23,8 @@ public function __construct(private GroupService $service, private SerializerInt { } - /** - * @Route(path="/groups/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/groups/download', name: Download::class, methods: ['GET'])] + public function __invoke() : Response { $records = $this->service->total(); if (10000 < $records) { @@ -34,14 +32,11 @@ public function __invoke(): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'groups', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/Group/Get.php b/lib/Admin/Controller/Group/Get.php index 9aba7162..d03b7bef 100755 --- a/lib/Admin/Controller/Group/Get.php +++ b/lib/Admin/Controller/Group/Get.php @@ -29,10 +29,8 @@ public function __construct(private GroupService $service, private AuditService parent::__construct($this->service); } - /** - * @Route(path="/groups/{id}", name=Get::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/groups/{id}', name: Get::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $group = $this->service->get($id); if (!$group instanceof GroupInterface) { @@ -40,12 +38,10 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $audit = new Record($group); if ($this->reader->getProvider()->isAuditable(Group::class)) { $audit = $this->audit->getAudits($group, $id, 1); } - return $this->renderDetail($audit, new ReflectionClass(Group::class)); } } diff --git a/lib/Admin/Controller/Group/Main.php b/lib/Admin/Controller/Group/Main.php index e2c2f87a..a63c9dea 100755 --- a/lib/Admin/Controller/Group/Main.php +++ b/lib/Admin/Controller/Group/Main.php @@ -27,10 +27,8 @@ public function __construct(private GroupService $service, Paginator $paginator) parent::__construct($this->service, $paginator); } - /** - * @Route(path="/groups", name=Main::class, methods={"GET", "POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/groups', name: Main::class, methods: ['GET', 'POST'])] + public function __invoke(Request $request) : Response { $group = new Group(); if ($request->isMethod(Request::METHOD_POST)) { @@ -46,7 +44,6 @@ public function __invoke(Request $request): Response } } } - $form = $this->createForm(GroupType::class, $group); if ($request->isMethod(Request::METHOD_POST)) { $form->handleRequest($request); @@ -55,7 +52,6 @@ public function __invoke(Request $request): Response $this->addFlash('info', 'sas.page.group.saved'); } } - return $this->renderList($form, $request, new ReflectionClass(Group::class)); } } diff --git a/lib/Admin/Controller/Group/Permission.php b/lib/Admin/Controller/Group/Permission.php index 2560e623..1cd6e979 100755 --- a/lib/Admin/Controller/Group/Permission.php +++ b/lib/Admin/Controller/Group/Permission.php @@ -35,10 +35,8 @@ public function __construct( ) { } - /** - * @Route(path="/groups/{id}/permissions", name=Permission::class, methods={"GET"}) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/groups/{id}/permissions', name: Permission::class, methods: ['GET'])] + public function __invoke(Request $request, string $id) : Response { $group = $this->groupService->get($id); if (!$group instanceof GroupInterface) { @@ -46,11 +44,8 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $request->query->set($this->settingService->getPerPageField(), 10); - $class = new ReflectionClass(Entity::class); - return $this->render('group/permission.html.twig', [ 'page_title' => 'sas.page.permission.list', 'group' => $group, diff --git a/lib/Admin/Controller/Group/PermissionPut.php b/lib/Admin/Controller/Group/PermissionPut.php index 25d226cd..5cba53d8 100755 --- a/lib/Admin/Controller/Group/PermissionPut.php +++ b/lib/Admin/Controller/Group/PermissionPut.php @@ -27,10 +27,8 @@ public function __construct(private GroupService $groupService, private Permissi { } - /** - * @Route(path="/groups/{groupId}/permissions/{id}", name=PermissionPut::class, methods={"POST"}) - */ - public function __invoke(Request $request, string $groupId, string $id): Response + #[Route(path: '/groups/{groupId}/permissions/{id}', name: PermissionPut::class, methods: ['POST'])] + public function __invoke(Request $request, string $groupId, string $id) : Response { $group = $this->groupService->get($groupId); if (!$group) { @@ -38,20 +36,17 @@ public function __invoke(Request $request, string $groupId, string $id): Respons return new RedirectResponse($this->generateUrl(GetPermission::class, ['id' => $groupId])); } - $permission = $this->service->get($id); if (!$permission instanceof Entity) { $this->addFlash('error', 'sas.page.permission.not_found'); return new RedirectResponse($this->generateUrl(GetPermission::class, ['id' => $groupId])); } - $type = $request->request->get('type'); $value = false; if ('true' === $request->request->get('value')) { $value = true; } - switch ($type) { case Permission::ADD: $permission->setAddable($value); @@ -66,11 +61,8 @@ public function __invoke(Request $request, string $groupId, string $id): Respons $permission->setDeletable($value); break; } - $this->service->save($permission); - $this->addFlash('info', 'sas.page.permission.saved'); - return new RedirectResponse($this->generateUrl(GetPermission::class, ['id' => $groupId])); } } diff --git a/lib/Admin/Controller/Group/Put.php b/lib/Admin/Controller/Group/Put.php index b237c45b..b0ff9164 100755 --- a/lib/Admin/Controller/Group/Put.php +++ b/lib/Admin/Controller/Group/Put.php @@ -24,10 +24,8 @@ public function __construct(private GroupService $service) { } - /** - * @Route(path="/groups/{id}/edit", name=Put::class, methods={"GET"}, priority=1) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/groups/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] + public function __invoke(Request $request, string $id) : Response { $group = $this->service->get($id); if (!$group instanceof GroupInterface) { @@ -35,9 +33,7 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } - $this->addFlash('id', $group->getId()); - return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/LoginController.php b/lib/Admin/Controller/LoginController.php index 1aeba60c..cb049846 100755 --- a/lib/Admin/Controller/LoginController.php +++ b/lib/Admin/Controller/LoginController.php @@ -19,10 +19,8 @@ public function __construct(private AuthenticationUtils $authenticationUtils) { } - /** - * @Route(path="/login", name=AdminContext::LOGIN_ROUTE, methods={"GET", "POST"}) - */ - public function __invoke(): Response + #[Route(path: '/login', name: AdminContext::LOGIN_ROUTE, methods: ['GET', 'POST'])] + public function __invoke() : Response { return $this->render('layout/login.html.twig', [ 'error' => $this->authenticationUtils->getLastAuthenticationError(), diff --git a/lib/Admin/Controller/Me/CreateApiClient.php b/lib/Admin/Controller/Me/CreateApiClient.php index 5777512f..05566616 100644 --- a/lib/Admin/Controller/Me/CreateApiClient.php +++ b/lib/Admin/Controller/Me/CreateApiClient.php @@ -26,16 +26,13 @@ public function __construct(private UserProviderFactory $userProviderFactory, pr { } - /** - * @Route(path="/me/api-clients", name=CreateApiClient::class, methods={"POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/me/api-clients', name: CreateApiClient::class, methods: ['POST'])] + public function __invoke(Request $request) : Response { $user = $this->getUser(); if (!$user instanceof User) { return new RedirectResponse($this->generateUrl(AdminContext::ADMIN_ROUTE)); } - $user = $this->userProviderFactory->getRealUser($user); $name = $request->request->get('name'); if ('' === $name) { @@ -43,22 +40,17 @@ public function __invoke(Request $request): Response return new RedirectResponse($this->generateUrl(Profile::class)); } - /** @var UserInterface $user */ if ($this->service->countByUser($user) >= $this->setting->getMaxApiPerUser()) { $this->addFlash('error', 'sas.page.api_client.max_api_client_reached'); return new RedirectResponse($this->generateUrl(Profile::class)); } - $client = new ApiClient(); $client->setName($name); $client->setUser($user); - $this->addFlash('info', 'sas.page.api_client.saved'); - $this->service->save($client); - return new RedirectResponse($this->generateUrl(Profile::class)); } } diff --git a/lib/Admin/Controller/Me/DeleteApiClient.php b/lib/Admin/Controller/Me/DeleteApiClient.php index 7844ef73..9745a0bc 100644 --- a/lib/Admin/Controller/Me/DeleteApiClient.php +++ b/lib/Admin/Controller/Me/DeleteApiClient.php @@ -25,16 +25,13 @@ public function __construct(private UserProviderFactory $userProviderFactory, pr { } - /** - * @Route(path="/me/api-clients/{id}/delete", name=DeleteApiClient::class, methods={"GET"}) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/me/api-clients/{id}/delete', name: DeleteApiClient::class, methods: ['GET'])] + public function __invoke(Request $request, string $id) : Response { $user = $this->getUser(); if (!$user instanceof User) { return new RedirectResponse($this->generateUrl(AdminContext::ADMIN_ROUTE)); } - $user = $this->userProviderFactory->getRealUser($user); $name = $request->request->get('name'); if ('' === $name) { @@ -42,18 +39,14 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Profile::class)); } - $client = $this->service->getByIdAndUser($id, $user); if (!$client instanceof ApiClientInterface) { $this->addFlash('error', 'sas.page.api_client.not_found'); return new RedirectResponse($this->generateUrl(Profile::class)); } - $this->service->remove($client); - $this->addFlash('info', 'sas.page.api_client.deleted'); - return new RedirectResponse($this->generateUrl(Profile::class)); } } diff --git a/lib/Admin/Controller/Me/Profile.php b/lib/Admin/Controller/Me/Profile.php index 7f3ab782..8d1d4e9a 100755 --- a/lib/Admin/Controller/Me/Profile.php +++ b/lib/Admin/Controller/Me/Profile.php @@ -44,24 +44,22 @@ public function __construct( } /** - * @Route(path="/me", name=Profile::class, methods={"GET", "POST"}, priority=-1) * * @throws ReflectionException * @throws NoResultException * @throws NonUniqueResultException */ - public function __invoke(Request $request): Response + #[Route(path: '/me', name: Profile::class, methods: ['GET', 'POST'], priority: -1)] + public function __invoke(Request $request) : Response { $user = $this->getUser(); if (!$user instanceof User) { return new RedirectResponse($this->generateUrl(AdminContext::ADMIN_ROUTE)); } - $user = $this->userProviderFactory->getRealUser($user); if (!$user instanceof UserInterface) { return new RedirectResponse($this->generateUrl(AdminContext::ADMIN_ROUTE)); } - $form = $this->createForm(UpdateProfileType::class, $user); if ($request->isMethod(Request::METHOD_POST)) { $userClone = clone $user; @@ -88,11 +86,8 @@ public function __invoke(Request $request): Response } } } - $class = new ReflectionClass($user::class); - $request->query->set($this->setting->getPerPageField(), 17); - return $this->render('profile/view.html.twig', [ 'page_title' => 'sas.page.profile.view', 'context' => StringUtil::lowercase($class->getShortName()), @@ -103,4 +98,4 @@ public function __invoke(Request $request): Response 'form' => $form->createView(), ]); } -} +} \ No newline at end of file diff --git a/lib/Admin/Controller/Media/Audit.php b/lib/Admin/Controller/Media/Audit.php index dd39db9e..36f2e414 100755 --- a/lib/Admin/Controller/Media/Audit.php +++ b/lib/Admin/Controller/Media/Audit.php @@ -30,11 +30,10 @@ public function __construct(private MediaService $service, private AuditService } /** - * @Route(path="/medias/{id}/audit", name=Audit::class, methods={"GET"}, priority=1) - * * @throws InvalidArgumentException */ - public function __invoke(string $id): Response + #[Route(path: '/medias/{id}/audit', name: Audit::class, methods: ['GET'], priority: 1)] + public function __invoke(string $id) : Response { $entity = $this->service->get($id); if (!$entity instanceof MediaInterface) { @@ -42,13 +41,11 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(Media::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Media::class)); } } diff --git a/lib/Admin/Controller/Media/Delete.php b/lib/Admin/Controller/Media/Delete.php index df247d54..3682c4d4 100755 --- a/lib/Admin/Controller/Media/Delete.php +++ b/lib/Admin/Controller/Media/Delete.php @@ -23,10 +23,8 @@ public function __construct(private MediaService $service) { } - /** - * @Route(path="/medias/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/medias/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $media = $this->service->get($id); if (!$media instanceof MediaInterface) { @@ -34,11 +32,8 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($media); - $this->addFlash('info', 'sas.page.media.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Media/Download.php b/lib/Admin/Controller/Media/Download.php index 857be958..26f57ef5 100755 --- a/lib/Admin/Controller/Media/Download.php +++ b/lib/Admin/Controller/Media/Download.php @@ -23,10 +23,8 @@ public function __construct(private MediaService $service, private SerializerInt { } - /** - * @Route(path="/medias/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/medias/download', name: Download::class, methods: ['GET'])] + public function __invoke() : Response { $records = $this->service->total(); if (10000 < $records) { @@ -34,14 +32,11 @@ public function __invoke(): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'medias', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/Media/Get.php b/lib/Admin/Controller/Media/Get.php index e4517cac..4b77150c 100755 --- a/lib/Admin/Controller/Media/Get.php +++ b/lib/Admin/Controller/Media/Get.php @@ -28,16 +28,13 @@ public function __construct(private MediaService $service, private PropertyMappi { } - /** - * @Route(path="/medias/{path}", name=Get::class, methods={"GET"}, requirements={"path"=".+"}) - */ - public function __invoke(Request $request, string $path): Response + #[Route(path: '/medias/{path}', name: Get::class, methods: ['GET'], requirements: ['path' => '.+'])] + public function __invoke(Request $request, string $path) : Response { $path = explode('/', $path); if (MediaInterface::PUBLIC_FIELD === $path[0]) { array_shift($path); } - $fileName = implode('/', $path); $media = $this->service->getByFile($fileName); if (!$media instanceof MediaInterface) { @@ -45,7 +42,6 @@ public function __invoke(Request $request, string $path): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $file = new File(sprintf('%s%s%s%s%s', $this->mapping->fromField($media, 'file')->getUploadDestination(), DIRECTORY_SEPARATOR, @@ -53,13 +49,11 @@ public function __invoke(Request $request, string $path): Response DIRECTORY_SEPARATOR, $media->getFileName() )); - $response = new BinaryFileResponse($file->getRealPath()); $response->setPrivate(); if ($request->query->get('f')) { $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $file->getFilename()); } - return $response; } } diff --git a/lib/Admin/Controller/Media/Main.php b/lib/Admin/Controller/Media/Main.php index ef3470a3..83d54663 100755 --- a/lib/Admin/Controller/Media/Main.php +++ b/lib/Admin/Controller/Media/Main.php @@ -27,10 +27,8 @@ public function __construct(private MediaService $service, Paginator $paginator) parent::__construct($this->service, $paginator); } - /** - * @Route(path="/medias", name=Main::class, methods={"GET", "POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/medias', name: Main::class, methods: ['GET', 'POST'])] + public function __invoke(Request $request) : Response { $media = new Media(); $form = $this->createForm(MediaType::class, $media); @@ -41,7 +39,6 @@ public function __invoke(Request $request): Response $this->addFlash('info', 'sas.page.media.saved'); } } - return $this->renderList($form, $request, new ReflectionClass(Media::class)); } } diff --git a/lib/Admin/Controller/Menu/Audit.php b/lib/Admin/Controller/Menu/Audit.php index 9c91d119..1cd1e1bf 100755 --- a/lib/Admin/Controller/Menu/Audit.php +++ b/lib/Admin/Controller/Menu/Audit.php @@ -29,24 +29,21 @@ public function __construct(private MenuService $service, private AuditService $ } /** - * @Route(path="/menus/{id}/audit", name=Audit::class, methods={"GET"}, priority=-255) - * * @throws InvalidArgumentException */ - public function __invoke(string $id): Response + #[Route(path: '/menus/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] + public function __invoke(string $id) : Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.menu.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(Menu::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Menu::class)); } } diff --git a/lib/Admin/Controller/Menu/Delete.php b/lib/Admin/Controller/Menu/Delete.php index d2f52843..4a33c753 100755 --- a/lib/Admin/Controller/Menu/Delete.php +++ b/lib/Admin/Controller/Menu/Delete.php @@ -23,10 +23,8 @@ public function __construct(private MenuService $service) { } - /** - * @Route(path="/menus/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/menus/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $menu = $this->service->get($id); if (!$menu instanceof MenuInterface) { @@ -34,11 +32,8 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($menu); - $this->addFlash('info', 'sas.page.menu.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Menu/Download.php b/lib/Admin/Controller/Menu/Download.php index c0c65869..a1b2a0db 100755 --- a/lib/Admin/Controller/Menu/Download.php +++ b/lib/Admin/Controller/Menu/Download.php @@ -23,10 +23,8 @@ public function __construct(private MenuService $service, private SerializerInte { } - /** - * @Route(path="/menus/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/menus/download', name: Download::class, methods: ['GET'])] + public function __invoke() : Response { $records = $this->service->total(); if (10000 < $records) { @@ -34,14 +32,11 @@ public function __invoke(): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'menus', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/Menu/Get.php b/lib/Admin/Controller/Menu/Get.php index 70daee96..6abdf01c 100755 --- a/lib/Admin/Controller/Menu/Get.php +++ b/lib/Admin/Controller/Menu/Get.php @@ -29,10 +29,8 @@ public function __construct(private MenuService $service, private AuditService $ parent::__construct($this->service); } - /** - * @Route(path="/menus/{id}", name=Get::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/menus/{id}', name: Get::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $menu = $this->service->get($id); if (!$menu instanceof MenuInterface) { @@ -40,12 +38,10 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $audit = new Record($menu); if ($this->reader->getProvider()->isAuditable(Menu::class)) { $audit = $this->audit->getAudits($menu, $id, 1); } - return $this->renderDetail($audit, new ReflectionClass(Menu::class)); } } diff --git a/lib/Admin/Controller/Menu/Main.php b/lib/Admin/Controller/Menu/Main.php index 2b7924ab..d65c87c2 100755 --- a/lib/Admin/Controller/Menu/Main.php +++ b/lib/Admin/Controller/Menu/Main.php @@ -27,10 +27,8 @@ public function __construct(private MenuService $service, Paginator $paginator) parent::__construct($this->service, $paginator); } - /** - * @Route(path="/menus", name=Main::class, methods={"GET", "POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/menus', name: Main::class, methods: ['GET', 'POST'])] + public function __invoke(Request $request) : Response { $menu = new Menu(); if ($request->isMethod(Request::METHOD_POST)) { @@ -46,7 +44,6 @@ public function __invoke(Request $request): Response } } } - $form = $this->createForm(MenuType::class, $menu); if ($request->isMethod(Request::METHOD_POST)) { $form->handleRequest($request); @@ -57,7 +54,6 @@ public function __invoke(Request $request): Response $form = $this->createForm(MenuType::class); } } - return $this->renderList($form, $request, new ReflectionClass(Menu::class)); } } diff --git a/lib/Admin/Controller/Menu/Put.php b/lib/Admin/Controller/Menu/Put.php index a5782e8a..444adaf2 100755 --- a/lib/Admin/Controller/Menu/Put.php +++ b/lib/Admin/Controller/Menu/Put.php @@ -24,10 +24,8 @@ public function __construct(private MenuService $service) { } - /** - * @Route(path="/menus/{id}/edit", name=Put::class, methods={"GET"}, priority=1) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/menus/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] + public function __invoke(Request $request, string $id) : Response { $menu = $this->service->get($id); if (!$menu instanceof MenuInterface) { @@ -35,9 +33,7 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } - $this->addFlash('id', $menu->getId()); - return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/Setting/Audit.php b/lib/Admin/Controller/Setting/Audit.php index 556490c8..74c949b9 100755 --- a/lib/Admin/Controller/Setting/Audit.php +++ b/lib/Admin/Controller/Setting/Audit.php @@ -29,24 +29,21 @@ public function __construct(private SettingService $service, private AuditServic } /** - * @Route(path="/settings/{id}/audit", name=Audit::class, methods={"GET"}, priority=-255) - * * @throws InvalidArgumentException */ - public function __invoke(string $id): Response + #[Route(path: '/settings/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] + public function __invoke(string $id) : Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.setting.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(Setting::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Setting::class)); } } diff --git a/lib/Admin/Controller/Setting/Delete.php b/lib/Admin/Controller/Setting/Delete.php index 765ab841..850df737 100755 --- a/lib/Admin/Controller/Setting/Delete.php +++ b/lib/Admin/Controller/Setting/Delete.php @@ -23,10 +23,8 @@ public function __construct(private SettingService $service) { } - /** - * @Route(path="/settings/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/settings/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $setting = $this->service->get($id); if (!$setting instanceof SettingInterface) { @@ -34,17 +32,13 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$setting->isReserved()) { $this->addFlash('error', 'sas.page.setting.reserved_not_allowed'); return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($setting); - $this->addFlash('info', 'sas.page.setting.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Setting/Download.php b/lib/Admin/Controller/Setting/Download.php index afef10df..7f5377ba 100755 --- a/lib/Admin/Controller/Setting/Download.php +++ b/lib/Admin/Controller/Setting/Download.php @@ -23,10 +23,8 @@ public function __construct(private SettingService $service, private SerializerI { } - /** - * @Route(path="/settings/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/settings/download', name: Download::class, methods: ['GET'])] + public function __invoke() : Response { $records = $this->service->total(); if (10000 < $records) { @@ -34,14 +32,11 @@ public function __invoke(): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'settings', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/Setting/Get.php b/lib/Admin/Controller/Setting/Get.php index f0aa6240..cc80e472 100755 --- a/lib/Admin/Controller/Setting/Get.php +++ b/lib/Admin/Controller/Setting/Get.php @@ -29,10 +29,8 @@ public function __construct(private SettingService $service, private AuditServic parent::__construct($this->service); } - /** - * @Route(path="/settings/{id}", name=Get::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/settings/{id}', name: Get::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $setting = $this->service->get($id); if (!$setting instanceof SettingInterface) { @@ -40,12 +38,10 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $audit = new Record($setting); if ($this->reader->getProvider()->isAuditable(Setting::class)) { $audit = $this->audit->getAudits($setting, $id, 1); } - return $this->renderDetail($audit, new ReflectionClass(Setting::class)); } } diff --git a/lib/Admin/Controller/Setting/Main.php b/lib/Admin/Controller/Setting/Main.php index b0cc99d2..09421b8b 100755 --- a/lib/Admin/Controller/Setting/Main.php +++ b/lib/Admin/Controller/Setting/Main.php @@ -27,10 +27,8 @@ public function __construct(private SettingService $service, Paginator $paginato parent::__construct($this->service, $paginator); } - /** - * @Route(path="/settings", name=Main::class, methods={"GET", "POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/settings', name: Main::class, methods: ['GET', 'POST'])] + public function __invoke(Request $request) : Response { $setting = new Setting(); if ($request->isMethod(Request::METHOD_POST)) { @@ -46,7 +44,6 @@ public function __invoke(Request $request): Response } } } - $form = $this->createForm(SettingType::class, $setting); if ($request->isMethod(Request::METHOD_POST)) { $form->handleRequest($request); @@ -57,7 +54,6 @@ public function __invoke(Request $request): Response $form = $this->createForm(SettingType::class); } } - return $this->renderList($form, $request, new ReflectionClass(Setting::class)); } } diff --git a/lib/Admin/Controller/Setting/Put.php b/lib/Admin/Controller/Setting/Put.php index d119d041..aede85dd 100755 --- a/lib/Admin/Controller/Setting/Put.php +++ b/lib/Admin/Controller/Setting/Put.php @@ -24,10 +24,8 @@ public function __construct(private SettingService $service) { } - /** - * @Route(path="/settings/{id}/edit", name=Put::class, methods={"GET"}, priority=1) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/settings/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] + public function __invoke(Request $request, string $id) : Response { $setting = $this->service->get($id); if (!$setting instanceof SettingInterface) { @@ -35,9 +33,7 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } - $this->addFlash('id', $setting->getId()); - return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/User/Audit.php b/lib/Admin/Controller/User/Audit.php index 7c77bea5..d04d5099 100755 --- a/lib/Admin/Controller/User/Audit.php +++ b/lib/Admin/Controller/User/Audit.php @@ -29,24 +29,21 @@ public function __construct(private UserService $service, private AuditService $ } /** - * @Route(path="/users/{id}/audit", name=Audit::class, methods={"GET"}, priority=-255) - * * @throws InvalidArgumentException */ - public function __invoke(string $id): Response + #[Route(path: '/users/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] + public function __invoke(string $id) : Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.user.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - if (!$this->reader->getProvider()->isAuditable(User::class)) { $this->addFlash('error', 'sas.page.audit.not_found'); return new RedirectResponse($this->generateUrl(Main::class)); } - return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(User::class)); } } diff --git a/lib/Admin/Controller/User/Delete.php b/lib/Admin/Controller/User/Delete.php index 6a882457..b2c3d072 100755 --- a/lib/Admin/Controller/User/Delete.php +++ b/lib/Admin/Controller/User/Delete.php @@ -23,10 +23,8 @@ public function __construct(private UserService $service) { } - /** - * @Route(path="/users/{id}/delete", name=Delete::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/users/{id}/delete', name: Delete::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $user = $this->service->get($id); if (!$user instanceof UserInterface) { @@ -34,11 +32,8 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $this->service->remove($user); - $this->addFlash('info', 'sas.page.user.deleted'); - return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/User/Download.php b/lib/Admin/Controller/User/Download.php index dafde0fa..83dac6a5 100755 --- a/lib/Admin/Controller/User/Download.php +++ b/lib/Admin/Controller/User/Download.php @@ -23,10 +23,8 @@ public function __construct(private UserService $service, private SerializerInte { } - /** - * @Route(path="/users/download", name=Download::class, methods={"GET"}) - */ - public function __invoke(): Response + #[Route(path: '/users/download', name: Download::class, methods: ['GET'])] + public function __invoke() : Response { $records = $this->service->total(); if (10000 < $records) { @@ -34,14 +32,11 @@ public function __invoke(): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $response = new Response(); $response->headers->set('Cache-Control', 'private'); $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'users', date('YmdHis'))); - $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); - return $response; } } diff --git a/lib/Admin/Controller/User/Get.php b/lib/Admin/Controller/User/Get.php index 3ee5d2d7..2f7d9d9b 100755 --- a/lib/Admin/Controller/User/Get.php +++ b/lib/Admin/Controller/User/Get.php @@ -29,10 +29,8 @@ public function __construct(private UserService $service, private AuditService $ parent::__construct($this->service); } - /** - * @Route(path="/users/{id}", name=Get::class, methods={"GET"}) - */ - public function __invoke(string $id): Response + #[Route(path: '/users/{id}', name: Get::class, methods: ['GET'])] + public function __invoke(string $id) : Response { $user = $this->service->get($id); if (!$user instanceof UserInterface) { @@ -40,12 +38,10 @@ public function __invoke(string $id): Response return new RedirectResponse($this->generateUrl(Main::class)); } - $audit = new Record($user); if ($this->reader->getProvider()->isAuditable(User::class)) { $audit = $this->audit->getAudits($user, $id, 1); } - return $this->renderDetail($audit, new ReflectionClass(User::class)); } } diff --git a/lib/Admin/Controller/User/Main.php b/lib/Admin/Controller/User/Main.php index 0f9f2d23..83ebeb51 100755 --- a/lib/Admin/Controller/User/Main.php +++ b/lib/Admin/Controller/User/Main.php @@ -27,10 +27,8 @@ public function __construct(private UserService $service, Paginator $paginator) parent::__construct($this->service, $paginator); } - /** - * @Route(path="/users", name=Main::class, methods={"GET", "POST"}) - */ - public function __invoke(Request $request): Response + #[Route(path: '/users', name: Main::class, methods: ['GET', 'POST'])] + public function __invoke(Request $request) : Response { $user = new User(); if ($request->isMethod(Request::METHOD_POST)) { @@ -46,7 +44,6 @@ public function __invoke(Request $request): Response } } } - $form = $this->createForm(UserType::class, $user); if ($request->isMethod(Request::METHOD_POST)) { $form->handleRequest($request); @@ -57,7 +54,6 @@ public function __invoke(Request $request): Response $form = $this->createForm(UserType::class); } } - return $this->renderList($form, $request, new ReflectionClass(User::class)); } } diff --git a/lib/Admin/Controller/User/Put.php b/lib/Admin/Controller/User/Put.php index 1def7d55..ff9bbc17 100755 --- a/lib/Admin/Controller/User/Put.php +++ b/lib/Admin/Controller/User/Put.php @@ -24,10 +24,8 @@ public function __construct(private UserService $service) { } - /** - * @Route(path="/users/{id}/edit", name=Put::class, methods={"GET"}, priority=1) - */ - public function __invoke(Request $request, string $id): Response + #[Route(path: '/users/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] + public function __invoke(Request $request, string $id) : Response { $user = $this->service->get($id); if (!$user instanceof UserInterface) { @@ -35,9 +33,7 @@ public function __invoke(Request $request, string $id): Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } - $this->addFlash('id', $user->getId()); - return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Entity/ApiClient.php b/lib/Entity/ApiClient.php index 5f952e36..4c42832b 100755 --- a/lib/Entity/ApiClient.php +++ b/lib/Entity/ApiClient.php @@ -4,6 +4,8 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -59,11 +61,11 @@ class ApiClient implements ApiClientInterface private ?UserInterface $user; /** - * @Assert\Length(max=27) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 27)] + #[Length(max: 27)] + #[NotBlank] private ?string $name; /** diff --git a/lib/Entity/Cron.php b/lib/Entity/Cron.php index 5e3fa173..045add4d 100755 --- a/lib/Entity/Cron.php +++ b/lib/Entity/Cron.php @@ -4,6 +4,8 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -50,35 +52,35 @@ class Cron implements CronInterface private UuidInterface $id; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 255)] + #[Length(max: 255)] + #[NotBlank] private ?string $name; /** - * @Assert\Length(max=255) * @Groups({"read"}) */ #[Column(type: 'string', length: 255, nullable: true)] + #[Length(max: 255)] private ?string $description; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 255)] + #[Length(max: 255)] + #[NotBlank] private ?string $command; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() * @CronScheduleFormat() * @Groups({"read"}) */ #[Column(type: 'string', length: 255)] + #[Length(max: 255)] + #[NotBlank] private ?string $schedule; /** diff --git a/lib/Entity/Group.php b/lib/Entity/Group.php index 83ab61f8..8e27734b 100755 --- a/lib/Entity/Group.php +++ b/lib/Entity/Group.php @@ -4,6 +4,8 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -48,19 +50,19 @@ class Group implements GroupInterface private UuidInterface $id; /** - * @Assert\Length(max=7) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 7)] + #[Length(max: 7)] + #[NotBlank] private ?string $code; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 255)] + #[Length(max: 255)] + #[NotBlank] private ?string $name; public function __construct() diff --git a/lib/Entity/Media.php b/lib/Entity/Media.php index f82c1ca8..9b383f52 100755 --- a/lib/Entity/Media.php +++ b/lib/Entity/Media.php @@ -4,6 +4,7 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -64,9 +65,8 @@ class Media implements MediaInterface /** * @Vich\UploadableField(mapping="media", fileNameProperty="fileName") - * - * @Assert\NotBlank() */ + #[NotBlank] private ?File $file = null; public function __construct() diff --git a/lib/Entity/Menu.php b/lib/Entity/Menu.php index 519e44df..a68a8cdb 100755 --- a/lib/Entity/Menu.php +++ b/lib/Entity/Menu.php @@ -4,6 +4,8 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -58,41 +60,41 @@ class Menu implements MenuInterface private ?MenuInterface $parent; /** - * @Assert\Length(max=27) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 27)] + #[Length(max: 27)] + #[NotBlank] private ?string $code; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 255)] + #[Length(max: 255)] + #[NotBlank] private ?string $name; /** - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'integer')] + #[NotBlank] private int $sortOrder; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() * @Route() */ #[Column(type: 'string', length: 255)] + #[Length(max: 255)] + #[NotBlank] private ?string $routeName; /** - * @Assert\Length(max=27) * @Groups({"read"}) */ #[Column(type: 'string', length: 27, nullable: true)] + #[Length(max: 27)] private ?string $iconClass; /** diff --git a/lib/Entity/Permission.php b/lib/Entity/Permission.php index a663c84b..f85a6f3a 100755 --- a/lib/Entity/Permission.php +++ b/lib/Entity/Permission.php @@ -4,6 +4,7 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -53,10 +54,10 @@ class Permission implements PermissionInterface private ?GroupInterface $group; /** - * @Assert\NotBlank() * @Groups({"read"}) **/ #[ManyToOne(targetEntity: Menu::class, cascade: ['persist'])] + #[NotBlank] private ?MenuInterface $menu; /** diff --git a/lib/Entity/Setting.php b/lib/Entity/Setting.php index 6c2ae709..994188e3 100755 --- a/lib/Entity/Setting.php +++ b/lib/Entity/Setting.php @@ -4,6 +4,8 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -48,26 +50,26 @@ class Setting implements SettingInterface private UuidInterface $id; /** - * @Assert\Length(max=27) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(name: 'setting_group', type: 'string', length: 27)] + #[Length(max: 27)] + #[NotBlank] private ?string $group; /** - * @Assert\Length(max=27) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 27)] + #[Length(max: 27)] + #[NotBlank] private ?string $parameter; /** - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'text')] + #[NotBlank] private ?string $value; #[Column(type: 'boolean')] diff --git a/lib/Entity/User.php b/lib/Entity/User.php index 6916ae88..0e4b0913 100755 --- a/lib/Entity/User.php +++ b/lib/Entity/User.php @@ -4,6 +4,9 @@ namespace KejawenLab\ApiSkeleton\Entity; +use Symfony\Component\Validator\Constraints\NotBlank; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\Email; use DateTimeImmutable; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; @@ -52,10 +55,10 @@ class User implements UserInterface private UuidInterface $id; /** - * @Assert\NotBlank() * @Groups({"read"}) **/ #[ManyToOne(targetEntity: Group::class, cascade: ['persist'])] + #[NotBlank] private ?GroupInterface $group; /** @@ -65,11 +68,11 @@ class User implements UserInterface private ?UserInterface $supervisor; /** - * @Assert\Length(max=180) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 180, unique: true)] + #[Length(max: 180)] + #[NotBlank] private ?string $username; /** @@ -79,20 +82,20 @@ class User implements UserInterface private ?string $profileImage; /** - * @Assert\Length(max=55) - * @Assert\NotBlank() * @Groups({"read"}) */ #[Column(type: 'string', length: 55)] + #[Length(max: 55)] + #[NotBlank] private ?string $fullName; /** - * @Assert\Length(max=255) - * @Assert\NotBlank() - * @Assert\Email() * @Groups({"read"}) */ #[Column(type: 'string', length: 255, unique: true)] + #[Length(max: 255)] + #[NotBlank] + #[Email] private ?string $email; /** diff --git a/rector.php b/rector.php index cfcad96e..ce595dc7 100755 --- a/rector.php +++ b/rector.php @@ -6,6 +6,8 @@ use Rector\Core\Configuration\Option; use Rector\Doctrine\Set\DoctrineSetList; use Rector\Set\ValueObject\SetList; +use Rector\Symfony\Rector\New_\PropertyAccessorCreationBooleanToFlagsRector; +use Rector\Symfony\Set\SymfonySetList; use Rector\TypeDeclaration\Rector\ClassMethod\AddArrayReturnDocTypeRector; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; @@ -22,6 +24,7 @@ $containerConfigurator->import(Setlist::TYPE_DECLARATION); $containerConfigurator->import(SetList::TYPE_DECLARATION_STRICT); $containerConfigurator->import(DoctrineSetList::DOCTRINE_ORM_29); + $containerConfigurator->import(SymfonySetList::SYMFONY_52); $parameters = $containerConfigurator->parameters(); $parameters->set(Option::AUTO_IMPORT_NAMES, true); @@ -35,6 +38,11 @@ // mostly class-string[] is enough for collection of class-string return __DIR__ . '/lib/DataFixtures/', ], + + // no arg means use default value + PropertyAccessorCreationBooleanToFlagsRector::class => [ + __DIR__ . '/lib/Security/Authorization/Ownership.php', + ], ]); }; From fea452b14b8ce93fd8a2e37932682969d826848a Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 27 Aug 2021 17:02:25 +0700 Subject: [PATCH 3/4] re-run rector --- lib/Repository/AbstractRepository.php | 3 +++ lib/Repository/GroupRepository.php | 3 +++ lib/Repository/MenuRepository.php | 4 ++++ lib/Repository/PasswordHistoryRepository.php | 3 ++- lib/Repository/PermissionRepository.php | 3 +++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/Repository/AbstractRepository.php b/lib/Repository/AbstractRepository.php index 50d916d3..41b11949 100755 --- a/lib/Repository/AbstractRepository.php +++ b/lib/Repository/AbstractRepository.php @@ -17,6 +17,9 @@ abstract class AbstractRepository extends ServiceEntityRepository implements Pag { protected const MICRO_CACHE = 1; + /** + * @return null|mixed + */ public function find($id, $lockMode = null, $lockVersion = null) { $queryBuilder = $this->createQueryBuilder('o'); diff --git a/lib/Repository/GroupRepository.php b/lib/Repository/GroupRepository.php index 245e8f13..1820889c 100755 --- a/lib/Repository/GroupRepository.php +++ b/lib/Repository/GroupRepository.php @@ -24,6 +24,9 @@ public function __construct(ManagerRegistry $registry) parent::__construct($registry, Group::class); } + /** + * @return null|mixed + */ public function findByCode(string $code) { $queryBuilder = $this->createQueryBuilder('o'); diff --git a/lib/Repository/MenuRepository.php b/lib/Repository/MenuRepository.php index 96576d19..09dc4239 100755 --- a/lib/Repository/MenuRepository.php +++ b/lib/Repository/MenuRepository.php @@ -4,6 +4,7 @@ namespace KejawenLab\ApiSkeleton\Repository; +use Iterator; use Doctrine\Persistence\ManagerRegistry; use KejawenLab\ApiSkeleton\Entity\Menu; use KejawenLab\ApiSkeleton\Security\Model\MenuInterface; @@ -38,6 +39,9 @@ public function findByCode(string $code): ?MenuInterface return $query->getOneOrNullResult(); } + /** + * @return Iterator + */ public function findChilds(MenuInterface $menu): iterable { $queryBuilder = $this->createQueryBuilder('o'); diff --git a/lib/Repository/PasswordHistoryRepository.php b/lib/Repository/PasswordHistoryRepository.php index fd948b22..eff05fc5 100755 --- a/lib/Repository/PasswordHistoryRepository.php +++ b/lib/Repository/PasswordHistoryRepository.php @@ -4,6 +4,7 @@ namespace KejawenLab\ApiSkeleton\Repository; +use Iterator; use Doctrine\Persistence\ManagerRegistry; use KejawenLab\ApiSkeleton\Entity\PasswordHistory; use KejawenLab\ApiSkeleton\Security\Model\PasswordHistoryRepositoryInterface; @@ -25,7 +26,7 @@ public function __construct(ManagerRegistry $registry) } /** - * @return PasswordHistory[] + * @return Iterator */ public function findPasswords(UserInterface $user): iterable { diff --git a/lib/Repository/PermissionRepository.php b/lib/Repository/PermissionRepository.php index 2c9bf8f6..9ef560cf 100755 --- a/lib/Repository/PermissionRepository.php +++ b/lib/Repository/PermissionRepository.php @@ -44,6 +44,9 @@ public function findPermission(GroupInterface $group, MenuInterface $menu): ?Per return $query->getOneOrNullResult(); } + /** + * @return Iterator + */ public function findPermissions(GroupInterface $group, iterable $menus): iterable { $ids = []; From 7a9e7579100be1ed8b4abaf107903039694e42ff Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 27 Aug 2021 19:24:22 +0700 Subject: [PATCH 4/4] php-cs-fixer run with @Symfony rules --- lib/Admin/Controller/ApiClient/Audit.php | 3 ++- lib/Admin/Controller/ApiClient/Delete.php | 3 ++- lib/Admin/Controller/ApiClient/Download.php | 3 ++- lib/Admin/Controller/ApiClient/Main.php | 3 ++- lib/Admin/Controller/ApiClient/Report.php | 3 ++- lib/Admin/Controller/Cron/Audit.php | 3 ++- lib/Admin/Controller/Cron/Delete.php | 3 ++- lib/Admin/Controller/Cron/Download.php | 3 ++- lib/Admin/Controller/Cron/Get.php | 3 ++- lib/Admin/Controller/Cron/Main.php | 3 ++- lib/Admin/Controller/Cron/Put.php | 3 ++- lib/Admin/Controller/Cron/Report.php | 3 ++- lib/Admin/Controller/Cron/Run.php | 3 ++- lib/Admin/Controller/DashboardController.php | 2 +- lib/Admin/Controller/Group/Audit.php | 3 ++- lib/Admin/Controller/Group/Delete.php | 3 ++- lib/Admin/Controller/Group/Download.php | 3 ++- lib/Admin/Controller/Group/Get.php | 3 ++- lib/Admin/Controller/Group/Main.php | 3 ++- lib/Admin/Controller/Group/Permission.php | 3 ++- lib/Admin/Controller/Group/PermissionPut.php | 3 ++- lib/Admin/Controller/Group/Put.php | 3 ++- lib/Admin/Controller/LoginController.php | 2 +- lib/Admin/Controller/Me/CreateApiClient.php | 3 ++- lib/Admin/Controller/Me/DeleteApiClient.php | 6 +++--- lib/Admin/Controller/Me/Profile.php | 6 +++--- lib/Admin/Controller/Media/Audit.php | 3 ++- lib/Admin/Controller/Media/Delete.php | 3 ++- lib/Admin/Controller/Media/Download.php | 3 ++- lib/Admin/Controller/Media/Get.php | 3 ++- lib/Admin/Controller/Media/Main.php | 3 ++- lib/Admin/Controller/Menu/Audit.php | 3 ++- lib/Admin/Controller/Menu/Delete.php | 3 ++- lib/Admin/Controller/Menu/Download.php | 3 ++- lib/Admin/Controller/Menu/Get.php | 3 ++- lib/Admin/Controller/Menu/Main.php | 3 ++- lib/Admin/Controller/Menu/Put.php | 3 ++- lib/Admin/Controller/Setting/Audit.php | 3 ++- lib/Admin/Controller/Setting/Delete.php | 3 ++- lib/Admin/Controller/Setting/Download.php | 3 ++- lib/Admin/Controller/Setting/Get.php | 3 ++- lib/Admin/Controller/Setting/Main.php | 3 ++- lib/Admin/Controller/Setting/Put.php | 3 ++- lib/Admin/Controller/User/Audit.php | 3 ++- lib/Admin/Controller/User/Delete.php | 3 ++- lib/Admin/Controller/User/Download.php | 3 ++- lib/Admin/Controller/User/Get.php | 3 ++- lib/Admin/Controller/User/Main.php | 3 ++- lib/Admin/Controller/User/Put.php | 3 ++- lib/Audit/AuditItem.php | 2 +- lib/Entity/ApiClient.php | 5 ++--- lib/Entity/Cron.php | 5 ++--- lib/Entity/Group.php | 5 ++--- lib/Entity/Media.php | 3 +-- lib/Entity/Menu.php | 5 ++--- lib/Entity/Permission.php | 3 +-- lib/Entity/Setting.php | 5 ++--- lib/Entity/User.php | 7 +++---- lib/Form/MenuType.php | 2 +- lib/Form/UserType.php | 4 ++-- lib/Generator/GeneratorFactory.php | 2 +- lib/Pagination/Paginator.php | 3 ++- lib/Repository/AbstractRepository.php | 2 +- lib/Repository/GroupRepository.php | 2 +- lib/Repository/MenuRepository.php | 2 +- lib/Repository/PasswordHistoryRepository.php | 2 +- lib/Repository/UserRepository.php | 2 +- lib/Security/AdminAuthenticator.php | 2 +- lib/Security/Authorization/Voter.php | 1 + lib/Security/Service/GroupPermissionService.php | 2 +- lib/Security/Service/MenuPermissionService.php | 2 +- lib/Security/Service/MenuService.php | 1 + lib/Security/Service/PermissionService.php | 6 +++--- lib/Security/Service/UserProviderFactory.php | 2 +- lib/Security/Validator/PasswordHistoryValidator.php | 2 +- lib/Setting/SettingGroupFactory.php | 5 ++--- 76 files changed, 137 insertions(+), 98 deletions(-) diff --git a/lib/Admin/Controller/ApiClient/Audit.php b/lib/Admin/Controller/ApiClient/Audit.php index da73c0a9..71482f0a 100755 --- a/lib/Admin/Controller/ApiClient/Audit.php +++ b/lib/Admin/Controller/ApiClient/Audit.php @@ -38,7 +38,7 @@ public function __construct(private ApiClientService $service, private UserServi * @throws InvalidArgumentException */ #[Route(path: 'users/{userId}/api-clients/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] - public function __invoke(string $userId, string $id) : Response + public function __invoke(string $userId, string $id): Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -60,6 +60,7 @@ public function __invoke(string $userId, string $id) : Response $audit = $this->audit->getAudits($entity, $id)->toArray(); $class = new ReflectionClass(ApiClient::class); $context = StringUtil::lowercase($class->getShortName()); + return $this->render(sprintf('%s/audit.html.twig', $context), [ 'page_title' => 'sas.page.audit.view', 'context' => $context, diff --git a/lib/Admin/Controller/ApiClient/Delete.php b/lib/Admin/Controller/ApiClient/Delete.php index 6b5f5de1..3cd28c2e 100755 --- a/lib/Admin/Controller/ApiClient/Delete.php +++ b/lib/Admin/Controller/ApiClient/Delete.php @@ -27,7 +27,7 @@ public function __construct(private ApiClientService $service, private UserServi } #[Route(path: 'users/{userId}/api-clients/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $userId, string $id) : Response + public function __invoke(string $userId, string $id): Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -43,6 +43,7 @@ public function __invoke(string $userId, string $id) : Response } $this->service->remove($client); $this->addFlash('info', 'sas.page.api_client.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/ApiClient/Download.php b/lib/Admin/Controller/ApiClient/Download.php index f69aebfb..115b9e42 100755 --- a/lib/Admin/Controller/ApiClient/Download.php +++ b/lib/Admin/Controller/ApiClient/Download.php @@ -27,7 +27,7 @@ public function __construct(private ApiClientService $service, private UserServi } #[Route(path: '/users/{userId}/api-clients/download', name: Download::class, methods: ['GET'])] - public function __invoke(string $userId) : Response + public function __invoke(string $userId): Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -46,6 +46,7 @@ public function __invoke(string $userId) : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'api-clients', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/ApiClient/Main.php b/lib/Admin/Controller/ApiClient/Main.php index 35d37793..26d0a7d7 100755 --- a/lib/Admin/Controller/ApiClient/Main.php +++ b/lib/Admin/Controller/ApiClient/Main.php @@ -36,7 +36,7 @@ public function __construct( } #[Route(path: '/users/{userId}/api-clients', name: Main::class, methods: ['GET', 'POST'], defaults: ['userId' => '2e0cac45-822f-4b97-95f1-9516ad824ec1'])] - public function __invoke(Request $request, string $userId) : Response + public function __invoke(Request $request, string $userId): Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -57,6 +57,7 @@ public function __invoke(Request $request, string $userId) : Response } $class = new ReflectionClass(ApiClient::class); $context = StringUtil::lowercase($class->getShortName()); + return $this->render(sprintf('%s/all.html.twig', $context), [ 'page_title' => 'sas.page.api_client.list', 'context' => $context, diff --git a/lib/Admin/Controller/ApiClient/Report.php b/lib/Admin/Controller/ApiClient/Report.php index a6a7730e..3ff8648f 100755 --- a/lib/Admin/Controller/ApiClient/Report.php +++ b/lib/Admin/Controller/ApiClient/Report.php @@ -32,7 +32,7 @@ public function __construct(private ApiClientRequestService $service, private Us } #[Route(path: '/users/{userId}/api-clients/{id}/logs', name: Report::class, methods: ['GET'])] - public function __invoke(Request $request, string $userId, string $id) : Response + public function __invoke(Request $request, string $userId, string $id): Response { $user = $this->userService->get($userId); if (!$user instanceof UserInterface) { @@ -41,6 +41,7 @@ public function __invoke(Request $request, string $userId, string $id) : Respons return new RedirectResponse($this->generateUrl(GetAllUser::class)); } $class = new ReflectionClass(ApiClientRequest::class); + return $this->render('apiclient/report.html.twig', [ 'page_title' => 'sas.page.api_client.report', 'id' => $id, diff --git a/lib/Admin/Controller/Cron/Audit.php b/lib/Admin/Controller/Cron/Audit.php index 7d98e675..883c611f 100755 --- a/lib/Admin/Controller/Cron/Audit.php +++ b/lib/Admin/Controller/Cron/Audit.php @@ -32,7 +32,7 @@ public function __construct(private CronService $service, private AuditService $ * @throws InvalidArgumentException */ #[Route(path: '/crons/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.cron.not_found'); @@ -44,6 +44,7 @@ public function __invoke(string $id) : Response return new RedirectResponse($this->generateUrl(Main::class)); } + return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Cron::class)); } } diff --git a/lib/Admin/Controller/Cron/Delete.php b/lib/Admin/Controller/Cron/Delete.php index 688aef18..aea795ee 100755 --- a/lib/Admin/Controller/Cron/Delete.php +++ b/lib/Admin/Controller/Cron/Delete.php @@ -24,7 +24,7 @@ public function __construct(private CronService $service) } #[Route(path: '/crons/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { @@ -34,6 +34,7 @@ public function __invoke(string $id) : Response } $this->service->remove($cron); $this->addFlash('info', 'sas.page.cron.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Cron/Download.php b/lib/Admin/Controller/Cron/Download.php index 1764fdde..3f7cee67 100755 --- a/lib/Admin/Controller/Cron/Download.php +++ b/lib/Admin/Controller/Cron/Download.php @@ -24,7 +24,7 @@ public function __construct(private CronService $service, private SerializerInte } #[Route(path: '/crons/download', name: Download::class, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { $records = $this->service->total(); if (10000 < $records) { @@ -37,6 +37,7 @@ public function __invoke() : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'crons', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/Cron/Get.php b/lib/Admin/Controller/Cron/Get.php index 2633b188..d81788f8 100755 --- a/lib/Admin/Controller/Cron/Get.php +++ b/lib/Admin/Controller/Cron/Get.php @@ -30,7 +30,7 @@ public function __construct(private CronService $service, private AuditService $ } #[Route(path: '/crons/{id}', name: Get::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { @@ -42,6 +42,7 @@ public function __invoke(string $id) : Response if ($this->reader->getProvider()->isAuditable(Cron::class)) { $audit = $this->audit->getAudits($cron, $id, 1); } + return $this->renderDetail($audit, new ReflectionClass(Cron::class)); } } diff --git a/lib/Admin/Controller/Cron/Main.php b/lib/Admin/Controller/Cron/Main.php index b6a10b71..e6f46280 100755 --- a/lib/Admin/Controller/Cron/Main.php +++ b/lib/Admin/Controller/Cron/Main.php @@ -28,7 +28,7 @@ public function __construct(private CronService $service, Paginator $paginator) } #[Route(path: '/crons', name: Main::class, methods: ['GET', 'POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $cron = new Cron(); if ($request->isMethod(Request::METHOD_POST)) { @@ -52,6 +52,7 @@ public function __invoke(Request $request) : Response $this->addFlash('info', 'sas.page.cron.saved'); } } + return $this->renderList($form, $request, new ReflectionClass(Cron::class)); } } diff --git a/lib/Admin/Controller/Cron/Put.php b/lib/Admin/Controller/Cron/Put.php index 60677831..c5f66d30 100755 --- a/lib/Admin/Controller/Cron/Put.php +++ b/lib/Admin/Controller/Cron/Put.php @@ -25,13 +25,14 @@ public function __construct(private CronService $service) } #[Route(path: '/crons/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { $this->addFlash('error', 'sas.page.cron.not_found'); } $this->addFlash('id', $cron->getId()); + return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/Cron/Report.php b/lib/Admin/Controller/Cron/Report.php index 217668db..11c567ed 100755 --- a/lib/Admin/Controller/Cron/Report.php +++ b/lib/Admin/Controller/Cron/Report.php @@ -29,10 +29,11 @@ public function __construct(private CronReportService $service, private Paginato } #[Route(path: '/crons/{id}/logs', name: Report::class, methods: ['GET'], priority: -27)] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $class = new ReflectionClass(CronReport::class); $request->query->set($this->settingService->getPerPageField(), 10); + return $this->render('cron/report.html.twig', [ 'page_title' => 'sas.page.cron_report.list', 'id' => $id, diff --git a/lib/Admin/Controller/Cron/Run.php b/lib/Admin/Controller/Cron/Run.php index fc5dd507..5b554612 100755 --- a/lib/Admin/Controller/Cron/Run.php +++ b/lib/Admin/Controller/Cron/Run.php @@ -28,7 +28,7 @@ public function __construct(private CronService $service, private KernelInterfac } #[Route(path: '/crons/{id}/run', name: Run::class, methods: ['GET'], priority: -17)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $cron = $this->service->get($id); if (!$cron instanceof CronInterface) { @@ -49,6 +49,7 @@ public function __invoke(string $id) : Response } else { $this->addFlash('error', 'sas.page.cron.run_failed'); } + return new RedirectResponse($this->generateUrl(Get::class, ['id' => $id])); } } diff --git a/lib/Admin/Controller/DashboardController.php b/lib/Admin/Controller/DashboardController.php index f91dcdb0..67e13bf7 100755 --- a/lib/Admin/Controller/DashboardController.php +++ b/lib/Admin/Controller/DashboardController.php @@ -15,7 +15,7 @@ final class DashboardController extends Base { #[Route(path: '/', name: AdminContext::ADMIN_ROUTE, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { return $this->render('dashboard/layout.html.twig', ['page_title' => 'sas.page.dashboard']); } diff --git a/lib/Admin/Controller/Group/Audit.php b/lib/Admin/Controller/Group/Audit.php index 444493ea..42e19411 100755 --- a/lib/Admin/Controller/Group/Audit.php +++ b/lib/Admin/Controller/Group/Audit.php @@ -32,7 +32,7 @@ public function __construct(private GroupService $service, private AuditService * @throws InvalidArgumentException */ #[Route(path: '/groups/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.group.not_found'); @@ -44,6 +44,7 @@ public function __invoke(string $id) : Response return new RedirectResponse($this->generateUrl(Main::class)); } + return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Group::class)); } } diff --git a/lib/Admin/Controller/Group/Delete.php b/lib/Admin/Controller/Group/Delete.php index 8e0282bd..9a23fd03 100755 --- a/lib/Admin/Controller/Group/Delete.php +++ b/lib/Admin/Controller/Group/Delete.php @@ -24,7 +24,7 @@ public function __construct(private GroupService $service) } #[Route(path: '/groups/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $group = $this->service->get($id); if (!$group instanceof GroupInterface) { @@ -34,6 +34,7 @@ public function __invoke(string $id) : Response } $this->service->remove($group); $this->addFlash('info', 'sas.page.group.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Group/Download.php b/lib/Admin/Controller/Group/Download.php index 8c5b46dc..9822b041 100755 --- a/lib/Admin/Controller/Group/Download.php +++ b/lib/Admin/Controller/Group/Download.php @@ -24,7 +24,7 @@ public function __construct(private GroupService $service, private SerializerInt } #[Route(path: '/groups/download', name: Download::class, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { $records = $this->service->total(); if (10000 < $records) { @@ -37,6 +37,7 @@ public function __invoke() : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'groups', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/Group/Get.php b/lib/Admin/Controller/Group/Get.php index d03b7bef..e27cba29 100755 --- a/lib/Admin/Controller/Group/Get.php +++ b/lib/Admin/Controller/Group/Get.php @@ -30,7 +30,7 @@ public function __construct(private GroupService $service, private AuditService } #[Route(path: '/groups/{id}', name: Get::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $group = $this->service->get($id); if (!$group instanceof GroupInterface) { @@ -42,6 +42,7 @@ public function __invoke(string $id) : Response if ($this->reader->getProvider()->isAuditable(Group::class)) { $audit = $this->audit->getAudits($group, $id, 1); } + return $this->renderDetail($audit, new ReflectionClass(Group::class)); } } diff --git a/lib/Admin/Controller/Group/Main.php b/lib/Admin/Controller/Group/Main.php index a63c9dea..49d27798 100755 --- a/lib/Admin/Controller/Group/Main.php +++ b/lib/Admin/Controller/Group/Main.php @@ -28,7 +28,7 @@ public function __construct(private GroupService $service, Paginator $paginator) } #[Route(path: '/groups', name: Main::class, methods: ['GET', 'POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $group = new Group(); if ($request->isMethod(Request::METHOD_POST)) { @@ -52,6 +52,7 @@ public function __invoke(Request $request) : Response $this->addFlash('info', 'sas.page.group.saved'); } } + return $this->renderList($form, $request, new ReflectionClass(Group::class)); } } diff --git a/lib/Admin/Controller/Group/Permission.php b/lib/Admin/Controller/Group/Permission.php index 1cd6e979..e607d4b0 100755 --- a/lib/Admin/Controller/Group/Permission.php +++ b/lib/Admin/Controller/Group/Permission.php @@ -36,7 +36,7 @@ public function __construct( } #[Route(path: '/groups/{id}/permissions', name: Permission::class, methods: ['GET'])] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $group = $this->groupService->get($id); if (!$group instanceof GroupInterface) { @@ -46,6 +46,7 @@ public function __invoke(Request $request, string $id) : Response } $request->query->set($this->settingService->getPerPageField(), 10); $class = new ReflectionClass(Entity::class); + return $this->render('group/permission.html.twig', [ 'page_title' => 'sas.page.permission.list', 'group' => $group, diff --git a/lib/Admin/Controller/Group/PermissionPut.php b/lib/Admin/Controller/Group/PermissionPut.php index 5cba53d8..54142040 100755 --- a/lib/Admin/Controller/Group/PermissionPut.php +++ b/lib/Admin/Controller/Group/PermissionPut.php @@ -28,7 +28,7 @@ public function __construct(private GroupService $groupService, private Permissi } #[Route(path: '/groups/{groupId}/permissions/{id}', name: PermissionPut::class, methods: ['POST'])] - public function __invoke(Request $request, string $groupId, string $id) : Response + public function __invoke(Request $request, string $groupId, string $id): Response { $group = $this->groupService->get($groupId); if (!$group) { @@ -63,6 +63,7 @@ public function __invoke(Request $request, string $groupId, string $id) : Respon } $this->service->save($permission); $this->addFlash('info', 'sas.page.permission.saved'); + return new RedirectResponse($this->generateUrl(GetPermission::class, ['id' => $groupId])); } } diff --git a/lib/Admin/Controller/Group/Put.php b/lib/Admin/Controller/Group/Put.php index b0ff9164..c7eb0cde 100755 --- a/lib/Admin/Controller/Group/Put.php +++ b/lib/Admin/Controller/Group/Put.php @@ -25,7 +25,7 @@ public function __construct(private GroupService $service) } #[Route(path: '/groups/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $group = $this->service->get($id); if (!$group instanceof GroupInterface) { @@ -34,6 +34,7 @@ public function __invoke(Request $request, string $id) : Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } $this->addFlash('id', $group->getId()); + return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/LoginController.php b/lib/Admin/Controller/LoginController.php index cb049846..5411887b 100755 --- a/lib/Admin/Controller/LoginController.php +++ b/lib/Admin/Controller/LoginController.php @@ -20,7 +20,7 @@ public function __construct(private AuthenticationUtils $authenticationUtils) } #[Route(path: '/login', name: AdminContext::LOGIN_ROUTE, methods: ['GET', 'POST'])] - public function __invoke() : Response + public function __invoke(): Response { return $this->render('layout/login.html.twig', [ 'error' => $this->authenticationUtils->getLastAuthenticationError(), diff --git a/lib/Admin/Controller/Me/CreateApiClient.php b/lib/Admin/Controller/Me/CreateApiClient.php index 05566616..305beebc 100644 --- a/lib/Admin/Controller/Me/CreateApiClient.php +++ b/lib/Admin/Controller/Me/CreateApiClient.php @@ -27,7 +27,7 @@ public function __construct(private UserProviderFactory $userProviderFactory, pr } #[Route(path: '/me/api-clients', name: CreateApiClient::class, methods: ['POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $user = $this->getUser(); if (!$user instanceof User) { @@ -51,6 +51,7 @@ public function __invoke(Request $request) : Response $client->setUser($user); $this->addFlash('info', 'sas.page.api_client.saved'); $this->service->save($client); + return new RedirectResponse($this->generateUrl(Profile::class)); } } diff --git a/lib/Admin/Controller/Me/DeleteApiClient.php b/lib/Admin/Controller/Me/DeleteApiClient.php index 9745a0bc..cda1b874 100644 --- a/lib/Admin/Controller/Me/DeleteApiClient.php +++ b/lib/Admin/Controller/Me/DeleteApiClient.php @@ -4,10 +4,9 @@ namespace KejawenLab\ApiSkeleton\Admin\Controller\Me; -use KejawenLab\ApiSkeleton\ApiClient\Model\ApiClientInterface; use KejawenLab\ApiSkeleton\Admin\AdminContext; use KejawenLab\ApiSkeleton\ApiClient\ApiClientService; -use KejawenLab\ApiSkeleton\Security\Model\UserInterface; +use KejawenLab\ApiSkeleton\ApiClient\Model\ApiClientInterface; use KejawenLab\ApiSkeleton\Security\Service\UserProviderFactory; use KejawenLab\ApiSkeleton\Security\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -26,7 +25,7 @@ public function __construct(private UserProviderFactory $userProviderFactory, pr } #[Route(path: '/me/api-clients/{id}/delete', name: DeleteApiClient::class, methods: ['GET'])] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $user = $this->getUser(); if (!$user instanceof User) { @@ -47,6 +46,7 @@ public function __invoke(Request $request, string $id) : Response } $this->service->remove($client); $this->addFlash('info', 'sas.page.api_client.deleted'); + return new RedirectResponse($this->generateUrl(Profile::class)); } } diff --git a/lib/Admin/Controller/Me/Profile.php b/lib/Admin/Controller/Me/Profile.php index 8d1d4e9a..c6d6c6c6 100755 --- a/lib/Admin/Controller/Me/Profile.php +++ b/lib/Admin/Controller/Me/Profile.php @@ -44,13 +44,12 @@ public function __construct( } /** - * * @throws ReflectionException * @throws NoResultException * @throws NonUniqueResultException */ #[Route(path: '/me', name: Profile::class, methods: ['GET', 'POST'], priority: -1)] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $user = $this->getUser(); if (!$user instanceof User) { @@ -88,6 +87,7 @@ public function __invoke(Request $request) : Response } $class = new ReflectionClass($user::class); $request->query->set($this->setting->getPerPageField(), 17); + return $this->render('profile/view.html.twig', [ 'page_title' => 'sas.page.profile.view', 'context' => StringUtil::lowercase($class->getShortName()), @@ -98,4 +98,4 @@ public function __invoke(Request $request) : Response 'form' => $form->createView(), ]); } -} \ No newline at end of file +} diff --git a/lib/Admin/Controller/Media/Audit.php b/lib/Admin/Controller/Media/Audit.php index 36f2e414..62fe17c4 100755 --- a/lib/Admin/Controller/Media/Audit.php +++ b/lib/Admin/Controller/Media/Audit.php @@ -33,7 +33,7 @@ public function __construct(private MediaService $service, private AuditService * @throws InvalidArgumentException */ #[Route(path: '/medias/{id}/audit', name: Audit::class, methods: ['GET'], priority: 1)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $entity = $this->service->get($id); if (!$entity instanceof MediaInterface) { @@ -46,6 +46,7 @@ public function __invoke(string $id) : Response return new RedirectResponse($this->generateUrl(Main::class)); } + return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Media::class)); } } diff --git a/lib/Admin/Controller/Media/Delete.php b/lib/Admin/Controller/Media/Delete.php index 3682c4d4..52f806fc 100755 --- a/lib/Admin/Controller/Media/Delete.php +++ b/lib/Admin/Controller/Media/Delete.php @@ -24,7 +24,7 @@ public function __construct(private MediaService $service) } #[Route(path: '/medias/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $media = $this->service->get($id); if (!$media instanceof MediaInterface) { @@ -34,6 +34,7 @@ public function __invoke(string $id) : Response } $this->service->remove($media); $this->addFlash('info', 'sas.page.media.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Media/Download.php b/lib/Admin/Controller/Media/Download.php index 26f57ef5..5adba594 100755 --- a/lib/Admin/Controller/Media/Download.php +++ b/lib/Admin/Controller/Media/Download.php @@ -24,7 +24,7 @@ public function __construct(private MediaService $service, private SerializerInt } #[Route(path: '/medias/download', name: Download::class, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { $records = $this->service->total(); if (10000 < $records) { @@ -37,6 +37,7 @@ public function __invoke() : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'medias', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/Media/Get.php b/lib/Admin/Controller/Media/Get.php index 4b77150c..b363a8ee 100755 --- a/lib/Admin/Controller/Media/Get.php +++ b/lib/Admin/Controller/Media/Get.php @@ -29,7 +29,7 @@ public function __construct(private MediaService $service, private PropertyMappi } #[Route(path: '/medias/{path}', name: Get::class, methods: ['GET'], requirements: ['path' => '.+'])] - public function __invoke(Request $request, string $path) : Response + public function __invoke(Request $request, string $path): Response { $path = explode('/', $path); if (MediaInterface::PUBLIC_FIELD === $path[0]) { @@ -54,6 +54,7 @@ public function __invoke(Request $request, string $path) : Response if ($request->query->get('f')) { $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $file->getFilename()); } + return $response; } } diff --git a/lib/Admin/Controller/Media/Main.php b/lib/Admin/Controller/Media/Main.php index 83d54663..249b3ba1 100755 --- a/lib/Admin/Controller/Media/Main.php +++ b/lib/Admin/Controller/Media/Main.php @@ -28,7 +28,7 @@ public function __construct(private MediaService $service, Paginator $paginator) } #[Route(path: '/medias', name: Main::class, methods: ['GET', 'POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $media = new Media(); $form = $this->createForm(MediaType::class, $media); @@ -39,6 +39,7 @@ public function __invoke(Request $request) : Response $this->addFlash('info', 'sas.page.media.saved'); } } + return $this->renderList($form, $request, new ReflectionClass(Media::class)); } } diff --git a/lib/Admin/Controller/Menu/Audit.php b/lib/Admin/Controller/Menu/Audit.php index 1cd1e1bf..59191458 100755 --- a/lib/Admin/Controller/Menu/Audit.php +++ b/lib/Admin/Controller/Menu/Audit.php @@ -32,7 +32,7 @@ public function __construct(private MenuService $service, private AuditService $ * @throws InvalidArgumentException */ #[Route(path: '/menus/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.menu.not_found'); @@ -44,6 +44,7 @@ public function __invoke(string $id) : Response return new RedirectResponse($this->generateUrl(Main::class)); } + return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Menu::class)); } } diff --git a/lib/Admin/Controller/Menu/Delete.php b/lib/Admin/Controller/Menu/Delete.php index 4a33c753..e417570d 100755 --- a/lib/Admin/Controller/Menu/Delete.php +++ b/lib/Admin/Controller/Menu/Delete.php @@ -24,7 +24,7 @@ public function __construct(private MenuService $service) } #[Route(path: '/menus/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $menu = $this->service->get($id); if (!$menu instanceof MenuInterface) { @@ -34,6 +34,7 @@ public function __invoke(string $id) : Response } $this->service->remove($menu); $this->addFlash('info', 'sas.page.menu.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Menu/Download.php b/lib/Admin/Controller/Menu/Download.php index a1b2a0db..8975b6c3 100755 --- a/lib/Admin/Controller/Menu/Download.php +++ b/lib/Admin/Controller/Menu/Download.php @@ -24,7 +24,7 @@ public function __construct(private MenuService $service, private SerializerInte } #[Route(path: '/menus/download', name: Download::class, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { $records = $this->service->total(); if (10000 < $records) { @@ -37,6 +37,7 @@ public function __invoke() : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'menus', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/Menu/Get.php b/lib/Admin/Controller/Menu/Get.php index 6abdf01c..bafa1f01 100755 --- a/lib/Admin/Controller/Menu/Get.php +++ b/lib/Admin/Controller/Menu/Get.php @@ -30,7 +30,7 @@ public function __construct(private MenuService $service, private AuditService $ } #[Route(path: '/menus/{id}', name: Get::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $menu = $this->service->get($id); if (!$menu instanceof MenuInterface) { @@ -42,6 +42,7 @@ public function __invoke(string $id) : Response if ($this->reader->getProvider()->isAuditable(Menu::class)) { $audit = $this->audit->getAudits($menu, $id, 1); } + return $this->renderDetail($audit, new ReflectionClass(Menu::class)); } } diff --git a/lib/Admin/Controller/Menu/Main.php b/lib/Admin/Controller/Menu/Main.php index d65c87c2..6f3bf9fe 100755 --- a/lib/Admin/Controller/Menu/Main.php +++ b/lib/Admin/Controller/Menu/Main.php @@ -28,7 +28,7 @@ public function __construct(private MenuService $service, Paginator $paginator) } #[Route(path: '/menus', name: Main::class, methods: ['GET', 'POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $menu = new Menu(); if ($request->isMethod(Request::METHOD_POST)) { @@ -54,6 +54,7 @@ public function __invoke(Request $request) : Response $form = $this->createForm(MenuType::class); } } + return $this->renderList($form, $request, new ReflectionClass(Menu::class)); } } diff --git a/lib/Admin/Controller/Menu/Put.php b/lib/Admin/Controller/Menu/Put.php index 444adaf2..03d9424a 100755 --- a/lib/Admin/Controller/Menu/Put.php +++ b/lib/Admin/Controller/Menu/Put.php @@ -25,7 +25,7 @@ public function __construct(private MenuService $service) } #[Route(path: '/menus/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $menu = $this->service->get($id); if (!$menu instanceof MenuInterface) { @@ -34,6 +34,7 @@ public function __invoke(Request $request, string $id) : Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } $this->addFlash('id', $menu->getId()); + return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/Setting/Audit.php b/lib/Admin/Controller/Setting/Audit.php index 74c949b9..cb50a126 100755 --- a/lib/Admin/Controller/Setting/Audit.php +++ b/lib/Admin/Controller/Setting/Audit.php @@ -32,7 +32,7 @@ public function __construct(private SettingService $service, private AuditServic * @throws InvalidArgumentException */ #[Route(path: '/settings/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.setting.not_found'); @@ -44,6 +44,7 @@ public function __invoke(string $id) : Response return new RedirectResponse($this->generateUrl(Main::class)); } + return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(Setting::class)); } } diff --git a/lib/Admin/Controller/Setting/Delete.php b/lib/Admin/Controller/Setting/Delete.php index 850df737..182c89a5 100755 --- a/lib/Admin/Controller/Setting/Delete.php +++ b/lib/Admin/Controller/Setting/Delete.php @@ -24,7 +24,7 @@ public function __construct(private SettingService $service) } #[Route(path: '/settings/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $setting = $this->service->get($id); if (!$setting instanceof SettingInterface) { @@ -39,6 +39,7 @@ public function __invoke(string $id) : Response } $this->service->remove($setting); $this->addFlash('info', 'sas.page.setting.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/Setting/Download.php b/lib/Admin/Controller/Setting/Download.php index 7f5377ba..17afa90b 100755 --- a/lib/Admin/Controller/Setting/Download.php +++ b/lib/Admin/Controller/Setting/Download.php @@ -24,7 +24,7 @@ public function __construct(private SettingService $service, private SerializerI } #[Route(path: '/settings/download', name: Download::class, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { $records = $this->service->total(); if (10000 < $records) { @@ -37,6 +37,7 @@ public function __invoke() : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'settings', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/Setting/Get.php b/lib/Admin/Controller/Setting/Get.php index cc80e472..84de4753 100755 --- a/lib/Admin/Controller/Setting/Get.php +++ b/lib/Admin/Controller/Setting/Get.php @@ -30,7 +30,7 @@ public function __construct(private SettingService $service, private AuditServic } #[Route(path: '/settings/{id}', name: Get::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $setting = $this->service->get($id); if (!$setting instanceof SettingInterface) { @@ -42,6 +42,7 @@ public function __invoke(string $id) : Response if ($this->reader->getProvider()->isAuditable(Setting::class)) { $audit = $this->audit->getAudits($setting, $id, 1); } + return $this->renderDetail($audit, new ReflectionClass(Setting::class)); } } diff --git a/lib/Admin/Controller/Setting/Main.php b/lib/Admin/Controller/Setting/Main.php index 09421b8b..c12d560e 100755 --- a/lib/Admin/Controller/Setting/Main.php +++ b/lib/Admin/Controller/Setting/Main.php @@ -28,7 +28,7 @@ public function __construct(private SettingService $service, Paginator $paginato } #[Route(path: '/settings', name: Main::class, methods: ['GET', 'POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $setting = new Setting(); if ($request->isMethod(Request::METHOD_POST)) { @@ -54,6 +54,7 @@ public function __invoke(Request $request) : Response $form = $this->createForm(SettingType::class); } } + return $this->renderList($form, $request, new ReflectionClass(Setting::class)); } } diff --git a/lib/Admin/Controller/Setting/Put.php b/lib/Admin/Controller/Setting/Put.php index aede85dd..2b3fed9c 100755 --- a/lib/Admin/Controller/Setting/Put.php +++ b/lib/Admin/Controller/Setting/Put.php @@ -25,7 +25,7 @@ public function __construct(private SettingService $service) } #[Route(path: '/settings/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $setting = $this->service->get($id); if (!$setting instanceof SettingInterface) { @@ -34,6 +34,7 @@ public function __invoke(Request $request, string $id) : Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } $this->addFlash('id', $setting->getId()); + return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Admin/Controller/User/Audit.php b/lib/Admin/Controller/User/Audit.php index d04d5099..42a78d37 100755 --- a/lib/Admin/Controller/User/Audit.php +++ b/lib/Admin/Controller/User/Audit.php @@ -32,7 +32,7 @@ public function __construct(private UserService $service, private AuditService $ * @throws InvalidArgumentException */ #[Route(path: '/users/{id}/audit', name: Audit::class, methods: ['GET'], priority: -255)] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { if (!$entity = $this->service->get($id)) { $this->addFlash('error', 'sas.page.user.not_found'); @@ -44,6 +44,7 @@ public function __invoke(string $id) : Response return new RedirectResponse($this->generateUrl(Main::class)); } + return $this->renderAudit($this->audit->getAudits($entity, $id), new ReflectionClass(User::class)); } } diff --git a/lib/Admin/Controller/User/Delete.php b/lib/Admin/Controller/User/Delete.php index b2c3d072..5d6ef913 100755 --- a/lib/Admin/Controller/User/Delete.php +++ b/lib/Admin/Controller/User/Delete.php @@ -24,7 +24,7 @@ public function __construct(private UserService $service) } #[Route(path: '/users/{id}/delete', name: Delete::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $user = $this->service->get($id); if (!$user instanceof UserInterface) { @@ -34,6 +34,7 @@ public function __invoke(string $id) : Response } $this->service->remove($user); $this->addFlash('info', 'sas.page.user.deleted'); + return new RedirectResponse($this->generateUrl(Main::class)); } } diff --git a/lib/Admin/Controller/User/Download.php b/lib/Admin/Controller/User/Download.php index 83dac6a5..486ec876 100755 --- a/lib/Admin/Controller/User/Download.php +++ b/lib/Admin/Controller/User/Download.php @@ -24,7 +24,7 @@ public function __construct(private UserService $service, private SerializerInte } #[Route(path: '/users/download', name: Download::class, methods: ['GET'])] - public function __invoke() : Response + public function __invoke(): Response { $records = $this->service->total(); if (10000 < $records) { @@ -37,6 +37,7 @@ public function __invoke() : Response $response->headers->set('Content-type', 'text/csv'); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s_%s.csv"', 'users', date('YmdHis'))); $response->setContent($this->serializer->serialize($this->service->all(), 'csv', ['groups' => 'read'])); + return $response; } } diff --git a/lib/Admin/Controller/User/Get.php b/lib/Admin/Controller/User/Get.php index 2f7d9d9b..1190bddd 100755 --- a/lib/Admin/Controller/User/Get.php +++ b/lib/Admin/Controller/User/Get.php @@ -30,7 +30,7 @@ public function __construct(private UserService $service, private AuditService $ } #[Route(path: '/users/{id}', name: Get::class, methods: ['GET'])] - public function __invoke(string $id) : Response + public function __invoke(string $id): Response { $user = $this->service->get($id); if (!$user instanceof UserInterface) { @@ -42,6 +42,7 @@ public function __invoke(string $id) : Response if ($this->reader->getProvider()->isAuditable(User::class)) { $audit = $this->audit->getAudits($user, $id, 1); } + return $this->renderDetail($audit, new ReflectionClass(User::class)); } } diff --git a/lib/Admin/Controller/User/Main.php b/lib/Admin/Controller/User/Main.php index 83ebeb51..ac5bc9ad 100755 --- a/lib/Admin/Controller/User/Main.php +++ b/lib/Admin/Controller/User/Main.php @@ -28,7 +28,7 @@ public function __construct(private UserService $service, Paginator $paginator) } #[Route(path: '/users', name: Main::class, methods: ['GET', 'POST'])] - public function __invoke(Request $request) : Response + public function __invoke(Request $request): Response { $user = new User(); if ($request->isMethod(Request::METHOD_POST)) { @@ -54,6 +54,7 @@ public function __invoke(Request $request) : Response $form = $this->createForm(UserType::class); } } + return $this->renderList($form, $request, new ReflectionClass(User::class)); } } diff --git a/lib/Admin/Controller/User/Put.php b/lib/Admin/Controller/User/Put.php index ff9bbc17..913d0160 100755 --- a/lib/Admin/Controller/User/Put.php +++ b/lib/Admin/Controller/User/Put.php @@ -25,7 +25,7 @@ public function __construct(private UserService $service) } #[Route(path: '/users/{id}/edit', name: Put::class, methods: ['GET'], priority: 1)] - public function __invoke(Request $request, string $id) : Response + public function __invoke(Request $request, string $id): Response { $user = $this->service->get($id); if (!$user instanceof UserInterface) { @@ -34,6 +34,7 @@ public function __invoke(Request $request, string $id) : Response return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } $this->addFlash('id', $user->getId()); + return new RedirectResponse($this->generateUrl(Main::class, $request->query->all())); } } diff --git a/lib/Audit/AuditItem.php b/lib/Audit/AuditItem.php index f70a62e1..7d767b08 100755 --- a/lib/Audit/AuditItem.php +++ b/lib/Audit/AuditItem.php @@ -11,7 +11,7 @@ final class AuditItem { public function __construct( private string $type, - /** + /* * @var array */ private array $data, diff --git a/lib/Entity/ApiClient.php b/lib/Entity/ApiClient.php index 4c42832b..7193459d 100755 --- a/lib/Entity/ApiClient.php +++ b/lib/Entity/ApiClient.php @@ -4,8 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -27,7 +25,8 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\MaxDepth; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Entity/Cron.php b/lib/Entity/Cron.php index 045add4d..9d688933 100755 --- a/lib/Entity/Cron.php +++ b/lib/Entity/Cron.php @@ -4,8 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -25,7 +23,8 @@ use Ramsey\Uuid\UuidInterface; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Annotation\Groups; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Entity/Group.php b/lib/Entity/Group.php index 8e27734b..35b96638 100755 --- a/lib/Entity/Group.php +++ b/lib/Entity/Group.php @@ -4,8 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -23,7 +21,8 @@ use Ramsey\Uuid\UuidInterface; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Annotation\Groups; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Entity/Media.php b/lib/Entity/Media.php index 9b383f52..6cf267a2 100755 --- a/lib/Entity/Media.php +++ b/lib/Entity/Media.php @@ -4,7 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -20,7 +19,7 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\HttpFoundation\File\File; use Symfony\Component\Serializer\Annotation\Groups; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\NotBlank; use Vich\UploaderBundle\Mapping\Annotation as Vich; /** diff --git a/lib/Entity/Menu.php b/lib/Entity/Menu.php index a68a8cdb..a2263bbb 100755 --- a/lib/Entity/Menu.php +++ b/lib/Entity/Menu.php @@ -4,8 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -26,7 +24,8 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\MaxDepth; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Entity/Permission.php b/lib/Entity/Permission.php index f85a6f3a..c8c19eb6 100755 --- a/lib/Entity/Permission.php +++ b/lib/Entity/Permission.php @@ -4,7 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -23,7 +22,7 @@ use OpenApi\Annotations as OA; use Ramsey\Uuid\UuidInterface; use Symfony\Component\Serializer\Annotation\Groups; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Entity/Setting.php b/lib/Entity/Setting.php index 994188e3..03abba14 100755 --- a/lib/Entity/Setting.php +++ b/lib/Entity/Setting.php @@ -4,8 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\NotBlank; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; use Doctrine\ORM\Mapping\Entity; @@ -23,7 +21,8 @@ use Ramsey\Uuid\UuidInterface; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Annotation\Groups; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Entity/User.php b/lib/Entity/User.php index 0e4b0913..af4f1dd3 100755 --- a/lib/Entity/User.php +++ b/lib/Entity/User.php @@ -4,9 +4,6 @@ namespace KejawenLab\ApiSkeleton\Entity; -use Symfony\Component\Validator\Constraints\NotBlank; -use Symfony\Component\Validator\Constraints\Length; -use Symfony\Component\Validator\Constraints\Email; use DateTimeImmutable; use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\CustomIdGenerator; @@ -28,7 +25,9 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\HttpFoundation\File\File; use Symfony\Component\Serializer\Annotation\Groups; -use Symfony\Component\Validator\Constraints as Assert; +use Symfony\Component\Validator\Constraints\Email; +use Symfony\Component\Validator\Constraints\Length; +use Symfony\Component\Validator\Constraints\NotBlank; /** * @Gedmo\SoftDeleteable(fieldName="deletedAt") diff --git a/lib/Form/MenuType.php b/lib/Form/MenuType.php index 7dd6bb60..253bf748 100755 --- a/lib/Form/MenuType.php +++ b/lib/Form/MenuType.php @@ -24,7 +24,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'required' => false, 'label' => 'sas.form.field.menu.parent', 'class' => Menu::class, - 'choice_label' => fn($menu): string => sprintf('%s - %s', $menu->getCode(), $menu->getName()), + 'choice_label' => fn ($menu): string => sprintf('%s - %s', $menu->getCode(), $menu->getName()), 'attr' => [ 'class' => 'select2', ], diff --git a/lib/Form/UserType.php b/lib/Form/UserType.php index 1e0aff51..c4cc6e99 100755 --- a/lib/Form/UserType.php +++ b/lib/Form/UserType.php @@ -25,7 +25,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $builder->add('group', EntityType::class, [ 'required' => true, 'class' => Group::class, - 'choice_label' => fn($group): string => sprintf('%s - %s', $group->getCode(), $group->getName()), + 'choice_label' => fn ($group): string => sprintf('%s - %s', $group->getCode(), $group->getName()), 'label' => 'sas.form.field.user.group', 'attr' => [ 'class' => 'select2', @@ -35,7 +35,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $builder->add('supervisor', EntityType::class, [ 'required' => false, 'class' => User::class, - 'choice_label' => fn($supervisor): string => sprintf('%s (%s)', $supervisor->getFullName(), $supervisor->getUsername()), + 'choice_label' => fn ($supervisor): string => sprintf('%s (%s)', $supervisor->getFullName(), $supervisor->getUsername()), 'label' => 'sas.form.field.user.supervisor', 'attr' => [ 'class' => 'select2', diff --git a/lib/Generator/GeneratorFactory.php b/lib/Generator/GeneratorFactory.php index 29177b02..8868f3f8 100755 --- a/lib/Generator/GeneratorFactory.php +++ b/lib/Generator/GeneratorFactory.php @@ -14,7 +14,7 @@ final class GeneratorFactory { public function __construct( - /** + /* * @var GeneratorInterface[] */ private iterable $generators diff --git a/lib/Pagination/Paginator.php b/lib/Pagination/Paginator.php index 7d4df8e0..a8f17c40 100755 --- a/lib/Pagination/Paginator.php +++ b/lib/Pagination/Paginator.php @@ -26,7 +26,7 @@ final class Paginator public function __construct( SettingService $setting, - /** + /* * @var QueryExtensionInterface[] */ private iterable $queryExtension, @@ -40,6 +40,7 @@ public function __construct( /** * @throws NonUniqueResultException * @throws NoResultException + * * @return array|array|array */ public function paginate(QueryBuilder $queryBuilder, Request $request, string $class): array diff --git a/lib/Repository/AbstractRepository.php b/lib/Repository/AbstractRepository.php index 41b11949..e90f84de 100755 --- a/lib/Repository/AbstractRepository.php +++ b/lib/Repository/AbstractRepository.php @@ -18,7 +18,7 @@ abstract class AbstractRepository extends ServiceEntityRepository implements Pag protected const MICRO_CACHE = 1; /** - * @return null|mixed + * @return mixed|null */ public function find($id, $lockMode = null, $lockVersion = null) { diff --git a/lib/Repository/GroupRepository.php b/lib/Repository/GroupRepository.php index 1820889c..a8276ec3 100755 --- a/lib/Repository/GroupRepository.php +++ b/lib/Repository/GroupRepository.php @@ -25,7 +25,7 @@ public function __construct(ManagerRegistry $registry) } /** - * @return null|mixed + * @return mixed|null */ public function findByCode(string $code) { diff --git a/lib/Repository/MenuRepository.php b/lib/Repository/MenuRepository.php index 09dc4239..7112e057 100755 --- a/lib/Repository/MenuRepository.php +++ b/lib/Repository/MenuRepository.php @@ -4,8 +4,8 @@ namespace KejawenLab\ApiSkeleton\Repository; -use Iterator; use Doctrine\Persistence\ManagerRegistry; +use Iterator; use KejawenLab\ApiSkeleton\Entity\Menu; use KejawenLab\ApiSkeleton\Security\Model\MenuInterface; use KejawenLab\ApiSkeleton\Security\Model\MenuRepositoryInterface; diff --git a/lib/Repository/PasswordHistoryRepository.php b/lib/Repository/PasswordHistoryRepository.php index eff05fc5..7f8fcb0e 100755 --- a/lib/Repository/PasswordHistoryRepository.php +++ b/lib/Repository/PasswordHistoryRepository.php @@ -4,8 +4,8 @@ namespace KejawenLab\ApiSkeleton\Repository; -use Iterator; use Doctrine\Persistence\ManagerRegistry; +use Iterator; use KejawenLab\ApiSkeleton\Entity\PasswordHistory; use KejawenLab\ApiSkeleton\Security\Model\PasswordHistoryRepositoryInterface; use KejawenLab\ApiSkeleton\Security\Model\UserInterface; diff --git a/lib/Repository/UserRepository.php b/lib/Repository/UserRepository.php index c2014a92..806bec56 100755 --- a/lib/Repository/UserRepository.php +++ b/lib/Repository/UserRepository.php @@ -51,7 +51,7 @@ public function isSupervisor(AppUser $user, AppUser $supervisor): bool return true; } - if ($user->getSupervisor() === null) { + if (null === $user->getSupervisor()) { return $user->getGroup()->getCode() === $this->superAdmin; } diff --git a/lib/Security/AdminAuthenticator.php b/lib/Security/AdminAuthenticator.php index aebb3a91..cfb1d959 100644 --- a/lib/Security/AdminAuthenticator.php +++ b/lib/Security/AdminAuthenticator.php @@ -48,7 +48,7 @@ public function authenticate(Request $request): PassportInterface $request->getSession()->set(Security::LAST_USERNAME, $credentials['username']); return new Passport( - new UserBadge($credentials['username'], fn(string $userIdentifier): User => $this->userProviderFactory->loadUserByUsername($userIdentifier)), + new UserBadge($credentials['username'], fn (string $userIdentifier): User => $this->userProviderFactory->loadUserByUsername($userIdentifier)), new PasswordCredentials($credentials['password']), ); } diff --git a/lib/Security/Authorization/Voter.php b/lib/Security/Authorization/Voter.php index c846a941..763c865c 100755 --- a/lib/Security/Authorization/Voter.php +++ b/lib/Security/Authorization/Voter.php @@ -49,6 +49,7 @@ protected function voteOnAttribute(string $attribute, $subject, TokenInterface $ if (!$permission instanceof PermissionInterface) { return false; } + return match ($attribute) { Permission::ADD => $permission->isAddable(), Permission::EDIT => $permission->isEditable(), diff --git a/lib/Security/Service/GroupPermissionService.php b/lib/Security/Service/GroupPermissionService.php index 0cc62c51..5e47bee7 100755 --- a/lib/Security/Service/GroupPermissionService.php +++ b/lib/Security/Service/GroupPermissionService.php @@ -29,7 +29,7 @@ public function initiate(PermissionableInterface $object): void { foreach ($this->menuRepository->findAll() as $menu) { $permission = $this->permissionRepository->findPermission($object, $menu); - if ($permission === null) { + if (null === $permission) { $permission = new $this->class(); } diff --git a/lib/Security/Service/MenuPermissionService.php b/lib/Security/Service/MenuPermissionService.php index ee278a74..018fea20 100755 --- a/lib/Security/Service/MenuPermissionService.php +++ b/lib/Security/Service/MenuPermissionService.php @@ -29,7 +29,7 @@ public function initiate(PermissionableInterface $object): void { foreach ($this->groupRepository->findAll() as $group) { $permission = $this->permissionRepository->findPermission($group, $object); - if ($permission === null) { + if (null === $permission) { $permission = new $this->class(); } diff --git a/lib/Security/Service/MenuService.php b/lib/Security/Service/MenuService.php index 5b863ac6..e265beb2 100755 --- a/lib/Security/Service/MenuService.php +++ b/lib/Security/Service/MenuService.php @@ -55,6 +55,7 @@ public function hasChildMenu(MenuInterface $menu): bool } $childMenus = $this->permissionRepository->findAllowedChildMenusByGroupAndMenu($group, $menu); + return [] !== iterator_to_array($childMenus, false); } diff --git a/lib/Security/Service/PermissionService.php b/lib/Security/Service/PermissionService.php index e2df9ac7..f8f2d769 100755 --- a/lib/Security/Service/PermissionService.php +++ b/lib/Security/Service/PermissionService.php @@ -36,11 +36,11 @@ public function __construct( PermissionRepositoryInterface $repository, AliasHelper $aliasHelper, private MenuRepositoryInterface $menuRepository, - /** + /* * @var PermissionInitiatorInterface[] */ private iterable $initiators, - /** + /* * @var PermissionRemoverInterface[] */ private iterable $removers, @@ -139,7 +139,7 @@ private function buildMenu(MenuInterface $menu, GroupInterface $group): array $tree['childs'][$key] = $this->buildMenu($permission->getMenu(), $permission->getGroup()); } - $key++; + ++$key; } return $tree; diff --git a/lib/Security/Service/UserProviderFactory.php b/lib/Security/Service/UserProviderFactory.php index 18cb578e..f18fca67 100755 --- a/lib/Security/Service/UserProviderFactory.php +++ b/lib/Security/Service/UserProviderFactory.php @@ -18,7 +18,7 @@ final class UserProviderFactory implements UserProviderInterface { public function __construct( - /** + /* * @var Provider[] */ private iterable $providers, diff --git a/lib/Security/Validator/PasswordHistoryValidator.php b/lib/Security/Validator/PasswordHistoryValidator.php index d228684e..16fa8578 100755 --- a/lib/Security/Validator/PasswordHistoryValidator.php +++ b/lib/Security/Validator/PasswordHistoryValidator.php @@ -42,7 +42,7 @@ public function validate($value, Constraint $constraint): void } $token = $this->tokenStorage->getToken(); - if ($token === null) { + if (null === $token) { throw new UnexpectedValueException($token, TokenInterface::class); } diff --git a/lib/Setting/SettingGroupFactory.php b/lib/Setting/SettingGroupFactory.php index b4c02967..3de76a25 100644 --- a/lib/Setting/SettingGroupFactory.php +++ b/lib/Setting/SettingGroupFactory.php @@ -12,12 +12,11 @@ final class SettingGroupFactory { public function __construct( - /** + /* * @var SettingGroupInterface[] */ private iterable $groups - ) - { + ) { } /**