From 12387ca475da2c1c229beb7df157f73934ce6db1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Sun, 27 Aug 2023 13:58:13 +0200 Subject: [PATCH] Replace elao/enum with native PHP enums --- composer.json | 3 +- composer.lock | 113 ++---------------- config/bundles.php | 1 - config/doctrine/Mod/AbstractMod.orm.xml | 2 +- config/doctrine/Mod/SteamWorkshopMod.orm.xml | 2 +- config/packages/elao_enum.yaml | 11 -- migrations/Version20230827120512.php | 31 +++++ .../Mod/ModOutputDataTransformer.php | 13 +- src/Controller/Dlc/CreateAction.php | 2 +- src/Controller/Dlc/DeleteAction.php | 2 +- src/Controller/Dlc/ListAction.php | 2 +- src/Controller/Dlc/UpdateAction.php | 2 +- src/Controller/Mod/CreateAction.php | 2 +- src/Controller/Mod/DeleteAction.php | 2 +- src/Controller/Mod/ListAction.php | 2 +- src/Controller/Mod/UpdateAction.php | 2 +- src/Controller/ModGroup/CreateAction.php | 2 +- src/Controller/ModGroup/DeleteAction.php | 2 +- src/Controller/ModGroup/ListAction.php | 2 +- src/Controller/ModGroup/UpdateAction.php | 2 +- src/Controller/ModList/CopyAction.php | 2 +- src/Controller/ModList/CreateAction.php | 2 +- src/Controller/ModList/DeleteAction.php | 2 +- src/Controller/ModList/ListAction.php | 2 +- src/Controller/ModList/UpdateAction.php | 2 +- .../ModListPublic/CustomizeAction.php | 2 +- .../ModListPublic/DownloadAction.php | 2 +- src/Controller/Security/ConnectAction.php | 8 +- src/Controller/User/DeleteAction.php | 2 +- src/Controller/User/ListAction.php | 2 +- src/Controller/User/UpdateAction.php | 2 +- src/Controller/UserGroup/CreateAction.php | 2 +- src/Controller/UserGroup/DeleteAction.php | 2 +- src/Controller/UserGroup/ListAction.php | 2 +- src/Controller/UserGroup/UpdateAction.php | 2 +- .../AceInteractionMenuExpansionModFixture.php | 2 +- .../Mod/Required/ArmaForcesModsModFixture.php | 2 +- .../Broken/ArmaForcesAceMedicalModFixture.php | 4 +- .../LegacyArmaForcesModsModFixture.php | 4 +- .../ArmaForcesJbadBuildingFixModFixture.php | 4 +- src/Entity/Mod/Enum/ModSourceEnum.php | 11 +- src/Entity/Mod/Enum/ModStatusEnum.php | 13 +- src/Entity/Mod/Enum/ModTypeEnum.php | 15 +-- .../ModFormDtoDataTransformer.php | 23 ++-- src/Form/Mod/Dto/ModFormDto.php | 16 +-- src/Form/Mod/ModFormType.php | 22 ++-- src/Repository/Mod/ModRepository.php | 12 +- src/Security/Enum/ConnectionsEnum.php | 4 +- src/Security/Enum/PermissionsEnum.php | 64 +++++----- src/Security/Enum/RoleEnum.php | 4 +- src/Security/Enum/ScopeEnum.php | 10 +- src/Security/Traits/UserInterfaceTrait.php | 2 +- src/Security/Voter/Dlc/CreateDlcVoter.php | 2 +- src/Security/Voter/Dlc/DeleteDlcVoter.php | 2 +- src/Security/Voter/Dlc/ListDlcsVoter.php | 2 +- src/Security/Voter/Dlc/UpdateDlcVoter.php | 2 +- src/Security/Voter/Mod/CreateModVoter.php | 2 +- src/Security/Voter/Mod/DeleteModVoter.php | 2 +- src/Security/Voter/Mod/ListModsVoter.php | 2 +- src/Security/Voter/Mod/UpdateModVoter.php | 2 +- .../Voter/ModGroup/CreateModGroupVoter.php | 2 +- .../Voter/ModGroup/DeleteModGroupVoter.php | 2 +- .../Voter/ModGroup/ListModGroupsVoter.php | 2 +- .../Voter/ModGroup/UpdateModGroupVoter.php | 2 +- .../Voter/ModList/ApproveModListVoter.php | 2 +- .../Voter/ModList/CopyModListVoter.php | 2 +- .../Voter/ModList/CreateModListVoter.php | 2 +- .../Voter/ModList/DeleteModListVoter.php | 2 +- .../Voter/ModList/DownloadModListVoter.php | 2 +- .../Voter/ModList/ListModListsVoter.php | 2 +- .../Voter/ModList/UpdateModListVoter.php | 2 +- src/Security/Voter/User/DeleteUserVoter.php | 2 +- src/Security/Voter/User/ListUsersVoter.php | 2 +- src/Security/Voter/User/UpdateUserVoter.php | 2 +- .../Voter/UserGroup/CreateUserGroupVoter.php | 2 +- .../Voter/UserGroup/DeleteUserGroupVoter.php | 2 +- .../Voter/UserGroup/ListUserGroupsVoter.php | 2 +- .../Voter/UserGroup/UpdateUserGroupVoter.php | 2 +- .../DtoToEntityConverter.php | 5 +- src/Service/Mission/Enum/MissionStateEnum.php | 8 +- src/Service/Mission/MissionClient.php | 4 +- .../Mod/ModSourceAndTypeValidator.php | 2 +- symfony.lock | 12 -- templates/_macro/table_macro.html.twig | 14 +-- .../mod_tabs/_mod_tabs_table.html.twig | 2 +- .../_partial/navbar/_navbar_links.html.twig | 24 ++-- templates/dlc/list.html.twig | 6 +- templates/mod/list.html.twig | 6 +- templates/mod_group/list.html.twig | 6 +- templates/mod_list/list.html.twig | 8 +- .../_partial/_optional_mods_tab.html.twig | 2 +- .../_partial/_required_mods_tab.html.twig | 2 +- .../launcher_preset_template.html.twig | 6 +- templates/user/list.html.twig | 4 +- templates/user_group/list.html.twig | 6 +- 95 files changed, 254 insertions(+), 363 deletions(-) delete mode 100644 config/packages/elao_enum.yaml create mode 100644 migrations/Version20230827120512.php diff --git a/composer.json b/composer.json index 160a92df..8b2e953b 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "minimum-stability": "stable", "prefer-stable": true, "require": { - "php": ">=8.1", + "php": ">=8.2", "ext-ctype": "*", "ext-dom": "*", "ext-iconv": "*", @@ -14,7 +14,6 @@ "doctrine/doctrine-fixtures-bundle": "^3.4", "doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/orm": "^2.16", - "elao/enum": "^1.7", "erusev/parsedown": "^1.7", "friendsofsymfony/jsrouting-bundle": "^3.3", "knpuniversity/oauth2-client-bundle": "^2.15", diff --git a/composer.lock b/composer.lock index 8bc263e2..56c4978e 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": "b5bcb9937bcfe18450d601d09656e54e", + "content-hash": "cbdbae7b6f4dcf78ed21ad3dc5b127c9", "packages": [ { "name": "api-platform/core", @@ -1764,99 +1764,6 @@ }, "time": "2022-05-23T21:33:49+00:00" }, - { - "name": "elao/enum", - "version": "v1.17.3", - "source": { - "type": "git", - "url": "https://github.com/Elao/PhpEnums.git", - "reference": "400030fc98d4211ba9b42ebd76b0114cf27fe704" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Elao/PhpEnums/zipball/400030fc98d4211ba9b42ebd76b0114cf27fe704", - "reference": "400030fc98d4211ba9b42ebd76b0114cf27fe704", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=7.3", - "symfony/polyfill-php80": "^1.15" - }, - "require-dev": { - "api-platform/core": "^2.5.1", - "doctrine/annotations": "^1.9", - "doctrine/data-fixtures": "^1.2", - "doctrine/doctrine-bundle": "^1.12|^2.0", - "doctrine/orm": "^2.4", - "ext-pdo_sqlite": "*", - "nelmio/alice": "^3.0", - "symfony/browser-kit": "^4.4|^5.1|^6.0", - "symfony/console": "^4.4|^5.1|^6.0", - "symfony/css-selector": "^4.4|^5.1|^6.0", - "symfony/finder": "^4.4|^5.1|^6.0", - "symfony/form": "^4.4|^5.1|^6.0", - "symfony/framework-bundle": "^4.4|^5.1|^6.0", - "symfony/phpunit-bridge": "^5.3|^6.0", - "symfony/serializer": "^4.4|^5.1|^6.0", - "symfony/translation": "^4.4|^5.1|^6.0", - "symfony/twig-bundle": "^4.4|^5.1|^6.0", - "symfony/validator": "^4.4|^5.1|^6.0", - "symfony/yaml": "^4.4|^5.1|^6.0", - "twig/twig": "^2.12|^3.0" - }, - "bin": [ - "bin/elao-enum-dump-js" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev", - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "files": [ - "src/Bridge/Symfony/VarDumper/Resources/register_caster.php" - ], - "psr-4": { - "Elao\\Enum\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Elao", - "homepage": "https://www.elao.com" - }, - { - "name": "Maxime Steinhausser", - "email": "maxime.steinhausser@gmail.com", - "homepage": "https://github.com/ogizanagi" - } - ], - "description": "Enumerations for PHP and frameworks integrations", - "homepage": "https://github.com/Elao/PhpEnums", - "keywords": [ - "doctrine", - "enum", - "symfony" - ], - "support": { - "issues": "https://github.com/Elao/PhpEnums/issues", - "source": "https://github.com/Elao/PhpEnums/tree/v1.17.3" - }, - "funding": [ - { - "url": "https://github.com/ogizanagi", - "type": "github" - } - ], - "time": "2023-03-13T12:41:41+00:00" - }, { "name": "erusev/parsedown", "version": "1.7.4", @@ -11608,7 +11515,7 @@ "centreon/centreon": "<22.10.0.0-beta1", "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "chriskacerguis/codeigniter-restserver": "<=2.7.1", - "cockpit-hq/cockpit": "<2.6.3", + "cockpit-hq/cockpit": "<=2.6.3", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<3.1.9", "codeigniter4/framework": "<4.3.5", @@ -11624,7 +11531,7 @@ "contao/listing-bundle": ">=4,<4.4.8", "contao/managed-edition": "<=1.5", "cosenary/instagram": "<=2.3", - "craftcms/cms": "<4.4.12", + "craftcms/cms": "<=4.4.14", "croogo/croogo": "<4", "cuyz/valinor": "<0.12", "czproject/git-php": "<4.0.3", @@ -11688,8 +11595,8 @@ "firebase/php-jwt": "<6", "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", - "flarum/core": "<1.7", - "flarum/framework": "<=0.1.0.0-beta7.1", + "flarum/core": "<1.8", + "flarum/framework": "<1.8", "flarum/mentions": "<1.6.3", "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", "flarum/tags": "<=0.1.0.0-beta13", @@ -11779,6 +11686,7 @@ "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "klaviyo/magento2-extension": ">=1,<3", "knplabs/knp-snappy": "<1.4.2", + "kohana/core": "<3.3.3", "krayin/laravel-crm": "<1.2.2", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", @@ -11898,7 +11806,7 @@ "pimcore/customer-management-framework-bundle": "<3.4.2", "pimcore/data-hub": "<1.2.4", "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<10.6.7", + "pimcore/pimcore": "<10.6.8", "pixelfed/pixelfed": "<=0.11.4", "pocketmine/bedrock-protocol": "<8.0.2", "pocketmine/pocketmine-mp": "<4.22.3|>=5,<5.2.1", @@ -12037,7 +11945,7 @@ "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", - "t3/dce": ">=2.2,<2.6.2", + "t3/dce": "<0.11.5|>=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", "tastyigniter/tastyigniter": "<3.3", "tcg/voyager": "<=1.4", @@ -12082,8 +11990,9 @@ "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", "vova07/yii2-fileapi-widget": "<0.1.9", "vrana/adminer": "<4.8.1", + "waldhacker/hcaptcha": "<2.1.2", "wallabag/tcpdf": "<6.2.22", - "wallabag/wallabag": "<=2.5.4", + "wallabag/wallabag": "<=2.6.2", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", "webbuilders-group/silverstripe-kapost-bridge": "<0.4", @@ -13739,7 +13648,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=8.1", + "php": ">=8.2", "ext-ctype": "*", "ext-dom": "*", "ext-iconv": "*" diff --git a/config/bundles.php b/config/bundles.php index 10cc9c3c..97eb7579 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -13,7 +13,6 @@ Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true], - Elao\Enum\Bridge\Symfony\Bundle\ElaoEnumBundle::class => ['all' => true], FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true], Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true], ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true], diff --git a/config/doctrine/Mod/AbstractMod.orm.xml b/config/doctrine/Mod/AbstractMod.orm.xml index a9cc17a8..01c9bfbb 100644 --- a/config/doctrine/Mod/AbstractMod.orm.xml +++ b/config/doctrine/Mod/AbstractMod.orm.xml @@ -7,7 +7,7 @@ - + diff --git a/config/doctrine/Mod/SteamWorkshopMod.orm.xml b/config/doctrine/Mod/SteamWorkshopMod.orm.xml index a6a55e8e..ac3aa644 100644 --- a/config/doctrine/Mod/SteamWorkshopMod.orm.xml +++ b/config/doctrine/Mod/SteamWorkshopMod.orm.xml @@ -5,7 +5,7 @@ https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> - + diff --git a/config/packages/elao_enum.yaml b/config/packages/elao_enum.yaml deleted file mode 100644 index 1239e30d..00000000 --- a/config/packages/elao_enum.yaml +++ /dev/null @@ -1,11 +0,0 @@ -elao_enum: - # Provide the enum classes for which you want to automatically generate & register Doctrine DBAL Types: - # https://github.com/Elao/PhpEnums#doctrine - doctrine: - types: - mod_type_enum: - class: App\Entity\Mod\Enum\ModTypeEnum - mod_status_enum: - class: App\Entity\Mod\Enum\ModStatusEnum - mod_source_enum: - class: App\Entity\Mod\Enum\ModSourceEnum diff --git a/migrations/Version20230827120512.php b/migrations/Version20230827120512.php new file mode 100644 index 00000000..2a2a0472 --- /dev/null +++ b/migrations/Version20230827120512.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE mods CHANGE status status VARCHAR(255) DEFAULT NULL, CHANGE type type VARCHAR(255) DEFAULT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE mods CHANGE type type VARCHAR(255) DEFAULT NULL COMMENT \'(DC2Type:mod_type_enum)\', CHANGE status status VARCHAR(255) DEFAULT NULL COMMENT \'(DC2Type:mod_status_enum)\''); + } +} diff --git a/src/Api/DataTransformer/Mod/ModOutputDataTransformer.php b/src/Api/DataTransformer/Mod/ModOutputDataTransformer.php index 4bcfb9ba..1575e01b 100644 --- a/src/Api/DataTransformer/Mod/ModOutputDataTransformer.php +++ b/src/Api/DataTransformer/Mod/ModOutputDataTransformer.php @@ -21,20 +21,17 @@ public function transform($object, string $to, array $context = []): ModOutput $output->setId($object->getId()->toString()); $output->setName($object->getName()); + $output->setStatus($object->getStatus()?->value); $output->setCreatedAt($object->getCreatedAt()); $output->setLastUpdatedAt($object->getLastUpdatedAt()); - /** @var null|string $status */ - $status = $object->getStatus() ? $object->getStatus()->getValue() : null; - $output->setStatus($status); - if ($object instanceof SteamWorkshopMod) { - $output->setType($object->getType()->getValue()); - $output->setSource(ModSourceEnum::STEAM_WORKSHOP); + $output->setType($object->getType()->value); + $output->setSource(ModSourceEnum::STEAM_WORKSHOP->value); $output->setItemId($object->getItemId()); } elseif ($object instanceof DirectoryMod) { - $output->setType(ModTypeEnum::SERVER_SIDE); - $output->setSource(ModSourceEnum::DIRECTORY); + $output->setType(ModTypeEnum::SERVER_SIDE->value); + $output->setSource(ModSourceEnum::DIRECTORY->value); $output->setDirectory($object->getDirectory()); } diff --git a/src/Controller/Dlc/CreateAction.php b/src/Controller/Dlc/CreateAction.php index dcd68e9c..a3e97f15 100644 --- a/src/Controller/Dlc/CreateAction.php +++ b/src/Controller/Dlc/CreateAction.php @@ -24,7 +24,7 @@ public function __construct( } #[Route('/dlc/create', name: 'app_dlc_create')] - #[IsGranted(PermissionsEnum::DLC_CREATE)] + #[IsGranted(PermissionsEnum::DLC_CREATE->value)] public function __invoke(Request $request): Response { $dlcFormDto = new DlcFormDto(); diff --git a/src/Controller/Dlc/DeleteAction.php b/src/Controller/Dlc/DeleteAction.php index 76dee51e..469c5572 100644 --- a/src/Controller/Dlc/DeleteAction.php +++ b/src/Controller/Dlc/DeleteAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/dlc/{id}/delete', name: 'app_dlc_delete')] - #[IsGranted(PermissionsEnum::DLC_DELETE, 'dlc')] + #[IsGranted(PermissionsEnum::DLC_DELETE->value, 'dlc')] public function __invoke(Dlc $dlc): Response { $this->entityManager->remove($dlc); diff --git a/src/Controller/Dlc/ListAction.php b/src/Controller/Dlc/ListAction.php index 5adb1cd3..f42f3722 100644 --- a/src/Controller/Dlc/ListAction.php +++ b/src/Controller/Dlc/ListAction.php @@ -19,7 +19,7 @@ public function __construct( } #[Route('/dlc/list', name: 'app_dlc_list')] - #[IsGranted(PermissionsEnum::DLC_LIST)] + #[IsGranted(PermissionsEnum::DLC_LIST->value)] public function __invoke(): Response { $dlcs = $this->dlcRepository->findBy([], ['name' => 'ASC']); diff --git a/src/Controller/Dlc/UpdateAction.php b/src/Controller/Dlc/UpdateAction.php index e12fb4c2..9d69015d 100644 --- a/src/Controller/Dlc/UpdateAction.php +++ b/src/Controller/Dlc/UpdateAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/dlc/{id}/update', name: 'app_dlc_update')] - #[IsGranted(PermissionsEnum::DLC_UPDATE, 'dlc')] + #[IsGranted(PermissionsEnum::DLC_UPDATE->value, 'dlc')] public function __invoke(Request $request, Dlc $dlc): Response { $dlcFormDto = $this->dataTransformerRegistry->transformFromEntity(new DlcFormDto(), $dlc); diff --git a/src/Controller/Mod/CreateAction.php b/src/Controller/Mod/CreateAction.php index d9e1998c..1a313e34 100644 --- a/src/Controller/Mod/CreateAction.php +++ b/src/Controller/Mod/CreateAction.php @@ -24,7 +24,7 @@ public function __construct( } #[Route('/mod/create', name: 'app_mod_create')] - #[IsGranted(PermissionsEnum::MOD_CREATE)] + #[IsGranted(PermissionsEnum::MOD_CREATE->value)] public function __invoke(Request $request): Response { $modFormDto = new ModFormDto(); diff --git a/src/Controller/Mod/DeleteAction.php b/src/Controller/Mod/DeleteAction.php index 082285d5..ecdaa2cc 100644 --- a/src/Controller/Mod/DeleteAction.php +++ b/src/Controller/Mod/DeleteAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/mod/{id}/delete', name: 'app_mod_delete')] - #[IsGranted(PermissionsEnum::MOD_DELETE, 'mod')] + #[IsGranted(PermissionsEnum::MOD_DELETE->value, 'mod')] public function __invoke(AbstractMod $mod): Response { $this->entityManager->remove($mod); diff --git a/src/Controller/Mod/ListAction.php b/src/Controller/Mod/ListAction.php index 716aa30f..28684466 100644 --- a/src/Controller/Mod/ListAction.php +++ b/src/Controller/Mod/ListAction.php @@ -19,7 +19,7 @@ public function __construct( } #[Route('/mod/list', name: 'app_mod_list')] - #[IsGranted(PermissionsEnum::MOD_LIST)] + #[IsGranted(PermissionsEnum::MOD_LIST->value)] public function __invoke(): Response { $mods = $this->modRepository->findBy([], ['name' => 'ASC']); diff --git a/src/Controller/Mod/UpdateAction.php b/src/Controller/Mod/UpdateAction.php index efa1ee17..5f0a07da 100644 --- a/src/Controller/Mod/UpdateAction.php +++ b/src/Controller/Mod/UpdateAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/mod/{id}/update', name: 'app_mod_update')] - #[IsGranted(PermissionsEnum::MOD_UPDATE, 'mod')] + #[IsGranted(PermissionsEnum::MOD_UPDATE->value, 'mod')] public function __invoke(Request $request, AbstractMod $mod): Response { $modFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModFormDto(), $mod); diff --git a/src/Controller/ModGroup/CreateAction.php b/src/Controller/ModGroup/CreateAction.php index b28917d0..14e0852b 100644 --- a/src/Controller/ModGroup/CreateAction.php +++ b/src/Controller/ModGroup/CreateAction.php @@ -24,7 +24,7 @@ public function __construct( } #[Route('/mod-group/create', name: 'app_mod_group_create')] - #[IsGranted(PermissionsEnum::MOD_GROUP_CREATE)] + #[IsGranted(PermissionsEnum::MOD_GROUP_CREATE->value)] public function __invoke(Request $request): Response { $modGroupFormDto = new ModGroupFormDto(); diff --git a/src/Controller/ModGroup/DeleteAction.php b/src/Controller/ModGroup/DeleteAction.php index 72b992c6..ff0d431a 100644 --- a/src/Controller/ModGroup/DeleteAction.php +++ b/src/Controller/ModGroup/DeleteAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/mod-group/{name}/delete', name: 'app_mod_group_delete')] - #[IsGranted(PermissionsEnum::MOD_GROUP_DELETE, 'modGroup')] + #[IsGranted(PermissionsEnum::MOD_GROUP_DELETE->value, 'modGroup')] public function __invoke(ModGroup $modGroup): Response { $this->entityManager->remove($modGroup); diff --git a/src/Controller/ModGroup/ListAction.php b/src/Controller/ModGroup/ListAction.php index babd0ad2..ed64f18b 100644 --- a/src/Controller/ModGroup/ListAction.php +++ b/src/Controller/ModGroup/ListAction.php @@ -19,7 +19,7 @@ public function __construct( } #[Route('/mod-group/list', name: 'app_mod_group_list')] - #[IsGranted(PermissionsEnum::MOD_GROUP_LIST)] + #[IsGranted(PermissionsEnum::MOD_GROUP_LIST->value)] public function __invoke(): Response { $modGroups = $this->modGroupRepository->findBy([], ['name' => 'ASC']); diff --git a/src/Controller/ModGroup/UpdateAction.php b/src/Controller/ModGroup/UpdateAction.php index 8af72c1d..455f91df 100644 --- a/src/Controller/ModGroup/UpdateAction.php +++ b/src/Controller/ModGroup/UpdateAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/mod-group/{name}/update', name: 'app_mod_group_update')] - #[IsGranted(PermissionsEnum::MOD_GROUP_UPDATE, 'modGroup')] + #[IsGranted(PermissionsEnum::MOD_GROUP_UPDATE->value, 'modGroup')] public function __invoke(Request $request, ModGroup $modGroup): Response { $modGroupFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModGroupFormDto(), $modGroup); diff --git a/src/Controller/ModList/CopyAction.php b/src/Controller/ModList/CopyAction.php index d5713f53..5ccabfd7 100644 --- a/src/Controller/ModList/CopyAction.php +++ b/src/Controller/ModList/CopyAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/mod-list/{name}/copy', name: 'app_mod_list_copy')] - #[IsGranted(PermissionsEnum::MOD_LIST_COPY, 'modList')] + #[IsGranted(PermissionsEnum::MOD_LIST_COPY->value, 'modList')] public function __invoke(Request $request, ModList $modList): Response { /** @var ModListFormDto $modListFormDto */ diff --git a/src/Controller/ModList/CreateAction.php b/src/Controller/ModList/CreateAction.php index 24334a7e..e506f342 100644 --- a/src/Controller/ModList/CreateAction.php +++ b/src/Controller/ModList/CreateAction.php @@ -24,7 +24,7 @@ public function __construct( } #[Route('/mod-list/create', name: 'app_mod_list_create')] - #[IsGranted(PermissionsEnum::MOD_LIST_CREATE)] + #[IsGranted(PermissionsEnum::MOD_LIST_CREATE->value)] public function __invoke(Request $request): Response { $modListFormDto = new ModListFormDto(); diff --git a/src/Controller/ModList/DeleteAction.php b/src/Controller/ModList/DeleteAction.php index 66b63c6a..f25276f3 100644 --- a/src/Controller/ModList/DeleteAction.php +++ b/src/Controller/ModList/DeleteAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/mod-list/{name}/delete', name: 'app_mod_list_delete')] - #[IsGranted(PermissionsEnum::MOD_LIST_DELETE, 'modList')] + #[IsGranted(PermissionsEnum::MOD_LIST_DELETE->value, 'modList')] public function __invoke(ModList $modList): Response { $this->entityManager->remove($modList); diff --git a/src/Controller/ModList/ListAction.php b/src/Controller/ModList/ListAction.php index 3cac0e49..2f153e9a 100644 --- a/src/Controller/ModList/ListAction.php +++ b/src/Controller/ModList/ListAction.php @@ -19,7 +19,7 @@ public function __construct( } #[Route('/mod-list/list', name: 'app_mod_list_list')] - #[IsGranted(PermissionsEnum::MOD_LIST_LIST)] + #[IsGranted(PermissionsEnum::MOD_LIST_LIST->value)] public function __invoke(): Response { $modLists = $this->modListRepository->findBy([], [ diff --git a/src/Controller/ModList/UpdateAction.php b/src/Controller/ModList/UpdateAction.php index 602225e2..b6e09eb4 100644 --- a/src/Controller/ModList/UpdateAction.php +++ b/src/Controller/ModList/UpdateAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/mod-list/{name}/update', name: 'app_mod_list_update')] - #[IsGranted(PermissionsEnum::MOD_LIST_UPDATE, 'modList')] + #[IsGranted(PermissionsEnum::MOD_LIST_UPDATE->value, 'modList')] public function __invoke(Request $request, ModList $modList): Response { $modListFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); diff --git a/src/Controller/ModListPublic/CustomizeAction.php b/src/Controller/ModListPublic/CustomizeAction.php index 4016574c..71ae4ca4 100644 --- a/src/Controller/ModListPublic/CustomizeAction.php +++ b/src/Controller/ModListPublic/CustomizeAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/mod-list/{name}', name: 'app_mod_list_public_customize', priority: -1)] - #[IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD, 'modList')] + #[IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD->value, 'modList')] public function __invoke(ModList $modList): Response { $optionalMods = $this->modRepository->findIncludedOptionalSteamWorkshopMods($modList); diff --git a/src/Controller/ModListPublic/DownloadAction.php b/src/Controller/ModListPublic/DownloadAction.php index 9c44cabb..e476648c 100644 --- a/src/Controller/ModListPublic/DownloadAction.php +++ b/src/Controller/ModListPublic/DownloadAction.php @@ -21,7 +21,7 @@ public function __construct( } #[Route('/mod-list/{name}/download/{optionalModsJson}', name: 'app_mod_list_public_download', options: ['expose' => true])] - #[IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD, 'modList')] + #[IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD->value, 'modList')] public function __invoke(ModList $modList, string $optionalModsJson = null): Response { $name = sprintf('ArmaForces %s %s', $modList->getName(), (new \DateTimeImmutable())->format('Y_m_d H_i')); diff --git a/src/Controller/Security/ConnectAction.php b/src/Controller/Security/ConnectAction.php index ec4af4a0..2bd768e7 100644 --- a/src/Controller/Security/ConnectAction.php +++ b/src/Controller/Security/ConnectAction.php @@ -23,10 +23,10 @@ public function __invoke(ClientRegistry $clientRegistry): RedirectResponse return $clientRegistry ->getClient('discord_main') ->redirect([ - ScopeEnum::IDENTIFY, - ScopeEnum::EMAIL, - ScopeEnum::GUILDS, - ScopeEnum::CONNECTIONS, + ScopeEnum::IDENTIFY->value, + ScopeEnum::EMAIL->value, + ScopeEnum::GUILDS->value, + ScopeEnum::CONNECTIONS->value, ], []) ; } diff --git a/src/Controller/User/DeleteAction.php b/src/Controller/User/DeleteAction.php index b241baa2..991a1300 100644 --- a/src/Controller/User/DeleteAction.php +++ b/src/Controller/User/DeleteAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/user/{id}/delete', name: 'app_user_delete')] - #[IsGranted(PermissionsEnum::USER_DELETE, 'user')] + #[IsGranted(PermissionsEnum::USER_DELETE->value, 'user')] public function __invoke(User $user): Response { $this->entityManager->remove($user); diff --git a/src/Controller/User/ListAction.php b/src/Controller/User/ListAction.php index c7e1b9e8..11b7976d 100644 --- a/src/Controller/User/ListAction.php +++ b/src/Controller/User/ListAction.php @@ -19,7 +19,7 @@ public function __construct( } #[Route('/user/list', name: 'app_user_list')] - #[IsGranted(PermissionsEnum::USER_LIST)] + #[IsGranted(PermissionsEnum::USER_LIST->value)] public function __invoke(): Response { $users = $this->userRepository->findBy([], ['username' => 'ASC']); diff --git a/src/Controller/User/UpdateAction.php b/src/Controller/User/UpdateAction.php index 56e18f7b..a6a86fca 100644 --- a/src/Controller/User/UpdateAction.php +++ b/src/Controller/User/UpdateAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/user/{id}/update', name: 'app_user_update')] - #[IsGranted(PermissionsEnum::USER_UPDATE, 'user')] + #[IsGranted(PermissionsEnum::USER_UPDATE->value, 'user')] public function __invoke(Request $request, User $user): Response { $userFormDto = $this->dataTransformerRegistry->transformFromEntity(new UserFormDto(), $user); diff --git a/src/Controller/UserGroup/CreateAction.php b/src/Controller/UserGroup/CreateAction.php index 641e25f2..148c5fe1 100644 --- a/src/Controller/UserGroup/CreateAction.php +++ b/src/Controller/UserGroup/CreateAction.php @@ -24,7 +24,7 @@ public function __construct( } #[Route('/user-group/create', name: 'app_user_group_create')] - #[IsGranted(PermissionsEnum::USER_GROUP_CREATE)] + #[IsGranted(PermissionsEnum::USER_GROUP_CREATE->value)] public function __invoke(Request $request): Response { $userGroupFormDto = new UserGroupFormDto(); diff --git a/src/Controller/UserGroup/DeleteAction.php b/src/Controller/UserGroup/DeleteAction.php index 5b5a3d8b..b2521022 100644 --- a/src/Controller/UserGroup/DeleteAction.php +++ b/src/Controller/UserGroup/DeleteAction.php @@ -20,7 +20,7 @@ public function __construct( } #[Route('/user-group/{id}/delete', name: 'app_user_group_delete')] - #[IsGranted(PermissionsEnum::USER_GROUP_DELETE, 'userGroup')] + #[IsGranted(PermissionsEnum::USER_GROUP_DELETE->value, 'userGroup')] public function __invoke(UserGroup $userGroup): Response { $this->entityManager->remove($userGroup); diff --git a/src/Controller/UserGroup/ListAction.php b/src/Controller/UserGroup/ListAction.php index 4c0fd747..ecd3b334 100644 --- a/src/Controller/UserGroup/ListAction.php +++ b/src/Controller/UserGroup/ListAction.php @@ -19,7 +19,7 @@ public function __construct( } #[Route('/user-group/list', name: 'app_user_group_list')] - #[IsGranted(PermissionsEnum::USER_GROUP_LIST)] + #[IsGranted(PermissionsEnum::USER_GROUP_LIST->value)] public function __invoke(): Response { $userGroups = $this->userGroupRepository->findBy([], ['name' => 'ASC']); diff --git a/src/Controller/UserGroup/UpdateAction.php b/src/Controller/UserGroup/UpdateAction.php index 85b77df2..606c70d7 100644 --- a/src/Controller/UserGroup/UpdateAction.php +++ b/src/Controller/UserGroup/UpdateAction.php @@ -25,7 +25,7 @@ public function __construct( } #[Route('/user-group/{id}/update', name: 'app_user_group_update')] - #[IsGranted(PermissionsEnum::USER_GROUP_UPDATE, 'userGroup')] + #[IsGranted(PermissionsEnum::USER_GROUP_UPDATE->value, 'userGroup')] public function __invoke(Request $request, UserGroup $userGroup): Response { $userGroupFormDto = $this->dataTransformerRegistry->transformFromEntity(new UserGroupFormDto(), $userGroup); diff --git a/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php b/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php index 83289c25..ac4d6292 100644 --- a/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php +++ b/src/DataFixtures/Mod/Optional/AceInteractionMenuExpansionModFixture.php @@ -21,7 +21,7 @@ public function load(ObjectManager $manager): void 'ACE Interaction Menu Expansion', null, null, - ModTypeEnum::get(ModTypeEnum::OPTIONAL), + ModTypeEnum::OPTIONAL, 1376867375 ); $mod->setCreatedAt(\DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2020-01-01 00:00:00')); diff --git a/src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php b/src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php index 722d7415..15f637d5 100644 --- a/src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php +++ b/src/DataFixtures/Mod/Required/ArmaForcesModsModFixture.php @@ -21,7 +21,7 @@ public function load(ObjectManager $manager): void 'ArmaForces - Mods', null, null, - ModTypeEnum::get(ModTypeEnum::REQUIRED), + ModTypeEnum::REQUIRED, 1934142795 ); $mod->setCreatedAt(\DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2020-01-01 00:00:00')); diff --git a/src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php b/src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php index a9615320..c008811c 100644 --- a/src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php +++ b/src/DataFixtures/Mod/Required/Broken/ArmaForcesAceMedicalModFixture.php @@ -21,8 +21,8 @@ public function load(ObjectManager $manager): void Uuid::fromString(self::ID), 'ArmaForces - ACE Medical [OBSOLETE]', null, - ModStatusEnum::get(ModStatusEnum::BROKEN), - ModTypeEnum::get(ModTypeEnum::REQUIRED), + ModStatusEnum::BROKEN, + ModTypeEnum::REQUIRED, 1704054308 ); diff --git a/src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php b/src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php index d7c91023..0118979e 100644 --- a/src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php +++ b/src/DataFixtures/Mod/Required/Deprecated/LegacyArmaForcesModsModFixture.php @@ -21,8 +21,8 @@ public function load(ObjectManager $manager): void Uuid::fromString(self::ID), '[legacy] ArmaForces - Mods', null, - ModStatusEnum::get(ModStatusEnum::DEPRECATED), - ModTypeEnum::get(ModTypeEnum::REQUIRED), + ModStatusEnum::DEPRECATED, + ModTypeEnum::REQUIRED, 1639399387 ); diff --git a/src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php b/src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php index 3ebb004d..9282fb24 100644 --- a/src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php +++ b/src/DataFixtures/Mod/Required/Disabled/ArmaForcesJbadBuildingFixModFixture.php @@ -21,8 +21,8 @@ public function load(ObjectManager $manager): void Uuid::fromString(self::ID), '[OBSOLETE] ArmaForces - JBAD Building Fix', null, - ModStatusEnum::get(ModStatusEnum::DISABLED), - ModTypeEnum::get(ModTypeEnum::REQUIRED), + ModStatusEnum::DISABLED, + ModTypeEnum::REQUIRED, 1781106281 ); diff --git a/src/Entity/Mod/Enum/ModSourceEnum.php b/src/Entity/Mod/Enum/ModSourceEnum.php index 1513ed62..1fe94847 100644 --- a/src/Entity/Mod/Enum/ModSourceEnum.php +++ b/src/Entity/Mod/Enum/ModSourceEnum.php @@ -4,14 +4,9 @@ namespace App\Entity\Mod\Enum; -use Elao\Enum\AutoDiscoveredValuesTrait; -use Elao\Enum\Enum; - -final class ModSourceEnum extends Enum +enum ModSourceEnum: string { - use AutoDiscoveredValuesTrait; - - public const STEAM_WORKSHOP = 'steam_workshop'; + case STEAM_WORKSHOP = 'steam_workshop'; - public const DIRECTORY = 'directory'; + case DIRECTORY = 'directory'; } diff --git a/src/Entity/Mod/Enum/ModStatusEnum.php b/src/Entity/Mod/Enum/ModStatusEnum.php index f59f90f2..d162df79 100644 --- a/src/Entity/Mod/Enum/ModStatusEnum.php +++ b/src/Entity/Mod/Enum/ModStatusEnum.php @@ -4,26 +4,21 @@ namespace App\Entity\Mod\Enum; -use Elao\Enum\AutoDiscoveredValuesTrait; -use Elao\Enum\Enum; - -final class ModStatusEnum extends Enum +enum ModStatusEnum: string { - use AutoDiscoveredValuesTrait; - /** * Mod is old, not supported or there is a better alternative available. */ - public const DEPRECATED = 'deprecated'; + case DEPRECATED = 'deprecated'; /** * Mod is broken. Use at your own risk! */ - public const BROKEN = 'broken'; + case BROKEN = 'broken'; /** * Disabled mods are still visible in Mod Lists/Groups but are excluded * from customization view and Launcher Presets. */ - public const DISABLED = 'disabled'; + case DISABLED = 'disabled'; } diff --git a/src/Entity/Mod/Enum/ModTypeEnum.php b/src/Entity/Mod/Enum/ModTypeEnum.php index ebf263b6..8067b2a8 100644 --- a/src/Entity/Mod/Enum/ModTypeEnum.php +++ b/src/Entity/Mod/Enum/ModTypeEnum.php @@ -4,22 +4,17 @@ namespace App\Entity\Mod\Enum; -use Elao\Enum\AutoDiscoveredValuesTrait; -use Elao\Enum\Enum; - -final class ModTypeEnum extends Enum +enum ModTypeEnum: string { - use AutoDiscoveredValuesTrait; - // Loaded by the server ONLY - public const SERVER_SIDE = 'server_side'; + case SERVER_SIDE = 'server_side'; // Loaded by the server. Required from the client - public const REQUIRED = 'required'; + case REQUIRED = 'required'; // Loaded by the server. Optional for client - public const OPTIONAL = 'optional'; + case OPTIONAL = 'optional'; // Loaded by the client ONLY - public const CLIENT_SIDE = 'client_side'; + case CLIENT_SIDE = 'client_side'; } diff --git a/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php b/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php index a7608c7a..b4d815ec 100644 --- a/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php +++ b/src/Form/Mod/DataTransformer/ModFormDtoDataTransformer.php @@ -33,16 +33,13 @@ public function __construct( */ public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $entity = null): AbstractEntity { - /** @var ModSourceEnum $source */ - $source = ModSourceEnum::get($formDto->getSource()); - - /** @var ModTypeEnum $type */ - $type = ModTypeEnum::get($formDto->getType()); + $source = ModSourceEnum::from($formDto->getSource()); + $type = ModTypeEnum::from($formDto->getType()); /** @var null|ModStatusEnum $status */ - $status = $formDto->getStatus() ? ModStatusEnum::get($formDto->getStatus()) : null; + $status = $formDto->getStatus() ? ModStatusEnum::from($formDto->getStatus()) : null; - if ($source->is(ModSourceEnum::STEAM_WORKSHOP)) { + if (ModSourceEnum::STEAM_WORKSHOP === $source) { $itemId = SteamHelper::itemUrlToItemId($formDto->getUrl()); $name = $formDto->getName() ?? substr($this->steamApiClient->getWorkshopItemInfo($itemId)->getName(), 0, 255); @@ -66,7 +63,7 @@ public function transformToEntity(FormDtoInterface $formDto, AbstractEntity $ent ); } - if ($source->is(ModSourceEnum::DIRECTORY)) { + if (ModSourceEnum::DIRECTORY === $source) { if (!$entity instanceof DirectoryMod) { return new DirectoryMod( Uuid::uuid4(), @@ -105,18 +102,18 @@ public function transformFromEntity(FormDtoInterface $formDto, AbstractEntity $e $formDto->setDescription($entity->getDescription()); /** @var null|string $status */ - $status = $entity->getStatus() ? $entity->getStatus()->getValue() : null; + $status = $entity->getStatus() ? $entity->getStatus()->value : null; $formDto->setStatus($status); if ($entity instanceof SteamWorkshopMod) { - $formDto->setType($entity->getType()->getValue()); - $formDto->setSource(ModSourceEnum::STEAM_WORKSHOP); + $formDto->setType($entity->getType()->value); + $formDto->setSource(ModSourceEnum::STEAM_WORKSHOP->value); $itemId = $entity->getItemId(); $url = SteamHelper::itemIdToItemUrl($itemId); $formDto->setUrl($url); } elseif ($entity instanceof DirectoryMod) { - $formDto->setType(ModTypeEnum::SERVER_SIDE); - $formDto->setSource(ModSourceEnum::DIRECTORY); + $formDto->setType(ModTypeEnum::SERVER_SIDE->value); + $formDto->setSource(ModSourceEnum::DIRECTORY->value); $formDto->setDirectory($entity->getDirectory()); } diff --git a/src/Form/Mod/Dto/ModFormDto.php b/src/Form/Mod/Dto/ModFormDto.php index 868562a9..8e2e3094 100644 --- a/src/Form/Mod/Dto/ModFormDto.php +++ b/src/Form/Mod/Dto/ModFormDto.php @@ -14,15 +14,15 @@ use Ramsey\Uuid\UuidInterface; use Symfony\Component\Validator\Constraints as Assert; -#[UniqueSteamWorkshopMod(groups: [ModSourceEnum::STEAM_WORKSHOP])] -#[SteamWorkshopArma3ModUrl(groups: [ModSourceEnum::STEAM_WORKSHOP], errorPath: 'url', nameErrorPath: 'name')] -#[UniqueDirectoryMod(groups: [ModSourceEnum::DIRECTORY])] +#[UniqueSteamWorkshopMod(groups: [ModSourceEnum::STEAM_WORKSHOP->value])] +#[SteamWorkshopArma3ModUrl(groups: [ModSourceEnum::STEAM_WORKSHOP->value], errorPath: 'url', nameErrorPath: 'name')] +#[UniqueDirectoryMod(groups: [ModSourceEnum::DIRECTORY->value])] #[ModSourceAndType(errorPath: 'source')] class ModFormDto extends AbstractFormDto { protected ?UuidInterface $id = null; - #[Assert\NotBlank(groups: [ModSourceEnum::DIRECTORY])] + #[Assert\NotBlank(groups: [ModSourceEnum::DIRECTORY->value])] #[Assert\Length(min: 1, max: 255)] protected ?string $name = null; @@ -35,12 +35,12 @@ class ModFormDto extends AbstractFormDto protected ?string $source = null; - #[Assert\NotBlank(groups: [ModSourceEnum::STEAM_WORKSHOP])] - #[Assert\Length(min: 1, max: 255, groups: [ModSourceEnum::STEAM_WORKSHOP])] + #[Assert\NotBlank(groups: [ModSourceEnum::STEAM_WORKSHOP->value])] + #[Assert\Length(min: 1, max: 255, groups: [ModSourceEnum::STEAM_WORKSHOP->value])] protected ?string $url = null; - #[Assert\NotBlank(groups: [ModSourceEnum::DIRECTORY])] - #[WindowsDirectoryName(groups: [ModSourceEnum::DIRECTORY])] + #[Assert\NotBlank(groups: [ModSourceEnum::DIRECTORY->value])] + #[WindowsDirectoryName(groups: [ModSourceEnum::DIRECTORY->value])] protected ?string $directory = null; public function resolveValidationGroups(): array diff --git a/src/Form/Mod/ModFormType.php b/src/Form/Mod/ModFormType.php index 6cfdb32f..f0d6e8ce 100644 --- a/src/Form/Mod/ModFormType.php +++ b/src/Form/Mod/ModFormType.php @@ -31,10 +31,10 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('source', ChoiceType::class, [ 'label' => 'Mod source', 'choices' => [ - 'Steam Workshop' => ModSourceEnum::STEAM_WORKSHOP, - 'Directory' => ModSourceEnum::DIRECTORY, + 'Steam Workshop' => ModSourceEnum::STEAM_WORKSHOP->value, + 'Directory' => ModSourceEnum::DIRECTORY->value, ], - 'empty_data' => ModSourceEnum::STEAM_WORKSHOP, + 'empty_data' => ModSourceEnum::STEAM_WORKSHOP->value, ]) ->add('url', TextType::class, [ 'label' => 'Steam Workshop URL', @@ -54,12 +54,12 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('type', ChoiceType::class, [ 'label' => 'Mod type', 'choices' => [ - 'Required mod' => ModTypeEnum::REQUIRED, - 'Server side mod' => ModTypeEnum::SERVER_SIDE, - 'Client side mod' => ModTypeEnum::CLIENT_SIDE, - 'Optional mod' => ModTypeEnum::OPTIONAL, + 'Required mod' => ModTypeEnum::REQUIRED->value, + 'Server side mod' => ModTypeEnum::SERVER_SIDE->value, + 'Client side mod' => ModTypeEnum::CLIENT_SIDE->value, + 'Optional mod' => ModTypeEnum::OPTIONAL->value, ], - 'empty_data' => ModTypeEnum::REQUIRED, + 'empty_data' => ModTypeEnum::REQUIRED->value, ]) ; @@ -108,9 +108,9 @@ protected function addChangeStatusType(FormBuilderInterface $builder): void 'label' => 'Mod status', 'required' => false, 'choices' => [ - 'Deprecated' => ModStatusEnum::DEPRECATED, - 'Broken' => ModStatusEnum::BROKEN, - 'Disabled' => ModStatusEnum::DISABLED, + 'Deprecated' => ModStatusEnum::DEPRECATED->value, + 'Broken' => ModStatusEnum::BROKEN->value, + 'Disabled' => ModStatusEnum::DISABLED->value, ], ]) ; diff --git a/src/Repository/Mod/ModRepository.php b/src/Repository/Mod/ModRepository.php index 6615003c..56184996 100644 --- a/src/Repository/Mod/ModRepository.php +++ b/src/Repository/Mod/ModRepository.php @@ -56,9 +56,9 @@ public function findIncludedSteamWorkshopMods(ModList $modList): array ->addSelect('m') ->from(SteamWorkshopMod::class, 'm') ->andWhere($expr->in('m.type', [ - ModTypeEnum::CLIENT_SIDE, - ModTypeEnum::OPTIONAL, - ModTypeEnum::REQUIRED, + ModTypeEnum::CLIENT_SIDE->value, + ModTypeEnum::OPTIONAL->value, + ModTypeEnum::REQUIRED->value, ])) ->addOrderBy('m.name', 'ASC') ; @@ -79,8 +79,8 @@ public function findIncludedOptionalSteamWorkshopMods(ModList $modList): array ->addSelect('m') ->from(SteamWorkshopMod::class, 'm') ->andWhere($expr->in('m.type', [ - ModTypeEnum::CLIENT_SIDE, - ModTypeEnum::OPTIONAL, + ModTypeEnum::CLIENT_SIDE->value, + ModTypeEnum::OPTIONAL->value, ])) ->addOrderBy('m.name', 'ASC') ; @@ -100,7 +100,7 @@ public function findIncludedRequiredSteamWorkshopMods(ModList $modList): array $qb ->addSelect('m') ->from(SteamWorkshopMod::class, 'm') - ->andWhere($expr->eq('m.type', $expr->literal(ModTypeEnum::REQUIRED))) + ->andWhere($expr->eq('m.type', $expr->literal(ModTypeEnum::REQUIRED->value))) ->addOrderBy('m.name', 'ASC') ; $this->applyIncludedModsFilter($qb, $modList); diff --git a/src/Security/Enum/ConnectionsEnum.php b/src/Security/Enum/ConnectionsEnum.php index edcd5d18..7b1a9e60 100644 --- a/src/Security/Enum/ConnectionsEnum.php +++ b/src/Security/Enum/ConnectionsEnum.php @@ -4,7 +4,7 @@ namespace App\Security\Enum; -class ConnectionsEnum +enum ConnectionsEnum: string { - public const STEAM = 'steam'; + case STEAM = 'steam'; } diff --git a/src/Security/Enum/PermissionsEnum.php b/src/Security/Enum/PermissionsEnum.php index 894ccd1c..6da859df 100644 --- a/src/Security/Enum/PermissionsEnum.php +++ b/src/Security/Enum/PermissionsEnum.php @@ -4,37 +4,37 @@ namespace App\Security\Enum; -class PermissionsEnum +enum PermissionsEnum: string { - public const USER_LIST = 'user_list'; - public const USER_UPDATE = 'user_update'; - public const USER_DELETE = 'user_delete'; - - public const USER_GROUP_LIST = 'user_group_list'; - public const USER_GROUP_CREATE = 'user_group_create'; - public const USER_GROUP_UPDATE = 'user_group_update'; - public const USER_GROUP_DELETE = 'user_group_delete'; - - public const MOD_LIST = 'mod_list'; - public const MOD_CREATE = 'mod_create'; - public const MOD_UPDATE = 'mod_update'; - public const MOD_DELETE = 'mod_delete'; - - public const MOD_GROUP_LIST = 'mod_group_list'; - public const MOD_GROUP_CREATE = 'mod_group_create'; - public const MOD_GROUP_UPDATE = 'mod_group_update'; - public const MOD_GROUP_DELETE = 'mod_group_delete'; - - public const DLC_LIST = 'dlc_list'; - public const DLC_CREATE = 'dlc_create'; - public const DLC_UPDATE = 'dlc_update'; - public const DLC_DELETE = 'dlc_delete'; - - public const MOD_LIST_LIST = 'mod_list_list'; - public const MOD_LIST_DOWNLOAD = 'mod_list_download'; - public const MOD_LIST_CREATE = 'mod_list_create'; - public const MOD_LIST_UPDATE = 'mod_list_update'; - public const MOD_LIST_COPY = 'mod_list_copy'; - public const MOD_LIST_DELETE = 'mod_list_delete'; - public const MOD_LIST_APPROVE = 'mod_list_approve'; + case USER_LIST = 'user_list'; + case USER_UPDATE = 'user_update'; + case USER_DELETE = 'user_delete'; + + case USER_GROUP_LIST = 'user_group_list'; + case USER_GROUP_CREATE = 'user_group_create'; + case USER_GROUP_UPDATE = 'user_group_update'; + case USER_GROUP_DELETE = 'user_group_delete'; + + case MOD_LIST = 'mod_list'; + case MOD_CREATE = 'mod_create'; + case MOD_UPDATE = 'mod_update'; + case MOD_DELETE = 'mod_delete'; + + case MOD_GROUP_LIST = 'mod_group_list'; + case MOD_GROUP_CREATE = 'mod_group_create'; + case MOD_GROUP_UPDATE = 'mod_group_update'; + case MOD_GROUP_DELETE = 'mod_group_delete'; + + case DLC_LIST = 'dlc_list'; + case DLC_CREATE = 'dlc_create'; + case DLC_UPDATE = 'dlc_update'; + case DLC_DELETE = 'dlc_delete'; + + case MOD_LIST_LIST = 'mod_list_list'; + case MOD_LIST_DOWNLOAD = 'mod_list_download'; + case MOD_LIST_CREATE = 'mod_list_create'; + case MOD_LIST_UPDATE = 'mod_list_update'; + case MOD_LIST_COPY = 'mod_list_copy'; + case MOD_LIST_DELETE = 'mod_list_delete'; + case MOD_LIST_APPROVE = 'mod_list_approve'; } diff --git a/src/Security/Enum/RoleEnum.php b/src/Security/Enum/RoleEnum.php index 90faf2be..b3c8141d 100644 --- a/src/Security/Enum/RoleEnum.php +++ b/src/Security/Enum/RoleEnum.php @@ -4,7 +4,7 @@ namespace App\Security\Enum; -class RoleEnum +enum RoleEnum: string { - public const ROLE_USER = 'ROLE_USER'; + case ROLE_USER = 'ROLE_USER'; } diff --git a/src/Security/Enum/ScopeEnum.php b/src/Security/Enum/ScopeEnum.php index ed749616..c764b736 100644 --- a/src/Security/Enum/ScopeEnum.php +++ b/src/Security/Enum/ScopeEnum.php @@ -4,10 +4,10 @@ namespace App\Security\Enum; -class ScopeEnum +enum ScopeEnum: string { - public const IDENTIFY = 'identify'; - public const EMAIL = 'email'; - public const GUILDS = 'guilds'; - public const CONNECTIONS = 'connections'; + case IDENTIFY = 'identify'; + case EMAIL = 'email'; + case GUILDS = 'guilds'; + case CONNECTIONS = 'connections'; } diff --git a/src/Security/Traits/UserInterfaceTrait.php b/src/Security/Traits/UserInterfaceTrait.php index c95009d6..bcc9dda8 100644 --- a/src/Security/Traits/UserInterfaceTrait.php +++ b/src/Security/Traits/UserInterfaceTrait.php @@ -24,6 +24,6 @@ public function eraseCredentials(): void public function getRoles(): array { - return [RoleEnum::ROLE_USER]; + return [RoleEnum::ROLE_USER->value]; } } diff --git a/src/Security/Voter/Dlc/CreateDlcVoter.php b/src/Security/Voter/Dlc/CreateDlcVoter.php index b77298f4..fc653aca 100644 --- a/src/Security/Voter/Dlc/CreateDlcVoter.php +++ b/src/Security/Voter/Dlc/CreateDlcVoter.php @@ -14,7 +14,7 @@ class CreateDlcVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::DLC_CREATE === $attribute; + return PermissionsEnum::DLC_CREATE->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Dlc/DeleteDlcVoter.php b/src/Security/Voter/Dlc/DeleteDlcVoter.php index 5cba7cca..829f88e2 100644 --- a/src/Security/Voter/Dlc/DeleteDlcVoter.php +++ b/src/Security/Voter/Dlc/DeleteDlcVoter.php @@ -15,7 +15,7 @@ class DeleteDlcVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::DLC_DELETE === $attribute && $subject instanceof Dlc; + return PermissionsEnum::DLC_DELETE->value === $attribute && $subject instanceof Dlc; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Dlc/ListDlcsVoter.php b/src/Security/Voter/Dlc/ListDlcsVoter.php index 001ab019..7505a5b9 100644 --- a/src/Security/Voter/Dlc/ListDlcsVoter.php +++ b/src/Security/Voter/Dlc/ListDlcsVoter.php @@ -14,7 +14,7 @@ class ListDlcsVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::DLC_LIST === $attribute; + return PermissionsEnum::DLC_LIST->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Dlc/UpdateDlcVoter.php b/src/Security/Voter/Dlc/UpdateDlcVoter.php index aaaaf5cd..bb0f4c3f 100644 --- a/src/Security/Voter/Dlc/UpdateDlcVoter.php +++ b/src/Security/Voter/Dlc/UpdateDlcVoter.php @@ -15,7 +15,7 @@ class UpdateDlcVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::DLC_UPDATE === $attribute && $subject instanceof Dlc; + return PermissionsEnum::DLC_UPDATE->value === $attribute && $subject instanceof Dlc; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Mod/CreateModVoter.php b/src/Security/Voter/Mod/CreateModVoter.php index fff0eab4..20a94803 100644 --- a/src/Security/Voter/Mod/CreateModVoter.php +++ b/src/Security/Voter/Mod/CreateModVoter.php @@ -14,7 +14,7 @@ class CreateModVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_CREATE === $attribute; + return PermissionsEnum::MOD_CREATE->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Mod/DeleteModVoter.php b/src/Security/Voter/Mod/DeleteModVoter.php index fdf84426..7f1f9b99 100644 --- a/src/Security/Voter/Mod/DeleteModVoter.php +++ b/src/Security/Voter/Mod/DeleteModVoter.php @@ -15,7 +15,7 @@ class DeleteModVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_DELETE === $attribute && $subject instanceof AbstractMod; + return PermissionsEnum::MOD_DELETE->value === $attribute && $subject instanceof AbstractMod; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Mod/ListModsVoter.php b/src/Security/Voter/Mod/ListModsVoter.php index 53cd01dd..06823c66 100644 --- a/src/Security/Voter/Mod/ListModsVoter.php +++ b/src/Security/Voter/Mod/ListModsVoter.php @@ -14,7 +14,7 @@ class ListModsVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST === $attribute; + return PermissionsEnum::MOD_LIST->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/Mod/UpdateModVoter.php b/src/Security/Voter/Mod/UpdateModVoter.php index e776f7b3..0664fab7 100644 --- a/src/Security/Voter/Mod/UpdateModVoter.php +++ b/src/Security/Voter/Mod/UpdateModVoter.php @@ -15,7 +15,7 @@ class UpdateModVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_UPDATE === $attribute && $subject instanceof AbstractMod; + return PermissionsEnum::MOD_UPDATE->value === $attribute && $subject instanceof AbstractMod; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModGroup/CreateModGroupVoter.php b/src/Security/Voter/ModGroup/CreateModGroupVoter.php index a4abf6bf..b3fac88d 100644 --- a/src/Security/Voter/ModGroup/CreateModGroupVoter.php +++ b/src/Security/Voter/ModGroup/CreateModGroupVoter.php @@ -14,7 +14,7 @@ class CreateModGroupVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_GROUP_CREATE === $attribute; + return PermissionsEnum::MOD_GROUP_CREATE->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModGroup/DeleteModGroupVoter.php b/src/Security/Voter/ModGroup/DeleteModGroupVoter.php index deb85484..87199642 100644 --- a/src/Security/Voter/ModGroup/DeleteModGroupVoter.php +++ b/src/Security/Voter/ModGroup/DeleteModGroupVoter.php @@ -15,7 +15,7 @@ class DeleteModGroupVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_GROUP_DELETE === $attribute && $subject instanceof ModGroup; + return PermissionsEnum::MOD_GROUP_DELETE->value === $attribute && $subject instanceof ModGroup; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModGroup/ListModGroupsVoter.php b/src/Security/Voter/ModGroup/ListModGroupsVoter.php index 3c64a77f..06468d80 100644 --- a/src/Security/Voter/ModGroup/ListModGroupsVoter.php +++ b/src/Security/Voter/ModGroup/ListModGroupsVoter.php @@ -14,7 +14,7 @@ class ListModGroupsVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_GROUP_LIST === $attribute; + return PermissionsEnum::MOD_GROUP_LIST->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModGroup/UpdateModGroupVoter.php b/src/Security/Voter/ModGroup/UpdateModGroupVoter.php index fc907bc1..b2dbccc3 100644 --- a/src/Security/Voter/ModGroup/UpdateModGroupVoter.php +++ b/src/Security/Voter/ModGroup/UpdateModGroupVoter.php @@ -15,7 +15,7 @@ class UpdateModGroupVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_GROUP_UPDATE === $attribute && $subject instanceof ModGroup; + return PermissionsEnum::MOD_GROUP_UPDATE->value === $attribute && $subject instanceof ModGroup; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/ApproveModListVoter.php b/src/Security/Voter/ModList/ApproveModListVoter.php index ead19f27..d2519062 100644 --- a/src/Security/Voter/ModList/ApproveModListVoter.php +++ b/src/Security/Voter/ModList/ApproveModListVoter.php @@ -14,7 +14,7 @@ class ApproveModListVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_APPROVE === $attribute; + return PermissionsEnum::MOD_LIST_APPROVE->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/CopyModListVoter.php b/src/Security/Voter/ModList/CopyModListVoter.php index ce90a1f3..bee32aca 100644 --- a/src/Security/Voter/ModList/CopyModListVoter.php +++ b/src/Security/Voter/ModList/CopyModListVoter.php @@ -15,7 +15,7 @@ class CopyModListVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_COPY === $attribute && $subject instanceof ModList; + return PermissionsEnum::MOD_LIST_COPY->value === $attribute && $subject instanceof ModList; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/CreateModListVoter.php b/src/Security/Voter/ModList/CreateModListVoter.php index 0ba920de..5c2b89b5 100644 --- a/src/Security/Voter/ModList/CreateModListVoter.php +++ b/src/Security/Voter/ModList/CreateModListVoter.php @@ -14,7 +14,7 @@ class CreateModListVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_CREATE === $attribute; + return PermissionsEnum::MOD_LIST_CREATE->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/DeleteModListVoter.php b/src/Security/Voter/ModList/DeleteModListVoter.php index ffbafa54..a496e3e4 100644 --- a/src/Security/Voter/ModList/DeleteModListVoter.php +++ b/src/Security/Voter/ModList/DeleteModListVoter.php @@ -15,7 +15,7 @@ class DeleteModListVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_DELETE === $attribute && $subject instanceof ModList; + return PermissionsEnum::MOD_LIST_DELETE->value === $attribute && $subject instanceof ModList; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/DownloadModListVoter.php b/src/Security/Voter/ModList/DownloadModListVoter.php index d00b8974..66d6d585 100644 --- a/src/Security/Voter/ModList/DownloadModListVoter.php +++ b/src/Security/Voter/ModList/DownloadModListVoter.php @@ -15,7 +15,7 @@ class DownloadModListVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_DOWNLOAD === $attribute && $subject instanceof ModList; + return PermissionsEnum::MOD_LIST_DOWNLOAD->value === $attribute && $subject instanceof ModList; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/ListModListsVoter.php b/src/Security/Voter/ModList/ListModListsVoter.php index c3e923f1..5c6acf5d 100644 --- a/src/Security/Voter/ModList/ListModListsVoter.php +++ b/src/Security/Voter/ModList/ListModListsVoter.php @@ -14,7 +14,7 @@ class ListModListsVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_LIST === $attribute; + return PermissionsEnum::MOD_LIST_LIST->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/ModList/UpdateModListVoter.php b/src/Security/Voter/ModList/UpdateModListVoter.php index d0832ae1..d8177f47 100644 --- a/src/Security/Voter/ModList/UpdateModListVoter.php +++ b/src/Security/Voter/ModList/UpdateModListVoter.php @@ -15,7 +15,7 @@ class UpdateModListVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::MOD_LIST_UPDATE === $attribute && $subject instanceof ModList; + return PermissionsEnum::MOD_LIST_UPDATE->value === $attribute && $subject instanceof ModList; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/User/DeleteUserVoter.php b/src/Security/Voter/User/DeleteUserVoter.php index d642fd14..0357ba2c 100644 --- a/src/Security/Voter/User/DeleteUserVoter.php +++ b/src/Security/Voter/User/DeleteUserVoter.php @@ -14,7 +14,7 @@ class DeleteUserVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_DELETE === $attribute && $subject instanceof User; + return PermissionsEnum::USER_DELETE->value === $attribute && $subject instanceof User; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/User/ListUsersVoter.php b/src/Security/Voter/User/ListUsersVoter.php index c922c575..6efc8c24 100644 --- a/src/Security/Voter/User/ListUsersVoter.php +++ b/src/Security/Voter/User/ListUsersVoter.php @@ -14,7 +14,7 @@ class ListUsersVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_LIST === $attribute; + return PermissionsEnum::USER_LIST->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/User/UpdateUserVoter.php b/src/Security/Voter/User/UpdateUserVoter.php index 88be8440..f229ad67 100644 --- a/src/Security/Voter/User/UpdateUserVoter.php +++ b/src/Security/Voter/User/UpdateUserVoter.php @@ -14,7 +14,7 @@ class UpdateUserVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_UPDATE === $attribute && $subject instanceof User; + return PermissionsEnum::USER_UPDATE->value === $attribute && $subject instanceof User; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/UserGroup/CreateUserGroupVoter.php b/src/Security/Voter/UserGroup/CreateUserGroupVoter.php index 6212b9d0..c54d6962 100644 --- a/src/Security/Voter/UserGroup/CreateUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/CreateUserGroupVoter.php @@ -14,7 +14,7 @@ class CreateUserGroupVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_GROUP_CREATE === $attribute; + return PermissionsEnum::USER_GROUP_CREATE->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php b/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php index dd54447b..52c46e30 100644 --- a/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/DeleteUserGroupVoter.php @@ -15,7 +15,7 @@ class DeleteUserGroupVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_GROUP_DELETE === $attribute && $subject instanceof UserGroup; + return PermissionsEnum::USER_GROUP_DELETE->value === $attribute && $subject instanceof UserGroup; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/UserGroup/ListUserGroupsVoter.php b/src/Security/Voter/UserGroup/ListUserGroupsVoter.php index 65d65674..9f212f11 100644 --- a/src/Security/Voter/UserGroup/ListUserGroupsVoter.php +++ b/src/Security/Voter/UserGroup/ListUserGroupsVoter.php @@ -14,7 +14,7 @@ class ListUserGroupsVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_GROUP_LIST === $attribute; + return PermissionsEnum::USER_GROUP_LIST->value === $attribute; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php b/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php index d346c4ef..3e696dab 100644 --- a/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php +++ b/src/Security/Voter/UserGroup/UpdateUserGroupVoter.php @@ -15,7 +15,7 @@ class UpdateUserGroupVoter extends Voter { protected function supports(string $attribute, $subject): bool { - return PermissionsEnum::USER_GROUP_UPDATE === $attribute && $subject instanceof UserGroup; + return PermissionsEnum::USER_GROUP_UPDATE->value === $attribute && $subject instanceof UserGroup; } protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool diff --git a/src/Service/LegacyModListImport/DtoToEntityConverter.php b/src/Service/LegacyModListImport/DtoToEntityConverter.php index 55a4b670..90a4c911 100644 --- a/src/Service/LegacyModListImport/DtoToEntityConverter.php +++ b/src/Service/LegacyModListImport/DtoToEntityConverter.php @@ -34,11 +34,8 @@ public function convert(ModCsvEntryDto $modCsvEntryDto): AbstractMod $modType = ModTypeEnum::CLIENT_SIDE; } - /** @var ModTypeEnum $modTypeEnum */ - $modTypeEnum = ModTypeEnum::get($modType); - if ($isSteamWorkshopMod) { - return new SteamWorkshopMod(Uuid::uuid4(), $name, null, null, $modTypeEnum, (int) $id); + return new SteamWorkshopMod(Uuid::uuid4(), $name, null, null, $modType, (int) $id); } return new DirectoryMod(Uuid::uuid4(), $name, null, null, $name); diff --git a/src/Service/Mission/Enum/MissionStateEnum.php b/src/Service/Mission/Enum/MissionStateEnum.php index 4c1cbbe7..1bce9dc5 100644 --- a/src/Service/Mission/Enum/MissionStateEnum.php +++ b/src/Service/Mission/Enum/MissionStateEnum.php @@ -4,9 +4,9 @@ namespace App\Service\Mission\Enum; -class MissionStateEnum +enum MissionStateEnum: string { - public const OPEN = 'Open'; - public const CLOSED = 'Closed'; - public const ARCHIVED = 'Archived'; + case ARCHIVED = 'Archived'; + case OPEN = 'Open'; + case CLOSED = 'Closed'; } diff --git a/src/Service/Mission/MissionClient.php b/src/Service/Mission/MissionClient.php index 4c8955e8..c3bea4a6 100644 --- a/src/Service/Mission/MissionClient.php +++ b/src/Service/Mission/MissionClient.php @@ -74,7 +74,7 @@ public function getArchivedMissions(): array /** @var MissionDto[] $allMissions */ $allMissions = iterator_to_array($this->getMissions()); - return array_filter($allMissions, static fn (MissionDto $mission) => MissionStateEnum::ARCHIVED === $mission->getState()); + return array_filter($allMissions, static fn (MissionDto $mission) => MissionStateEnum::ARCHIVED->value === $mission->getState()); } public function getUpcomingMissions(): array @@ -82,6 +82,6 @@ public function getUpcomingMissions(): array /** @var MissionDto[] $allMissions */ $allMissions = iterator_to_array($this->getMissions()); - return array_filter($allMissions, static fn (MissionDto $mission) => MissionStateEnum::ARCHIVED !== $mission->getState()); + return array_filter($allMissions, static fn (MissionDto $mission) => MissionStateEnum::ARCHIVED->value !== $mission->getState()); } } diff --git a/src/Validator/Mod/ModSourceAndTypeValidator.php b/src/Validator/Mod/ModSourceAndTypeValidator.php index 80d6fe1a..3d8cba21 100644 --- a/src/Validator/Mod/ModSourceAndTypeValidator.php +++ b/src/Validator/Mod/ModSourceAndTypeValidator.php @@ -23,7 +23,7 @@ public function validate(mixed $value, Constraint $constraint): void throw new UnexpectedTypeException($constraint, ModSourceAndType::class); } - if (ModSourceEnum::DIRECTORY === $value->getSource() && ModTypeEnum::SERVER_SIDE === $value->getType()) { + if (ModSourceEnum::DIRECTORY->value === $value->getSource() && ModTypeEnum::SERVER_SIDE->value === $value->getType()) { return; } diff --git a/symfony.lock b/symfony.lock index 56054f53..66ab6544 100644 --- a/symfony.lock +++ b/symfony.lock @@ -73,18 +73,6 @@ "migrations/.gitignore" ] }, - "elao/enum": { - "version": "1.17", - "recipe": { - "repo": "github.com/symfony/recipes-contrib", - "branch": "main", - "version": "1.7", - "ref": "d44e1c8caa4cabcab399724df787de558459dd83" - }, - "files": [ - "config/packages/elao_enum.yaml" - ] - }, "friendsofphp/php-cs-fixer": { "version": "3.23", "recipe": { diff --git a/templates/_macro/table_macro.html.twig b/templates/_macro/table_macro.html.twig index 5860741f..a6c1d2b0 100644 --- a/templates/_macro/table_macro.html.twig +++ b/templates/_macro/table_macro.html.twig @@ -46,11 +46,11 @@ {% macro row_mod_status_icon(mod) %} {% if mod.status is null %} - {% elseif mod.status.is(constant('App\\Entity\\Mod\\Enum\\ModStatusEnum::DEPRECATED')) %} + {% elseif mod.status is constant('App\\Entity\\Mod\\Enum\\ModStatusEnum::DEPRECATED') %} {{ _self.icon('fas fa-skull text-warning', 'Deprecated'|trans) }} - {% elseif mod.status.is(constant('App\\Entity\\Mod\\Enum\\ModStatusEnum::BROKEN')) %} + {% elseif mod.status is constant('App\\Entity\\Mod\\Enum\\ModStatusEnum::BROKEN') %} {{ _self.icon('fas fa-exclamation-triangle text-warning', 'Broken'|trans) }} - {% elseif mod.status.is(constant('App\\Entity\\Mod\\Enum\\ModStatusEnum::DISABLED')) %} + {% elseif mod.status is constant('App\\Entity\\Mod\\Enum\\ModStatusEnum::DISABLED') %} {{ _self.icon('fas fa-times-circle text-danger', 'Disabled'|trans) }} {% endif %} {% endmacro %} @@ -58,13 +58,13 @@ {% macro row_mod_type_translation(mod) %} {% if mod is instance_of('\\App\\Entity\\Mod\\SteamWorkshopMod') %} {# @var mod \App\Entity\Mod\SteamWorkshopMod #} - {% if mod.type.is(constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::SERVER_SIDE')) %} + {% if mod.type is constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::SERVER_SIDE') %} {{ 'Server side mod'|trans }} - {% elseif mod.type.is(constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::REQUIRED')) %} + {% elseif mod.type is constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::REQUIRED') %} {{ 'Required mod'|trans }} - {% elseif mod.type.is(constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::OPTIONAL')) %} + {% elseif mod.type is constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::OPTIONAL') %} {{ 'Optional mod'|trans }} - {% elseif mod.type.is(constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::CLIENT_SIDE')) %} + {% elseif mod.type is constant('App\\Entity\\Mod\\Enum\\ModTypeEnum::CLIENT_SIDE') %} {{ 'Client side mod'|trans }} {% endif %} {% elseif mod is instance_of('\\App\\Entity\\Mod\\DirectoryMod') %} diff --git a/templates/_partial/mod_tabs/_mod_tabs_table.html.twig b/templates/_partial/mod_tabs/_mod_tabs_table.html.twig index f5fe915b..033ea881 100644 --- a/templates/_partial/mod_tabs/_mod_tabs_table.html.twig +++ b/templates/_partial/mod_tabs/_mod_tabs_table.html.twig @@ -18,7 +18,7 @@ {% set mod = form.vars.choices[loop.index0].data %} {% if mod is instance_of('\\App\\Entity\\Mod\\SteamWorkshopMod') %} {# @var mod \App\Entity\Mod\SteamWorkshopMod #} - {% set modType = mod.type.value %} + {% set modType = mod.type %} {% elseif mod is instance_of('\\App\\Entity\\Mod\\DirectoryMod') %} {# @var mod \App\Entity\Mod\DirectoryMod #} {# Treat Directory mods as Server side mods for BC #} diff --git a/templates/_partial/navbar/_navbar_links.html.twig b/templates/_partial/navbar/_navbar_links.html.twig index 7cd7f227..5d7cdeb7 100644 --- a/templates/_partial/navbar/_navbar_links.html.twig +++ b/templates/_partial/navbar/_navbar_links.html.twig @@ -10,31 +10,31 @@ {{ 'Get mods'|trans }} {% if - is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_LIST')) - or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_GROUP_LIST')) - or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::DLC_LIST')) - or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_LIST_LIST')) + is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_LIST').value) + or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_GROUP_LIST').value) + or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::DLC_LIST').value) + or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::MOD_LIST_LIST').value) %} {% endif %} {% if - is_granted(constant('App\\Security\\Enum\\PermissionsEnum::USER_LIST')) - or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::USER_GROUP_LIST')) + is_granted(constant('App\\Security\\Enum\\PermissionsEnum::USER_LIST').value) + or is_granted(constant('App\\Security\\Enum\\PermissionsEnum::USER_GROUP_LIST').value) %}