Skip to content

Commit

Permalink
Merge branch hotfix/v2.2.15
Browse files Browse the repository at this point in the history
  • Loading branch information
roadiz-ci committed Apr 19, 2024
1 parent 4acef91 commit 58e8ef8
Show file tree
Hide file tree
Showing 353 changed files with 6,495 additions and 6,312 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/run-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['8.0', '8.1']
php-version: ['8.1', '8.2', '8.3']
steps:
- uses: shivammathur/setup-php@v2
with:
Expand Down
75 changes: 0 additions & 75 deletions .travis.yml

This file was deleted.

33 changes: 17 additions & 16 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,26 @@
"role": "Frontend developer"
}
],
"prefer-stable": true,
"require": {
"php": ">=8.0",
"php": ">=8.1",
"ext-zip": "*",
"doctrine/orm": "<2.17",
"doctrine/orm": "~2.17.0",
"guzzlehttp/guzzle": "^7.2.0",
"jms/serializer": "^3.9.0",
"league/flysystem": "^3.0",
"pimple/pimple": "^3.3.1",
"ramsey/uuid": "^4.7",
"roadiz/compat-bundle": "2.1.*",
"roadiz/core-bundle": "2.1.*",
"roadiz/doc-generator": "2.1.*",
"roadiz/documents": "2.1.*",
"roadiz/dts-generator": "2.1.*",
"roadiz/markdown": "2.1.*",
"roadiz/models": "2.1.*",
"roadiz/compat-bundle": "2.2.*",
"roadiz/core-bundle": "2.2.*",
"roadiz/doc-generator": "2.2.*",
"roadiz/documents": "2.2.*",
"roadiz/dts-generator": "2.2.*",
"roadiz/markdown": "2.2.*",
"roadiz/models": "2.2.*",
"roadiz/nodetype-contracts": "~1.1.2",
"roadiz/openid": "2.1.*",
"roadiz/rozier-bundle": "2.1.*",
"roadiz/openid": "2.2.*",
"roadiz/rozier-bundle": "2.2.*",
"symfony/asset": "5.4.*",
"symfony/filesystem": "5.4.*",
"symfony/form": "5.4.*",
Expand All @@ -66,9 +67,9 @@
"php-coveralls/php-coveralls": "^2.4",
"phpstan/phpstan": "^1.5.3",
"phpstan/phpstan-doctrine": "^1.3",
"roadiz/entity-generator": "2.1.*",
"roadiz/random": "2.1.*",
"roadiz/jwt": "2.1.*",
"roadiz/entity-generator": "2.2.*",
"roadiz/random": "2.2.*",
"roadiz/jwt": "2.2.*",
"squizlabs/php_codesniffer": "^3.5"
},
"autoload": {
Expand All @@ -94,8 +95,8 @@
},
"extra": {
"branch-alias": {
"dev-main": "2.1.x-dev",
"dev-develop": "2.2.x-dev"
"dev-main": "2.2.x-dev",
"dev-develop": "2.3.x-dev"
}
}
}
2 changes: 2 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ parameters:
- '#Doctrine\\ORM\\Mapping\\GeneratedValue constructor expects#'
- '#type mapping mismatch: property can contain Doctrine\\Common\\Collections\\Collection<int, [^\>]+> but database expects Doctrine\\Common\\Collections\\Collection&iterable<[^\>]+>#'
- '#should return Doctrine\\Common\\Collections\\Collection<int, [^\>]+Interface> but returns Doctrine\\Common\\Collections\\Collection<int, [^\>]+>#'
- '#but returns Doctrine\\Common\\Collections\\ReadableCollection<int, [^\>]+>#'
- '#does not accept Doctrine\\Common\\Collections\\ReadableCollection<int, [^\>]+>#'

reportUnmatchedIgnoredErrors: false
checkGenericClassInNonGenericObjectType: false
Expand Down
2 changes: 1 addition & 1 deletion src/.babelrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"presets": ["es2015", "stage-0"],
"presets": ["env", "stage-0"],
"plugins": ["transform-runtime", "lodash"]
}
1 change: 0 additions & 1 deletion src/.editorconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# TheatreTheme editor config for contributors
# Root is false as your theme is inside Roadiz filetree
# http://editorconfig.org/
root = false

