custom/plugins/CioCustomerPermissionGroups/src/CioCustomerPermissionGroups.php line 9

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace CioCustomerPermissionGroups;
  3. use Shopware\Core\Framework\Plugin;
  4. use Doctrine\DBAL\Connection;
  5. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  6. class CioCustomerPermissionGroups extends Plugin
  7. {
  8.     public function uninstall(UninstallContext $context): void
  9.     {
  10.         parent::uninstall($context);
  11.         if ($context->keepUserData()) {
  12.             return;
  13.         }
  14.         $connection $this->container->get(Connection::class);
  15.         //$connection->executeUpdate('DROP TABLE IF EXISTS `customer_aclgroups`');
  16.         //$connection->executeUpdate('ALTER TABLE `customer` DROP COLUMN `customer_aclgroup_ids`');
  17.     }
  18.     public static function arrayUnique(array $array, callable $comparator): array
  19.     {
  20.         $unique_array = [];
  21.         do {
  22.             $element array_shift($array);
  23.             $unique_array[] = $element;
  24.             $array array_udiff(
  25.                 $array,
  26.                 [$element],
  27.                 $comparator
  28.             );
  29.         } while (count($array) > 0);
  30.         return $unique_array;
  31.     }
  32.     public static function getAclIds($array)
  33.     {
  34.         if (!is_array($array)) {
  35.             return [];
  36.         }
  37.         $array self::uniqueACL($array);
  38.         $res = [];
  39.         foreach ($array as $item) {
  40.             $res[] = $item['id'];
  41.         }
  42.         return $res;
  43.     }
  44.     public static function uniqueACL(array $array): array
  45.     {
  46.         foreach ($array as $key => $customAclRole) {
  47.             if (!is_array($customAclRole)) {
  48.                 unset($array[$key]);
  49.             }
  50.         }
  51.         if (count($array)) {
  52.             return self::arrayUnique($array, function ($a$b) {
  53.                 if ($a['id'] == $b['id']) {
  54.                     $b['imported'] = $a['imported'] = true;
  55.                 }
  56.                 return $a['id'] <=> $b['id'];
  57.             });
  58.         }
  59.         return [];
  60.     }
  61. }