diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 993c40a..ca6585e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -14,22 +14,24 @@ on:
jobs:
tests:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, MySQL ${{ matrix.mysql }}"
strategy:
fail-fast: false
matrix:
- php: ["8.0"]
- symfony: ["^5.4", "^6.0"]
- sylius: ["~1.11.0", "~1.12.0"]
- node: ["^14.17.x"]
- mysql: ["5.7", "8.0"]
+ php: ["8.0", "8.1", "8.2", "8.3"]
+ symfony: ["^5.4", "^6.4"]
+ sylius: ["~1.12.0", "~1.13.0"]
+ node: ["^18.0", "^20.0"]
+ mysql: ["8.0"]
exclude:
- - sylius: ~1.11.0
- symfony: ^6.0
+ - sylius: "~1.13.0"
+ php: "8.0"
+ - symfony: "^6.4"
+ php: "8.0"
env:
APP_ENV: test
@@ -37,7 +39,7 @@ jobs:
steps:
-
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
-
name: Setup PHP
@@ -50,7 +52,7 @@ jobs:
-
name: Setup Node
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v4
with:
node-version: "${{ matrix.node }}"
@@ -96,7 +98,7 @@ jobs:
-
name: Cache Composer
- uses: actions/cache@v2
+ uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json **/composer.lock') }}
@@ -123,7 +125,7 @@ jobs:
-
name: Get Yarn cache directory
id: yarn-cache
- run: echo "::set-output name=dir::$(yarn cache dir)"
+ run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
-
name: Cache Yarn
@@ -147,8 +149,8 @@ jobs:
-
name: Prepare test application assets
run: |
+ (cd tests/Application && yarn encore dev)
(cd tests/Application && bin/console assets:install public -vvv)
- (cd tests/Application && yarn prod)
-
name: Prepare test application cache
@@ -186,8 +188,8 @@ jobs:
name: Behat logs
path: etc/build/
if-no-files-found: ignore
-
- -
+
+ -
name: Failed build Slack notification
uses: rtCamp/action-slack-notify@v2
if: ${{ failure() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') }}
diff --git a/README.md b/README.md
index 71798dd..69dbbde 100644
--- a/README.md
+++ b/README.md
@@ -43,9 +43,9 @@ This **open-source plugin was developed to help the Sylius community**. If you h
## Installation
```bash
-$ composer require bitbag/blacklist-plugin
+composer require bitbag/blacklist-plugin --no-scripts
```
-
+
Add plugin dependencies to your `config/bundles.php` file:
```php
return [
@@ -92,7 +92,56 @@ class Customer extends BaseCustomer implements CustomerInterface
}
```
-Or this way if you use annotations:
+Define new Entity mapping inside your src/Resources/config/doctrine directory.
+
+```xml
+
+
+
+
+
+
+
+```
+
+Or edit Customer Entity this way if you use attributes:
+
+```php
+fraudStatus;
+ }
+
+ public function setFraudStatus(?string $fraudStatus): void
+ {
+ $this->fraudStatus = $fraudStatus;
+ }
+}
+
+```
+
+Or edit Customer Entity this way if you use annotations:
```php
+ public function getFraudStatus(): ?string
+ {
+ return $this->fraudStatus;
+ }
-
-
-
-
-
+ public function setFraudStatus(?string $fraudStatus): void
+ {
+ $this->fraudStatus = $fraudStatus;
+ }
+}
```
Create also interface, which is implemented by customer entity
@@ -189,7 +230,7 @@ sylius_grid:
bitbag_sylius_blacklist_plugin.ui.blacklisted: Blacklisted
```
-Override Customer form template (`@SyliusAdminBundle\Customer\_form.html.twig`) by adding lines below
+Override Customer form template (`@SyliusAdminBundle\Customer\_form.html.twig` or `@SyliusAdminBundle/Customer/Form/_firstColumn.html.twig`) by adding lines below
```html
@@ -200,34 +241,52 @@ Override Customer form template (`@SyliusAdminBundle\Customer\_form.html.twig`)
Update your database
-```
-$ bin/console doctrine:migrations:migrate
+```bash
+bin/console doctrine:migrations:migrate
```
**Note:** If you are running it on production, add the `-e prod` flag to this command.
+Update your database schema:
+
+```bash
+doctrine:schema:update --dump-sql
+```
+
+If the list includes only changes for updating the database by adding 'fraud_status' you can use:
+
+```bash
+doctrine:schema:update -f
+```
+
+If there are another changes, please make sure they will not destroy your database schema.
+
+## Functionalities
+
+All main functionalities of the plugin are described [here.](doc/functionalities.md)
+
## Customization
### Available services you can [decorate](https://symfony.com/doc/current/service_container/service_decoration.html) and forms you can [extend](http://symfony.com/doc/current/form/create_form_type_extension.html)
Run the below command to see what Symfony services are shared with this plugin:
```bash
-$ bin/console debug:container | grep bitbag_sylius_blacklist_plugin
+bin/console debug:container | grep bitbag_sylius_blacklist_plugin
```
## Testing
```bash
-$ composer install
-$ cd tests/Application
-$ yarn install
-$ yarn build
-$ bin/console assets:install public -e test
-$ bin/console doctrine:schema:create -e test
-$ bin/console server:run 127.0.0.1:8080 -d public -e test
-$ open http://localhost:8080
-$ cd ../..
-$ vendor/bin/behat
-$ vendor/bin/phpspec run
+composer install
+cd tests/Application
+yarn install
+yarn build
+bin/console assets:install public -e test
+bin/console doctrine:schema:create -e test
+bin/console server:run 127.0.0.1:8080 -d public -e test
+open http://localhost:8080
+cd ../..
+vendor/bin/behat
+vendor/bin/phpspec run
```
# About us
diff --git a/composer.json b/composer.json
index 7ecb30c..1076bc9 100644
--- a/composer.json
+++ b/composer.json
@@ -5,14 +5,15 @@
"description": "Blacklist plugin for Sylius.",
"license": "MIT",
"require": {
- "php": "^8.0",
- "sylius/sylius": "~1.11.0 || ~1.12.0"
+ "php": "^8.0 || ^8.1 || ^8.2 || ^8.3",
+ "sylius/sylius": "~1.12.0 || ~1.13.0",
+ "doctrine/annotations": "^2.0.0"
},
"require-dev": {
- "behat/behat": "^3.7",
+ "behat/behat": "^3.7.0",
"behat/mink": "^1.8",
- "behat/mink-selenium2-driver": "^1.4",
- "bitbag/coding-standard": "^1.0.1",
+ "behat/mink-selenium2-driver": "~1.6.0",
+ "bitbag/coding-standard": "^3.0.0",
"dmore/behat-chrome-extension": "^1.3",
"dmore/chrome-mink-driver": "^2.7",
"friends-of-behat/mink": "^1.8",
@@ -26,19 +27,19 @@
"lchrusciel/api-test-case": "^4.1||^5.0",
"phpspec/phpspec": "^7.0",
"phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "0.12.82",
- "phpstan/phpstan-doctrine": "0.12.33",
- "phpstan/phpstan-strict-rules": "^0.12.0",
- "phpstan/phpstan-webmozart-assert": "0.12.12",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-doctrine": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0",
"phpunit/phpunit": "^9.5",
"polishsymfonycommunity/symfony-mocker-container": "^1.0",
- "symfony/browser-kit": "^5.4 || ^6.0",
- "symfony/debug-bundle": "^5.4 || ^6.0",
- "symfony/dotenv": "^5.4 || ^6.0",
- "symfony/intl": "^5.4 || ^6.0",
- "symfony/web-profiler-bundle": "^5.4 || ^6.0",
- "symfony/webpack-encore-bundle": "^1.14",
- "vimeo/psalm": "4.12"
+ "symfony/browser-kit": "^5.4 || 6.4",
+ "symfony/debug-bundle": "^5.4 || ^6.4",
+ "symfony/dotenv": "^5.4 || ^6.4",
+ "symfony/intl": "^5.4 || ^6.4",
+ "symfony/web-profiler-bundle": "^5.4 || ^6.4",
+ "vimeo/psalm": "^4.7 || ^5.0",
+ "symfony/webpack-encore-bundle": "^1.17"
},
"autoload": {
"psr-4": {
diff --git a/doc/functionalities.md b/doc/functionalities.md
new file mode 100644
index 0000000..59143be
--- /dev/null
+++ b/doc/functionalities.md
@@ -0,0 +1,68 @@
+# Functionalities
+
+---
+
+# About Blacklist plugin
+
+---
+A plugin designed to counteract suspicious behavior by blocking purchases using automated rules or manual customer behavior analysis.
+
+Customers are divided into three types:
+
+- blacklisted → blocked, cannot make purchases
+- whitelisted → trusted, not checked by the plugin during purchases
+- neutral → regular customer who can make purchases and is checked by the plugin with every order
+
+The customer's status can be changed manually in the customer edit panel(admin panel) or automatically using plugin functionalities.
+
+![Origin](images/change-status-manually.png)
+
+# Manual blacklisting rule
+
+---
+Blocking users can be done by creating rules manually:
+
+Manual blacklisting rules allow blocking orders where selected data repeats a certain number of times, such as shipping details.
+
+![Origin](images/manual-blacklisting-rule.png)
+
+If someone places 3 orders to the same address and tries to place a 4th,
+the system will block it because the same address details have repeated 4 times.
+(If multiple attributes are selected, ALL of them must repeat for the order to be counted as a strike).
+Additionally, the user MUST already be on the Fraud Suspicion list.
+
+These rules can be applied to specific groups of customers, such as only for guest users.
+
+![Origin](images/groups-of-customers.png)
+
+If an order meets the given criteria, it will not be processed, and the user will be blocked.
+
+# Automatic blacklisting rule
+
+---
+
+Blocking users can also be done using automatic rules (auto-blacklisting-config):
+
+- If a user places x orders within a certain period, they will be blocked.
+- If a user makes x failed payment attempts within a certain period, they will be blocked.
+
+Additionally, in automatic rules, we can specify:
+
+- After the time limit specified in the rule expires, the user will be unblocked.
+- The number of rule uses after which the user/order will be added to the list of suspected frauds.
+
+![Origin](images/change-status-auto.png)
+
+# Fraud suspicion list
+
+---
+
+![Origin](images/fraud-suspicions-list.png)
+
+It is a list of orders that have been flagged as suspicious by automatic rules
+(if the corresponding option was selected in the automatic rule) or manually added by the administrator.
+
+![Origin](images/manual-adding-fraud.png)
+
+Based on this list of suspicious frauds, we can decide,
+that a particular user appears too frequently within a short period and should have their account blocked.
diff --git a/doc/images/change-status-auto.png b/doc/images/change-status-auto.png
new file mode 100644
index 0000000..8321307
Binary files /dev/null and b/doc/images/change-status-auto.png differ
diff --git a/doc/images/change-status-manually.png b/doc/images/change-status-manually.png
new file mode 100644
index 0000000..2af3c59
Binary files /dev/null and b/doc/images/change-status-manually.png differ
diff --git a/doc/images/fraud-suspicions-list.png b/doc/images/fraud-suspicions-list.png
new file mode 100644
index 0000000..8842f89
Binary files /dev/null and b/doc/images/fraud-suspicions-list.png differ
diff --git a/doc/images/groups-of-customers.png b/doc/images/groups-of-customers.png
new file mode 100644
index 0000000..b1b7414
Binary files /dev/null and b/doc/images/groups-of-customers.png differ
diff --git a/doc/images/installation-error.png b/doc/images/installation-error.png
new file mode 100644
index 0000000..293ffda
Binary files /dev/null and b/doc/images/installation-error.png differ
diff --git a/doc/images/manual-adding-fraud.png b/doc/images/manual-adding-fraud.png
new file mode 100644
index 0000000..f62bf35
Binary files /dev/null and b/doc/images/manual-adding-fraud.png differ
diff --git a/doc/images/manual-blacklisting-rule.png b/doc/images/manual-blacklisting-rule.png
new file mode 100644
index 0000000..184198b
Binary files /dev/null and b/doc/images/manual-blacklisting-rule.png differ
diff --git a/ecs.php b/ecs.php
index 34cb6c5..21a4b41 100644
--- a/ecs.php
+++ b/ecs.php
@@ -1,14 +1,10 @@
import('vendor/bitbag/coding-standard/ecs.php');
+return static function (ECSConfig $config): void {
+ putenv('ALLOW_BITBAG_OS_HEADER=1');
- $parameters = $containerConfigurator->parameters();
- $parameters->set(Option::PATHS, [
- __DIR__ . '/src',
- __DIR__ . '/tests',
- ]);
+ $config->import('vendor/bitbag/coding-standard/ecs.php');
+ $config->paths(['src', 'tests']);
};
diff --git a/src/BitBagSyliusBlacklistPlugin.php b/src/BitBagSyliusBlacklistPlugin.php
index ccb6575..8d0efd4 100644
--- a/src/BitBagSyliusBlacklistPlugin.php
+++ b/src/BitBagSyliusBlacklistPlugin.php
@@ -1,10 +1,11 @@
modify('- ' . $blacklistingRule->getSettings()['date_modifier']);
diff --git a/src/Checker/AutomaticBlacklistingRule/PaymentFailuresAutomaticBlacklistingRuleChecker.php b/src/Checker/AutomaticBlacklistingRule/PaymentFailuresAutomaticBlacklistingRuleChecker.php
index 7217465..71ebebf 100644
--- a/src/Checker/AutomaticBlacklistingRule/PaymentFailuresAutomaticBlacklistingRuleChecker.php
+++ b/src/Checker/AutomaticBlacklistingRule/PaymentFailuresAutomaticBlacklistingRuleChecker.php
@@ -1,10 +1,11 @@
modify('- ' . $blacklistingRule->getSettings()['date_modifier']);
diff --git a/src/Checker/BlacklistingRule/Address/CityBlacklistingRuleChecker.php b/src/Checker/BlacklistingRule/Address/CityBlacklistingRuleChecker.php
index 6831b0c..578db90 100644
--- a/src/Checker/BlacklistingRule/Address/CityBlacklistingRuleChecker.php
+++ b/src/Checker/BlacklistingRule/Address/CityBlacklistingRuleChecker.php
@@ -1,10 +1,11 @@
fraudSuspicionRepository = $fraudSuspicionRepository;
$this->customerStateResolver = $customerStateResolver;
@@ -34,7 +35,7 @@ public function __construct(
public function canAddFraudSuspicion(
OrderInterface $order,
- AutomaticBlacklistingConfigurationInterface $automaticBlacklistingConfiguration
+ AutomaticBlacklistingConfigurationInterface $automaticBlacklistingConfiguration,
): bool {
if (null !== $this->fraudSuspicionRepository->findOneBy(['order' => $order])) {
return false;
@@ -47,7 +48,7 @@ public function canAddFraudSuspicion(
$lastFraudSuspicionsOfCustomer = $this->fraudSuspicionRepository->countByCustomerAndCommentAndDate(
$customer,
FraudSuspicionInterface::AUTO_GENERATED_STATUS,
- $date
+ $date,
);
if ((int) $lastFraudSuspicionsOfCustomer >= $automaticBlacklistingConfiguration->getPermittedFraudSuspicionsNumber()) {
diff --git a/src/Checker/FraudSuspicion/FraudSuspicionActionEligibilityCheckerInterface.php b/src/Checker/FraudSuspicion/FraudSuspicionActionEligibilityCheckerInterface.php
index 2708098..2c95031 100644
--- a/src/Checker/FraudSuspicion/FraudSuspicionActionEligibilityCheckerInterface.php
+++ b/src/Checker/FraudSuspicion/FraudSuspicionActionEligibilityCheckerInterface.php
@@ -1,10 +1,11 @@
*/
protected $channels;
/**
* @var Collection|AutomaticBlacklistingRuleInterface[]
- *
* @psalm-var Collection
*/
protected $rules;
diff --git a/src/Entity/FraudPrevention/AutomaticBlacklistingConfigurationInterface.php b/src/Entity/FraudPrevention/AutomaticBlacklistingConfigurationInterface.php
index 3cccb08..6db0c36 100644
--- a/src/Entity/FraudPrevention/AutomaticBlacklistingConfigurationInterface.php
+++ b/src/Entity/FraudPrevention/AutomaticBlacklistingConfigurationInterface.php
@@ -1,10 +1,11 @@
*/
protected $channels;
/**
* @var Collection|CustomerGroupInterface[]
- *
* @psalm-var Collection
*/
protected $customerGroups;
diff --git a/src/Entity/FraudPrevention/BlacklistingRuleInterface.php b/src/Entity/FraudPrevention/BlacklistingRuleInterface.php
index d7ef378..5c1e41a 100644
--- a/src/Entity/FraudPrevention/BlacklistingRuleInterface.php
+++ b/src/Entity/FraudPrevention/BlacklistingRuleInterface.php
@@ -1,10 +1,11 @@
suspiciousOrderResolver = $suspiciousOrderResolver;
$this->customerStateResolver = $customerStateResolver;
diff --git a/src/Exception/WrongAddressTypeException.php b/src/Exception/WrongAddressTypeException.php
index 88d4b9b..41b4297 100644
--- a/src/Exception/WrongAddressTypeException.php
+++ b/src/Exception/WrongAddressTypeException.php
@@ -1,10 +1,11 @@
attributeChoices = $attributeChoices;
diff --git a/src/Form/Type/AutomaticBlacklistingRuleChoiceType.php b/src/Form/Type/AutomaticBlacklistingRuleChoiceType.php
index 473294c..b81ab21 100644
--- a/src/Form/Type/AutomaticBlacklistingRuleChoiceType.php
+++ b/src/Form/Type/AutomaticBlacklistingRuleChoiceType.php
@@ -1,10 +1,11 @@
serviceRegistry = $serviceRegistry;
$this->orderRepository = $orderRepository;
@@ -84,7 +85,7 @@ public function process(OrderInterface $order): bool
private function shouldOrderBeBlocked(
AutomaticBlacklistingConfigurationInterface $automaticBlacklistingConfiguration,
- OrderInterface $order
+ OrderInterface $order,
): bool {
$automaticBlacklistingRules = $automaticBlacklistingConfiguration->getRules();
diff --git a/src/Processor/AutomaticBlacklistingRulesProcessorInterface.php b/src/Processor/AutomaticBlacklistingRulesProcessorInterface.php
index 2a42894..9bcc7e2 100644
--- a/src/Processor/AutomaticBlacklistingRulesProcessorInterface.php
+++ b/src/Processor/AutomaticBlacklistingRulesProcessorInterface.php
@@ -1,10 +1,11 @@
createQueryBuilder('o')
->select(['COUNT(o.id)'])
diff --git a/src/Repository/FraudSuspicionRepositoryInterface.php b/src/Repository/FraudSuspicionRepositoryInterface.php
index aa296fe..dffdefb 100644
--- a/src/Repository/FraudSuspicionRepositoryInterface.php
+++ b/src/Repository/FraudSuspicionRepositoryInterface.php
@@ -1,10 +1,11 @@
serviceRegistry = $serviceRegistry;
$this->fraudSuspicionRepository = $fraudSuspicionRepository;
@@ -90,7 +91,7 @@ public function resolve(FraudSuspicionCommonModelInterface $fraudSuspicionCommon
private function checkIfCustomerIsBlacklisted(
QueryBuilder $builder,
FraudSuspicionCommonModelInterface $fraudSuspicionCommonModel,
- string $attribute
+ string $attribute,
): void {
$checker = $this->serviceRegistry->get($attribute);
diff --git a/src/Resolver/SuspiciousOrderResolverInterface.php b/src/Resolver/SuspiciousOrderResolverInterface.php
index 995bb8a..ae25d3a 100644
--- a/src/Resolver/SuspiciousOrderResolverInterface.php
+++ b/src/Resolver/SuspiciousOrderResolverInterface.php
@@ -1,10 +1,11 @@
suspiciousOrderResolver = $suspiciousOrderResolver;
$this->automaticBlacklistingRulesProcessor = $automaticBlacklistingRulesProcessor;
diff --git a/tests/Application/.env b/tests/Application/.env
index 0e90072..af06317 100644
--- a/tests/Application/.env
+++ b/tests/Application/.env
@@ -12,7 +12,7 @@ APP_SECRET=EDITME
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For a sqlite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Set "serverVersion" to your server version to avoid edge-case exceptions and extra database calls
-DATABASE_URL=mysql://root@127.0.0.1/bitbag_sylius_blacklist_plugin_%kernel.environment%
+DATABASE_URL=mysql://root@127.0.0.1/bitbag_sylius_blacklist_plugin_%kernel.environment%?serverVersion=8.0
###< doctrine/doctrine-bundle ###
###> lexik/jwt-authentication-bundle ###
@@ -21,17 +21,14 @@ JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=acme_plugin_development
###< lexik/jwt-authentication-bundle ###
-###> symfony/swiftmailer-bundle ###
-# For Gmail as a transport, use: "gmail://username:password@localhost"
-# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
-# Delivery is disabled by default via "null://localhost"
-MAILER_URL=smtp://localhost
-###< symfony/swiftmailer-bundle ###
+###> symfony/mailer ###
+MAILER_DSN=null://null
+###< symfony/mailer ###
###> symfony/messenger ###
-# Choose one of the transports below
-# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
-# MESSENGER_TRANSPORT_DSN=doctrine://default
-# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
MESSENGER_TRANSPORT_DSN=sync://
+SYLIUS_MESSENGER_TRANSPORT_MAIN_DSN=doctrine://default
+SYLIUS_MESSENGER_TRANSPORT_MAIN_FAILED_DSN=doctrine://default?queue_name=main_failed
+SYLIUS_MESSENGER_TRANSPORT_CATALOG_PROMOTION_REMOVAL_DSN=doctrine://default?queue_name=catalog_promotion_removal
+SYLIUS_MESSENGER_TRANSPORT_CATALOG_PROMOTION_REMOVAL_FAILED_DSN=doctrine://default?queue_name=catalog_promotion_removal_failed
###< symfony/messenger ###
diff --git a/tests/Application/config/bootstrap.php b/tests/Application/config/bootstrap.php
index ae509ac..e0439c1 100644
--- a/tests/Application/config/bootstrap.php
+++ b/tests/Application/config/bootstrap.php
@@ -15,7 +15,7 @@
throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
} else {
// load all the .env files
- (new Dotenv())->loadEnv(dirname(__DIR__) . '/.env');
+ (new Dotenv())->usePutenv()->loadEnv(dirname(__DIR__) . '/.env');
}
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
diff --git a/tests/Application/config/bundles.php b/tests/Application/config/bundles.php
index 4d3e208..77b90df 100644
--- a/tests/Application/config/bundles.php
+++ b/tests/Application/config/bundles.php
@@ -1,10 +1,11 @@
['all' => true],
@@ -62,4 +63,8 @@
Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true],
Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true],
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
+ League\FlysystemBundle\FlysystemBundle::class => ['all' => true],
+ Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true],
+ BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true],
+ SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true],
];
diff --git a/tests/Application/config/sylius/1.12/packages/mailer.yaml b/tests/Application/config/packages/dev/mailer.yaml
similarity index 100%
rename from tests/Application/config/sylius/1.12/packages/mailer.yaml
rename to tests/Application/config/packages/dev/mailer.yaml
diff --git a/tests/Application/config/packages/mailer.yaml b/tests/Application/config/packages/mailer.yaml
new file mode 100644
index 0000000..0a0697c
--- /dev/null
+++ b/tests/Application/config/packages/mailer.yaml
@@ -0,0 +1,3 @@
+framework:
+ mailer:
+ dsn: '%env(MAILER_DSN)%'
diff --git a/tests/Application/config/sylius/1.12/packages/test/mailer.yaml b/tests/Application/config/packages/test/mailer.yaml
similarity index 100%
rename from tests/Application/config/sylius/1.12/packages/test/mailer.yaml
rename to tests/Application/config/packages/test/mailer.yaml
diff --git a/tests/Application/config/sylius/1.11/packages/test/security.yaml b/tests/Application/config/packages/test/security.yaml
similarity index 59%
rename from tests/Application/config/sylius/1.11/packages/test/security.yaml
rename to tests/Application/config/packages/test/security.yaml
index e6c3df6..a6f2ff7 100644
--- a/tests/Application/config/sylius/1.11/packages/test/security.yaml
+++ b/tests/Application/config/packages/test/security.yaml
@@ -1,3 +1,3 @@
security:
- encoders:
+ password_hashers:
sha512: sha512
diff --git a/tests/Application/config/sylius/1.11/bundles.php b/tests/Application/config/sylius/1.11/bundles.php
deleted file mode 100644
index 7579960..0000000
--- a/tests/Application/config/sylius/1.11/bundles.php
+++ /dev/null
@@ -1,15 +0,0 @@
- ['all' => true],
- Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
- SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true],
- Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true],
-];
diff --git a/tests/Application/config/sylius/1.11/packages/dev/jms_serializer.yaml b/tests/Application/config/sylius/1.11/packages/dev/jms_serializer.yaml
deleted file mode 100644
index 2f32a9b..0000000
--- a/tests/Application/config/sylius/1.11/packages/dev/jms_serializer.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-jms_serializer:
- visitors:
- json_serialization:
- options:
- - JSON_PRETTY_PRINT
- - JSON_UNESCAPED_SLASHES
- - JSON_PRESERVE_ZERO_FRACTION
- json_deserialization:
- options:
- - JSON_PRETTY_PRINT
- - JSON_UNESCAPED_SLASHES
- - JSON_PRESERVE_ZERO_FRACTION
diff --git a/tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml
deleted file mode 100644
index 30eca8a..0000000
--- a/tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-swiftmailer:
- disable_delivery: true
diff --git a/tests/Application/config/sylius/1.11/packages/jms_serializer.yaml b/tests/Application/config/sylius/1.11/packages/jms_serializer.yaml
deleted file mode 100644
index ed7bc61..0000000
--- a/tests/Application/config/sylius/1.11/packages/jms_serializer.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-jms_serializer:
- visitors:
- xml_serialization:
- format_output: '%kernel.debug%'
diff --git a/tests/Application/config/sylius/1.11/packages/prod/jms_serializer.yaml b/tests/Application/config/sylius/1.11/packages/prod/jms_serializer.yaml
deleted file mode 100644
index c288182..0000000
--- a/tests/Application/config/sylius/1.11/packages/prod/jms_serializer.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-jms_serializer:
- visitors:
- json_serialization:
- options:
- - JSON_UNESCAPED_SLASHES
- - JSON_PRESERVE_ZERO_FRACTION
- json_deserialization:
- options:
- - JSON_UNESCAPED_SLASHES
- - JSON_PRESERVE_ZERO_FRACTION
diff --git a/tests/Application/config/sylius/1.11/packages/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/swiftmailer.yaml
deleted file mode 100644
index 73bba27..0000000
--- a/tests/Application/config/sylius/1.11/packages/swiftmailer.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-swiftmailer:
- url: '%env(MAILER_URL)%'
diff --git a/tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml
deleted file mode 100644
index aaac242..0000000
--- a/tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-swiftmailer:
- disable_delivery: true
- logging: true
- spool:
- type: file
- path: "%kernel.cache_dir%/spool"
diff --git a/tests/Application/config/sylius/1.11/packages/test_cached/security.yaml b/tests/Application/config/sylius/1.11/packages/test_cached/security.yaml
deleted file mode 100644
index e6c3df6..0000000
--- a/tests/Application/config/sylius/1.11/packages/test_cached/security.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-security:
- encoders:
- sha512: sha512
diff --git a/tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml
deleted file mode 100644
index aaac242..0000000
--- a/tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-swiftmailer:
- disable_delivery: true
- logging: true
- spool:
- type: file
- path: "%kernel.cache_dir%/spool"
diff --git a/tests/Application/config/sylius/1.12/bundles.php b/tests/Application/config/sylius/1.12/bundles.php
deleted file mode 100644
index c1a8b60..0000000
--- a/tests/Application/config/sylius/1.12/bundles.php
+++ /dev/null
@@ -1,16 +0,0 @@
- ['all' => true],
- Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true],
- BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true],
- SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true],
-];
diff --git a/tests/Application/config/sylius/1.12/packages/security.yaml b/tests/Application/config/sylius/1.12/packages/security.yaml
index 4ed342f..842b093 100644
--- a/tests/Application/config/sylius/1.12/packages/security.yaml
+++ b/tests/Application/config/sylius/1.12/packages/security.yaml
@@ -1,124 +1,124 @@
security:
- enable_authenticator_manager: true
- providers:
- sylius_admin_user_provider:
- id: sylius.admin_user_provider.email_or_name_based
- sylius_api_admin_user_provider:
- id: sylius.admin_user_provider.email_or_name_based
- sylius_shop_user_provider:
- id: sylius.shop_user_provider.email_or_name_based
- sylius_api_shop_user_provider:
- id: sylius.shop_user_provider.email_or_name_based
+ enable_authenticator_manager: true
+ providers:
+ sylius_admin_user_provider:
+ id: sylius.admin_user_provider.email_or_name_based
+ sylius_api_admin_user_provider:
+ id: sylius.admin_user_provider.email_or_name_based
+ sylius_shop_user_provider:
+ id: sylius.shop_user_provider.email_or_name_based
+ sylius_api_shop_user_provider:
+ id: sylius.shop_user_provider.email_or_name_based
- password_hashers:
- Sylius\Component\User\Model\UserInterface: argon2i
- firewalls:
- admin:
- switch_user: true
- context: admin
- pattern: "%sylius.security.admin_regex%"
- provider: sylius_admin_user_provider
- form_login:
- provider: sylius_admin_user_provider
- login_path: sylius_admin_login
- check_path: sylius_admin_login_check
- failure_path: sylius_admin_login
- default_target_path: sylius_admin_dashboard
- use_forward: false
- use_referer: true
- enable_csrf: true
- csrf_parameter: _csrf_admin_security_token
- csrf_token_id: admin_authenticate
- remember_me:
- secret: "%env(APP_SECRET)%"
- path: "/%sylius_admin.path_name%"
- name: APP_ADMIN_REMEMBER_ME
- lifetime: 31536000
- remember_me_parameter: _remember_me
- logout:
- path: sylius_admin_logout
- target: sylius_admin_login
+ password_hashers:
+ Sylius\Component\User\Model\UserInterface: argon2i
+ firewalls:
+ admin:
+ switch_user: true
+ context: admin
+ pattern: "%sylius.security.admin_regex%"
+ provider: sylius_admin_user_provider
+ form_login:
+ provider: sylius_admin_user_provider
+ login_path: sylius_admin_login
+ check_path: sylius_admin_login_check
+ failure_path: sylius_admin_login
+ default_target_path: sylius_admin_dashboard
+ use_forward: false
+ use_referer: true
+ enable_csrf: true
+ csrf_parameter: _csrf_admin_security_token
+ csrf_token_id: admin_authenticate
+ remember_me:
+ secret: "%env(APP_SECRET)%"
+ path: "/%sylius_admin.path_name%"
+ name: APP_ADMIN_REMEMBER_ME
+ lifetime: 31536000
+ remember_me_parameter: _remember_me
+ logout:
+ path: sylius_admin_logout
+ target: sylius_admin_login
- new_api_admin_user:
- pattern: "%sylius.security.new_api_admin_regex%/.*"
- provider: sylius_api_admin_user_provider
- stateless: true
- entry_point: jwt
- json_login:
- check_path: "%sylius.security.new_api_admin_route%/authentication-token"
- username_path: email
- password_path: password
- success_handler: lexik_jwt_authentication.handler.authentication_success
- failure_handler: lexik_jwt_authentication.handler.authentication_failure
- jwt: true
+ new_api_admin_user:
+ pattern: "%sylius.security.new_api_admin_regex%/.*"
+ provider: sylius_api_admin_user_provider
+ stateless: true
+ entry_point: jwt
+ json_login:
+ check_path: "%sylius.security.new_api_admin_route%/authentication-token"
+ username_path: email
+ password_path: password
+ success_handler: lexik_jwt_authentication.handler.authentication_success
+ failure_handler: lexik_jwt_authentication.handler.authentication_failure
+ jwt: true
- new_api_shop_user:
- pattern: "%sylius.security.new_api_shop_regex%/.*"
- provider: sylius_api_shop_user_provider
- stateless: true
- entry_point: jwt
- json_login:
- check_path: "%sylius.security.new_api_shop_route%/authentication-token"
- username_path: email
- password_path: password
- success_handler: lexik_jwt_authentication.handler.authentication_success
- failure_handler: lexik_jwt_authentication.handler.authentication_failure
- jwt: true
+ new_api_shop_user:
+ pattern: "%sylius.security.new_api_shop_regex%/.*"
+ provider: sylius_api_shop_user_provider
+ stateless: true
+ entry_point: jwt
+ json_login:
+ check_path: "%sylius.security.new_api_shop_route%/authentication-token"
+ username_path: email
+ password_path: password
+ success_handler: lexik_jwt_authentication.handler.authentication_success
+ failure_handler: lexik_jwt_authentication.handler.authentication_failure
+ jwt: true
- shop:
- switch_user: { role: ROLE_ALLOWED_TO_SWITCH }
- context: shop
- pattern: "%sylius.security.shop_regex%"
- provider: sylius_shop_user_provider
- form_login:
- success_handler: sylius.authentication.success_handler
- failure_handler: sylius.authentication.failure_handler
- provider: sylius_shop_user_provider
- login_path: sylius_shop_login
- check_path: sylius_shop_login_check
- failure_path: sylius_shop_login
- default_target_path: sylius_shop_homepage
- use_forward: false
- use_referer: true
- enable_csrf: true
- csrf_parameter: _csrf_shop_security_token
- csrf_token_id: shop_authenticate
- remember_me:
- secret: "%env(APP_SECRET)%"
- name: APP_SHOP_REMEMBER_ME
- lifetime: 31536000
- remember_me_parameter: _remember_me
- logout:
- path: sylius_shop_logout
- target: sylius_shop_homepage
- invalidate_session: false
+ shop:
+ switch_user: { role: ROLE_ALLOWED_TO_SWITCH }
+ context: shop
+ pattern: "%sylius.security.shop_regex%"
+ provider: sylius_shop_user_provider
+ form_login:
+ success_handler: sylius.authentication.success_handler
+ failure_handler: sylius.authentication.failure_handler
+ provider: sylius_shop_user_provider
+ login_path: sylius_shop_login
+ check_path: sylius_shop_login_check
+ failure_path: sylius_shop_login
+ default_target_path: sylius_shop_homepage
+ use_forward: false
+ use_referer: true
+ enable_csrf: true
+ csrf_parameter: _csrf_shop_security_token
+ csrf_token_id: shop_authenticate
+ remember_me:
+ secret: "%env(APP_SECRET)%"
+ name: APP_SHOP_REMEMBER_ME
+ lifetime: 31536000
+ remember_me_parameter: _remember_me
+ logout:
+ path: sylius_shop_logout
+ target: sylius_shop_homepage
+ invalidate_session: false
- dev:
- pattern: ^/(_(profiler|wdt)|css|images|js)/
- security: false
+ dev:
+ pattern: ^/(_(profiler|wdt)|css|images|js)/
+ security: false
- image_resolver:
- pattern: ^/media/cache/resolve
- security: false
+ image_resolver:
+ pattern: ^/media/cache/resolve
+ security: false
- access_control:
- - { path: "%sylius.security.admin_regex%/_partial", role: PUBLIC_ACCESS, ips: [127.0.0.1, ::1] }
- - { path: "%sylius.security.admin_regex%/_partial", role: ROLE_NO_ACCESS }
- - { path: "%sylius.security.shop_regex%/_partial", role: PUBLIC_ACCESS, ips: [127.0.0.1, ::1] }
- - { path: "%sylius.security.shop_regex%/_partial", role: ROLE_NO_ACCESS }
+ access_control:
+ - { path: "%sylius.security.admin_regex%/_partial", role: PUBLIC_ACCESS, ips: [127.0.0.1, ::1] }
+ - { path: "%sylius.security.admin_regex%/_partial", role: ROLE_NO_ACCESS }
+ - { path: "%sylius.security.shop_regex%/_partial", role: PUBLIC_ACCESS, ips: [127.0.0.1, ::1] }
+ - { path: "%sylius.security.shop_regex%/_partial", role: ROLE_NO_ACCESS }
- - { path: "%sylius.security.admin_regex%/login", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.shop_regex%/login", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.admin_regex%/login", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.shop_regex%/login", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.shop_regex%/register", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.shop_regex%/verify", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.shop_regex%/register", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.shop_regex%/verify", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.admin_regex%", role: ROLE_ADMINISTRATION_ACCESS }
- - { path: "%sylius.security.shop_regex%/account", role: ROLE_USER }
+ - { path: "%sylius.security.admin_regex%", role: ROLE_ADMINISTRATION_ACCESS }
+ - { path: "%sylius.security.shop_regex%/account", role: ROLE_USER }
- - { path: "%sylius.security.new_api_admin_route%/reset-password-requests", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS }
- - { path: "%sylius.security.new_api_admin_route%/authentication-token", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.new_api_user_account_regex%/.*", role: ROLE_USER }
- - { path: "%sylius.security.new_api_shop_route%/authentication-token", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.new_api_shop_regex%/.*", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_admin_route%/reset-password-requests", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS }
+ - { path: "%sylius.security.new_api_admin_route%/authentication-token", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_user_account_regex%/.*", role: ROLE_USER }
+ - { path: "%sylius.security.new_api_shop_route%/authentication-token", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_shop_regex%/.*", role: PUBLIC_ACCESS }
diff --git a/tests/Application/config/sylius/1.13/bundles.php b/tests/Application/config/sylius/1.13/bundles.php
new file mode 100644
index 0000000..e615f85
--- /dev/null
+++ b/tests/Application/config/sylius/1.13/bundles.php
@@ -0,0 +1,14 @@
+ ['all' => true],
+];
diff --git a/tests/Application/config/sylius/1.13/packages/_sylius.yaml b/tests/Application/config/sylius/1.13/packages/_sylius.yaml
new file mode 100644
index 0000000..baa3d7e
--- /dev/null
+++ b/tests/Application/config/sylius/1.13/packages/_sylius.yaml
@@ -0,0 +1,10 @@
+parameters:
+ test_default_state_machine_adapter: 'symfony_workflow'
+ test_sylius_state_machine_adapter: '%env(string:default:test_default_state_machine_adapter:TEST_SYLIUS_STATE_MACHINE_ADAPTER)%'
+
+sylius_state_machine_abstraction:
+ graphs_to_adapters_mapping:
+ sylius_refund_refund_payment: '%test_sylius_state_machine_adapter%'
+
+sylius_api:
+ enabled: true
diff --git a/tests/Application/config/sylius/1.11/packages/security.yaml b/tests/Application/config/sylius/1.13/packages/security.yaml
similarity index 62%
rename from tests/Application/config/sylius/1.11/packages/security.yaml
rename to tests/Application/config/sylius/1.13/packages/security.yaml
index ef43c09..4ed342f 100644
--- a/tests/Application/config/sylius/1.11/packages/security.yaml
+++ b/tests/Application/config/sylius/1.13/packages/security.yaml
@@ -1,11 +1,5 @@
-parameters:
- sylius.security.admin_regex: "^/admin"
- sylius.security.shop_regex: "^/(?!admin|new-api|api/.*|api$|media/.*)[^/]++"
- sylius.security.new_api_route: "/new-api"
- sylius.security.new_api_regex: "^%sylius.security.new_api_route%"
-
security:
- always_authenticate_before_granting: true
+ enable_authenticator_manager: true
providers:
sylius_admin_user_provider:
id: sylius.admin_user_provider.email_or_name_based
@@ -15,11 +9,8 @@ security:
id: sylius.shop_user_provider.email_or_name_based
sylius_api_shop_user_provider:
id: sylius.shop_user_provider.email_or_name_based
- sylius_api_chain_provider:
- chain:
- providers: [sylius_api_shop_user_provider, sylius_api_admin_user_provider]
- encoders:
+ password_hashers:
Sylius\Component\User\Model\UserInterface: argon2i
firewalls:
admin:
@@ -35,58 +26,44 @@ security:
default_target_path: sylius_admin_dashboard
use_forward: false
use_referer: true
- csrf_token_generator: security.csrf.token_manager
+ enable_csrf: true
csrf_parameter: _csrf_admin_security_token
csrf_token_id: admin_authenticate
remember_me:
secret: "%env(APP_SECRET)%"
- path: /admin
+ path: "/%sylius_admin.path_name%"
name: APP_ADMIN_REMEMBER_ME
lifetime: 31536000
remember_me_parameter: _remember_me
logout:
path: sylius_admin_logout
target: sylius_admin_login
- anonymous: true
new_api_admin_user:
- pattern: "%sylius.security.new_api_route%/admin-user-authentication-token"
- provider: sylius_admin_user_provider
+ pattern: "%sylius.security.new_api_admin_regex%/.*"
+ provider: sylius_api_admin_user_provider
stateless: true
- anonymous: true
+ entry_point: jwt
json_login:
- check_path: "%sylius.security.new_api_route%/admin-user-authentication-token"
+ check_path: "%sylius.security.new_api_admin_route%/authentication-token"
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
- guard:
- authenticators:
- - lexik_jwt_authentication.jwt_token_authenticator
+ jwt: true
new_api_shop_user:
- pattern: "%sylius.security.new_api_route%/shop-user-authentication-token"
- provider: sylius_shop_user_provider
+ pattern: "%sylius.security.new_api_shop_regex%/.*"
+ provider: sylius_api_shop_user_provider
stateless: true
- anonymous: true
+ entry_point: jwt
json_login:
- check_path: "%sylius.security.new_api_route%/shop-user-authentication-token"
+ check_path: "%sylius.security.new_api_shop_route%/authentication-token"
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
- guard:
- authenticators:
- - lexik_jwt_authentication.jwt_token_authenticator
-
- new_api:
- pattern: "%sylius.security.new_api_regex%/*"
- provider: sylius_api_chain_provider
- stateless: true
- anonymous: lazy
- guard:
- authenticators:
- - lexik_jwt_authentication.jwt_token_authenticator
+ jwt: true
shop:
switch_user: { role: ROLE_ALLOWED_TO_SWITCH }
@@ -103,7 +80,7 @@ security:
default_target_path: sylius_shop_homepage
use_forward: false
use_referer: true
- csrf_token_generator: security.csrf.token_manager
+ enable_csrf: true
csrf_parameter: _csrf_shop_security_token
csrf_token_id: shop_authenticate
remember_me:
@@ -113,26 +90,35 @@ security:
remember_me_parameter: _remember_me
logout:
path: sylius_shop_logout
- target: sylius_shop_login
+ target: sylius_shop_homepage
invalidate_session: false
- success_handler: sylius.handler.shop_user_logout
- anonymous: true
dev:
- pattern: ^/(_(profiler|wdt)|css|images|js)/
+ pattern: ^/(_(profiler|wdt)|css|images|js)/
+ security: false
+
+ image_resolver:
+ pattern: ^/media/cache/resolve
security: false
access_control:
- - { path: "%sylius.security.admin_regex%/_partial", role: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1, ::1] }
+ - { path: "%sylius.security.admin_regex%/_partial", role: PUBLIC_ACCESS, ips: [127.0.0.1, ::1] }
- { path: "%sylius.security.admin_regex%/_partial", role: ROLE_NO_ACCESS }
- - { path: "%sylius.security.shop_regex%/_partial", role: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1, ::1] }
+ - { path: "%sylius.security.shop_regex%/_partial", role: PUBLIC_ACCESS, ips: [127.0.0.1, ::1] }
- { path: "%sylius.security.shop_regex%/_partial", role: ROLE_NO_ACCESS }
- - { path: "%sylius.security.admin_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: "%sylius.security.shop_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY }
+ - { path: "%sylius.security.admin_regex%/login", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.shop_regex%/login", role: PUBLIC_ACCESS }
- - { path: "%sylius.security.shop_regex%/register", role: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: "%sylius.security.shop_regex%/verify", role: IS_AUTHENTICATED_ANONYMOUSLY }
+ - { path: "%sylius.security.shop_regex%/register", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.shop_regex%/verify", role: PUBLIC_ACCESS }
- { path: "%sylius.security.admin_regex%", role: ROLE_ADMINISTRATION_ACCESS }
- { path: "%sylius.security.shop_regex%/account", role: ROLE_USER }
+
+ - { path: "%sylius.security.new_api_admin_route%/reset-password-requests", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS }
+ - { path: "%sylius.security.new_api_admin_route%/authentication-token", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_user_account_regex%/.*", role: ROLE_USER }
+ - { path: "%sylius.security.new_api_shop_route%/authentication-token", role: PUBLIC_ACCESS }
+ - { path: "%sylius.security.new_api_shop_regex%/.*", role: PUBLIC_ACCESS }
diff --git a/tests/Application/config/symfony/4.4/packages/framework.yaml b/tests/Application/config/symfony/4.4/packages/framework.yaml
deleted file mode 100644
index 62f82d3..0000000
--- a/tests/Application/config/symfony/4.4/packages/framework.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-framework:
- templating: { engines: ["twig"] }
diff --git a/tests/Application/package.json b/tests/Application/package.json
index acfdc10..ac5c143 100644
--- a/tests/Application/package.json
+++ b/tests/Application/package.json
@@ -1,32 +1,36 @@
{
"dependencies": {
+ "@babel/core": "^7.24.9",
+ "@babel/preset-env": "^7.14.7",
"babel-polyfill": "^6.26.0",
- "chart.js": "^3.7.1",
- "jquery": "^3.4.0",
+ "chart.js": "^3.9.1",
+ "jquery": "^3.6.0",
"jquery.dirtyforms": "^2.0.0",
- "lightbox2": "^2.9.0",
- "semantic-ui-css": "^2.2.0",
+ "lightbox2": "^2.11.0",
+ "semantic-ui-css": "^2.4.0",
"slick-carousel": "^1.8.1"
},
"devDependencies": {
- "@symfony/webpack-encore": "^1.8.2",
+ "@symfony/webpack-encore": "^4.0.0",
"babel-core": "^6.26.3",
"babel-plugin-external-helpers": "^6.22.0",
- "babel-plugin-module-resolver": "^3.1.1",
+ "babel-plugin-module-resolver": "^3.2.0",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-register": "^6.26.0",
"dedent": "^0.7.0",
- "eslint": "^4.19.1",
- "eslint-config-airbnb-base": "^12.1.0",
- "eslint-import-resolver-babel-module": "^4.0.0",
- "eslint-plugin-import": "^2.11.0",
- "fast-async": "^6.3.7",
- "merge-stream": "^1.0.0",
- "node-sass": "^4.14",
- "sass-loader": "^7.0.1",
- "upath": "^1.1.0",
- "yargs": "^6.4.0"
+ "eslint": "^8.22.0",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-import-resolver-babel-module": "^5.3.0",
+ "eslint-plugin-import": "^2.26.0",
+ "fast-async": "^7.0.6",
+ "merge-stream": "^2.0.0",
+ "sass": "^1.77.8",
+ "sass-loader": "^13.0.0",
+ "upath": "^2.0.0",
+ "webpack": "^5.93.0",
+ "webpack-cli": "^5.1.4",
+ "yargs": "^17.7.1"
},
"scripts": {
"dev": "yarn encore dev",
diff --git a/tests/Application/public/media/image/.gitignore b/tests/Application/public/media/image/.gitignore
deleted file mode 100644
index e69de29..0000000