Skip to content

Commit 14d0bb4

Browse files
authored
Merge pull request #33 from open-dxp/helper_functions
Replace custom utilities with reusable helper methods across admin bu…
2 parents b09bfa3 + 53e14f4 commit 14d0bb4

11 files changed

Lines changed: 30 additions & 23 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"cbschuld/browser.php": "^1.9.6",
2222
"endroid/qr-code": "^4 || ^5.1",
2323
"phpoffice/phpspreadsheet": "^2.2 || ^3.3",
24-
"open-dxp/opendxp": "^1.1.2",
24+
"open-dxp/opendxp": "^1.2.0",
2525
"symfony/webpack-encore-bundle": "^2.1.1"
2626
},
2727
"require-dev": {

src/Controller/Admin/DataObject/ClassController.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use OpenDxp\Bundle\AdminBundle\Event\AdminEvents;
2222
use OpenDxp\Controller\KernelControllerEventInterface;
2323
use OpenDxp\Db;
24+
use OpenDxp\Helper\FileSystemHelper;
2425
use OpenDxp\Logger;
2526
use OpenDxp\Model\Asset;
2627
use OpenDxp\Model\DataObject;
@@ -1726,17 +1727,17 @@ public function getIconsAction(Request $request, EventDispatcherInterface $event
17261727
}
17271728

17281729
if ($type === null) {
1729-
$classIcons = rscandir($iconDir . '/object-icons/');
1730-
$colorIcons = rscandir($iconDir . '/flat-color-icons/');
1731-
$twemoji = rscandir($iconDir . '/twemoji/');
1730+
$classIcons = FileSystemHelper::scanDirectory($iconDir . '/object-icons/');
1731+
$colorIcons = FileSystemHelper::scanDirectory($iconDir . '/flat-color-icons/');
1732+
$twemoji = FileSystemHelper::scanDirectory($iconDir . '/twemoji/');
17321733
$icons = [...$classIcons, ...$colorIcons, ...$twemoji];
17331734
} else {
17341735
$icons = match($type) {
1735-
'color' => rscandir($iconDir . '/flat-color-icons/'),
1736-
'white' => rscandir($iconDir . '/flat-white-icons/'),
1736+
'color' => FileSystemHelper::scanDirectory($iconDir . '/flat-color-icons/'),
1737+
'white' => FileSystemHelper::scanDirectory($iconDir . '/flat-white-icons/'),
17371738
'twemoji-1', 'twemoji-2', 'twemoji-3',
17381739
'twemoji_variants-1', 'twemoji_variants-2', 'twemoji_variants-3'
1739-
=> rscandir($iconDir . '/twemoji/'),
1740+
=> FileSystemHelper::scanDirectory($iconDir . '/twemoji/'),
17401741
default => [],
17411742
};
17421743
}

src/Controller/Admin/DataObject/ClassificationstoreController.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use OpenDxp\Bundle\AdminBundle\Controller\AdminAbstractController;
2121
use OpenDxp\Controller\KernelControllerEventInterface;
2222
use OpenDxp\Db;
23+
use OpenDxp\Helper\ArrayHelper;
2324
use OpenDxp\Model\DataObject;
2425
use OpenDxp\Model\DataObject\ClassDefinition\Data\LayoutDefinitionEnrichmentInterface;
2526
use OpenDxp\Model\DataObject\Classificationstore;
@@ -1391,7 +1392,7 @@ public function storetreeAction(Request $request): JsonResponse
13911392
public function getPageAction(Request $request): JsonResponse
13921393
{
13931394
$tableSuffix = $request->get('table');
1394-
if (!in_arrayi($tableSuffix, ['keys', 'groups'])) {
1395+
if (!ArrayHelper::inArrayCaseInsensitive($tableSuffix, ['keys', 'groups'])) {
13951396
$tableSuffix = 'keys';
13961397
}
13971398

@@ -1409,11 +1410,11 @@ public function getPageAction(Request $request): JsonResponse
14091410
$sortDir = 'ASC';
14101411
}
14111412

1412-
if (!in_arrayi($sortDir, ['DESC', 'ASC'])) {
1413+
if (!ArrayHelper::inArrayCaseInsensitive($sortDir, ['DESC', 'ASC'])) {
14131414
$sortDir = 'DESC';
14141415
}
14151416

1416-
if (!in_arrayi($sortKey, ['name', 'title', 'description', 'id', 'type', 'creationDate', 'modificationDate', 'enabled', 'parentId', 'storeId'])) {
1417+
if (!ArrayHelper::inArrayCaseInsensitive($sortKey, ['name', 'title', 'description', 'id', 'type', 'creationDate', 'modificationDate', 'enabled', 'parentId', 'storeId'])) {
14171418
$sortKey = 'name';
14181419
}
14191420

src/Controller/Admin/IndexController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,8 @@ private function getInstanceId(): string
320320
protected function addSystemVarSettings(array &$settings): static
321321
{
322322
// upload limit
323-
$max_upload = filesize2bytes(ini_get('upload_max_filesize') . 'B');
324-
$max_post = filesize2bytes(ini_get('post_max_size') . 'B');
323+
$max_upload = OpenDxp\Helper\FileSystemHelper::filesizeToBytes(ini_get('upload_max_filesize') . 'B');
324+
$max_post = OpenDxp\Helper\FileSystemHelper::filesizeToBytes(ini_get('post_max_size') . 'B');
325325
$upload_mb = min($max_upload, $max_post) ?: $max_upload;
326326

327327
$settings['upload_max_filesize'] = (int) $upload_mb;

src/Controller/Admin/MiscController.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use OpenDxp\Bundle\AdminBundle\Tool as AdminTool;
2424
use OpenDxp\Config;
2525
use OpenDxp\Controller\Config\ControllerDataProvider;
26+
use OpenDxp\Helper\FileSystemHelper;
2627
use OpenDxp\Localization\LocaleServiceInterface;
2728
use OpenDxp\Tool;
2829
use OpenDxp\Tool\Storage;
@@ -272,9 +273,9 @@ public function iconListAction(Request $request, ?Profiler $profiler): Response
272273
$extraInfo = null;
273274

274275
$icons = match ($type) {
275-
'color' => rscandir($iconDir . '/flat-color-icons/'),
276-
'white' => rscandir($iconDir . '/flat-white-icons/'),
277-
'twemoji' => rscandir($iconDir . '/twemoji/'),
276+
'color' => FileSystemHelper::scanDirectory($iconDir . '/flat-color-icons/'),
277+
'white' => FileSystemHelper::scanDirectory($iconDir . '/flat-white-icons/'),
278+
'twemoji' => FileSystemHelper::scanDirectory($iconDir . '/twemoji/'),
278279
'flags' => $this->getFlags(),
279280
default => []
280281
};

src/Controller/Admin/SettingsController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use OpenDxp\Cache\Symfony\CacheClearer;
2525
use OpenDxp\Db;
2626
use OpenDxp\Event\SystemEvents;
27+
use OpenDxp\Helper\FileSystemHelper;
2728
use OpenDxp\Helper\StopMessengerWorkersTrait;
2829
use OpenDxp\Localization\LocaleServiceInterface;
2930
use OpenDxp\Logger;
@@ -586,7 +587,7 @@ public function clearTemporaryFilesAction(EventDispatcherInterface $eventDispatc
586587
Tool\Storage::get('asset_cache')->deleteDirectory('/');
587588

588589
// system files
589-
recursiveDelete(OPENDXP_SYSTEM_TEMP_DIRECTORY, false);
590+
FileSystemHelper::recursiveDelete(OPENDXP_SYSTEM_TEMP_DIRECTORY, false);
590591

591592
$eventDispatcher->dispatch(new GenericEvent(), SystemEvents::CACHE_CLEAR_TEMPORARY_FILES);
592593

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ private function addAdminSessionAttributeBags(ArrayNodeDefinition $adminNode): v
363363
->useAttributeAsKey('name')
364364
->beforeNormalization()
365365
->ifArray()->then(function ($v) use ($normalizers) {
366-
if (isAssocArray($v)) {
366+
if (!array_is_list($v)) {
367367
return $normalizers['assoc']($v);
368368
}
369369

src/EventListener/UsageStatisticsListener.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
use OpenDxp\Bundle\CoreBundle\EventListener\Traits\OpenDxpContextAwareTrait;
2020
use OpenDxp\Config;
21+
use OpenDxp\Helper\StringHelper;
2122
use OpenDxp\Http\Request\Resolver\OpenDxpContextResolver;
2223
use OpenDxp\Security\User\TokenStorageUserResolver;
2324
use Psr\Log\LoggerAwareTrait;
@@ -85,10 +86,10 @@ protected function getParams(Request $request): array
8586
$requestParams = [...$request->query->all(), ...$request->request->all()];
8687

8788
foreach ($requestParams as $key => $value) {
88-
if (is_json($value)) {
89+
if (StringHelper::isValidJson($value)) {
8990
$value = json_decode($value);
9091
if (is_array($value)) {
91-
array_walk_recursive($value, function (&$item, $key): void {
92+
array_walk_recursive($value, static function (&$item, $key): void {
9293
if (str_contains((string)$key, 'pass')) {
9394
$item = '*************';
9495
}

src/Security/ContentSecurityPolicyHandler.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
namespace OpenDxp\Bundle\AdminBundle\Security;
1818

1919
use OpenDxp\Config;
20+
use OpenDxp\Helper\StringHelper;
2021
use Psr\Log\LoggerAwareInterface;
2122
use Psr\Log\LoggerAwareTrait;
2223
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -145,7 +146,7 @@ public function getNonceHtmlAttribute(): string
145146
private function getNonce(): string
146147
{
147148
if (!$this->nonce) {
148-
$this->nonce = generateRandomSymfonySecret();
149+
$this->nonce = StringHelper::generateRandomSymfonySecret();
149150
}
150151

151152
return $this->nonce;

src/Security/CsrfProtectionHandler.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
namespace OpenDxp\Bundle\AdminBundle\Security;
1818

19+
use OpenDxp\Helper\StringHelper;
1920
use OpenDxp\Tool\Session;
2021
use Psr\Log\LoggerAwareInterface;
2122
use Psr\Log\LoggerAwareTrait;
@@ -69,9 +70,9 @@ public function getCsrfToken(SessionInterface $session): ?string
6970

7071
public function regenerateCsrfToken(SessionInterface $session, bool $force = true): void
7172
{
72-
$this->csrfToken = Session::useBag($session, function (AttributeBagInterface $adminSession) use ($force) {
73+
$this->csrfToken = Session::useBag($session, static function (AttributeBagInterface $adminSession) use ($force) {
7374
if ($force || !$adminSession->get('csrfToken')) {
74-
$adminSession->set('csrfToken', sha1(generateRandomSymfonySecret()));
75+
$adminSession->set('csrfToken', sha1(StringHelper::generateRandomSymfonySecret()));
7576
}
7677

7778
return $adminSession->get('csrfToken');

0 commit comments

Comments
 (0)