[*]
indent_style = space
Expand Down
2 changes: 1 addition & 1 deletion src/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ module.exports = {
},
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
//extends: 'standard',
extends: ['prettier', 'plugin:prettier/recommended', 'plugin:vue/essential'],
extends: ['prettier', 'plugin:prettier/recommended', 'plugin:vue/base'],
// required to lint *.vue files
plugins: ['html', 'prettier'],
// add your custom rules here
Expand Down
2 changes: 1 addition & 1 deletion src/AjaxControllers/AbstractAjaxController.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ protected function getTranslation(Request $request): ?TranslationInterface
* @param string $method
* @param bool $requestCsrfToken
*
* @return boolean Return true if request is valid, else throw exception
* @return bool Return true if request is valid, else throw exception
*/
protected function validateRequest(Request $request, string $method = 'POST', bool $requestCsrfToken = true): bool
{
Expand Down
13 changes: 2 additions & 11 deletions src/AjaxControllers/AjaxAbstractFieldsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,10 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

/**
* @package Themes\Rozier\AjaxControllers
*/
abstract class AjaxAbstractFieldsController extends AbstractAjaxController
{
private HandlerFactoryInterface $handlerFactory;

/**
* @param HandlerFactoryInterface $handlerFactory
*/
public function __construct(HandlerFactoryInterface $handlerFactory)
public function __construct(protected readonly HandlerFactoryInterface $handlerFactory)
{
$this->handlerFactory = $handlerFactory;
}

/**
Expand All @@ -33,7 +24,7 @@ public function __construct(HandlerFactoryInterface $handlerFactory)
*
* @return null|Response
*/
protected function handleFieldActions(Request $request, AbstractField $field = null)
protected function handleFieldActions(Request $request, AbstractField $field = null): ?Response
{
/*
* Validate
Expand Down
54 changes: 25 additions & 29 deletions src/AjaxControllers/AjaxAttributeValuesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use RZ\Roadiz\CoreBundle\Entity\AttributeValue;
use RZ\Roadiz\CoreBundle\Entity\Node;
use RZ\Roadiz\CoreBundle\Security\Authorization\Voter\NodeVoter;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
Expand All @@ -25,49 +26,44 @@ final class AjaxAttributeValuesController extends AbstractAjaxController
*
* @return Response JSON response
*/
public function editAction(Request $request, int $attributeValueId)
public function editAction(Request $request, int $attributeValueId): Response
{
/*
* Validate
*/
$this->validateRequest($request, 'POST', false);
$this->denyAccessUnlessGranted('ROLE_ACCESS_NODE_ATTRIBUTES');

/** @var AttributeValue|null $attributeValue */
$attributeValue = $this->em()->find(AttributeValue::class, (int) $attributeValueId);

if ($attributeValue !== null) {
$responseArray = [];
/*
* Get the right update method against "_action" parameter
*/
switch ($request->get('_action')) {
case 'updatePosition':
$responseArray = $this->updatePosition($request->request->all(), $attributeValue);
break;
}
if ($attributeValue === null) {
throw $this->createNotFoundException($this->getTranslator()->trans(
'attribute_value.%attributeValueId%.not_exists',
[
'%attributeValueId%' => $attributeValueId
]
));
}

$this->denyAccessUnlessGranted(NodeVoter::EDIT_ATTRIBUTE, $attributeValue->getAttributable());

return new JsonResponse(
$responseArray,
Response::HTTP_PARTIAL_CONTENT
);
$responseArray = [];
/*
* Get the right update method against "_action" parameter
*/
switch ($request->get('_action')) {
case 'updatePosition':
$responseArray = $this->updatePosition($request->request->all(), $attributeValue);
break;
}

throw $this->createNotFoundException($this->getTranslator()->trans(
'attribute_value.%attributeValueId%.not_exists',
[
'%attributeValueId%' => $attributeValueId
]
));
return new JsonResponse(
$responseArray,
Response::HTTP_PARTIAL_CONTENT
);
}

/**
* @param array $parameters
* @param AttributeValue $attributeValue
*
* @return array
*/
protected function updatePosition($parameters, AttributeValue $attributeValue): array
protected function updatePosition(array $parameters, AttributeValue $attributeValue): array
{
$attributable = $attributeValue->getAttributable();
$details = [
Expand Down
7 changes: 2 additions & 5 deletions src/AjaxControllers/AjaxCustomFormFieldsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,18 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

/**
* @package Themes\Rozier\AjaxControllers
*/
class AjaxCustomFormFieldsController extends AjaxAbstractFieldsController
{
/**
* Handle AJAX edition requests for CustomFormFields
* such as coming from widgets.
*
* @param Request $request
* @param int $customFormFieldId
* @param int $customFormFieldId
*
* @return Response JSON response
*/
public function editAction(Request $request, int $customFormFieldId)
public function editAction(Request $request, int $customFormFieldId): Response
{
/*
* Validate
Expand Down
20 changes: 7 additions & 13 deletions src/AjaxControllers/AjaxCustomFormsExplorerController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,20 @@
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Themes\Rozier\Models\CustomFormModel;

/**
* @package Themes\Rozier\AjaxControllers
*/
class AjaxCustomFormsExplorerController extends AbstractAjaxController
{
private UrlGeneratorInterface $urlGenerator;

public function __construct(UrlGeneratorInterface $urlGenerator)
public function __construct(private readonly UrlGeneratorInterface $urlGenerator)
{
$this->urlGenerator = $urlGenerator;
}

/**
* @param Request $request
*
* @return Response JSON response
*/
public function indexAction(Request $request)
public function indexAction(Request $request): Response
{
$this->denyAccessUnlessGranted('ROLE_ACCESS_NODES');
$this->denyAccessUnlessGranted('ROLE_ACCESS_CUSTOMFORMS');

$arrayFilter = [];
/*
Expand Down Expand Up @@ -68,15 +62,15 @@ public function indexAction(Request $request)
* Get a CustomForm list from an array of id.
*
* @param Request $request
* @return JsonResponse
* @return Response
*/
public function listAction(Request $request)
public function listAction(Request $request): Response
{
if (!$request->query->has('ids')) {
throw new InvalidParameterException('Ids should be provided within an array');
}

$this->denyAccessUnlessGranted('ROLE_ACCESS_NODES');
$this->denyAccessUnlessGranted('ROLE_ACCESS_CUSTOMFORMS');

$cleanCustomFormsIds = array_filter($request->query->filter('ids', [], \FILTER_DEFAULT, [
'flags' => \FILTER_FORCE_ARRAY
Expand Down Expand Up @@ -111,7 +105,7 @@ public function listAction(Request $request)
* @param array<CustomForm>|\Traversable<CustomForm> $customForms
* @return array
*/
private function normalizeCustomForms($customForms)
private function normalizeCustomForms(iterable $customForms): array
{
$customFormsArray = [];

Expand Down
Loading

0 comments on commit 58e8ef8

Please sign in to comment.