vendor/pimcore/data-hub/src/Migrations/PimcoreX/Version20211108160248.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * Pimcore
  5.  *
  6.  * This source file is available under two different licenses:
  7.  * - GNU General Public License version 3 (GPLv3)
  8.  * - Pimcore Commercial License (PCL)
  9.  * Full copyright and license information is available in
  10.  * LICENSE.md which is distributed with this source code.
  11.  *
  12.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  13.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  14.  */
  15. namespace Pimcore\Bundle\DataHubBundle\Migrations\PimcoreX;
  16. use Doctrine\DBAL\Schema\Schema;
  17. use Doctrine\Migrations\AbstractMigration;
  18. use Pimcore\Bundle\DataHubBundle\Controller\ConfigController;
  19. use Pimcore\Bundle\DataHubBundle\Installer;
  20. /**
  21.  * Auto-generated Migration: Please modify to your needs!
  22.  */
  23. final class Version20211108160248 extends AbstractMigration
  24. {
  25.     private function migrateUsers(bool $up): void
  26.     {
  27.         $listing = new \Pimcore\Model\User\Listing();
  28.         $listing->setCondition('`type` = ? or `type` = ?', ['role''user']);
  29.         $listing->load();
  30.         $list $listing->getItems();
  31.         foreach ($list as $item) {
  32.             $permissions $item->getPermissions();
  33.             if (($up === true && in_array(ConfigController::CONFIG_NAME$permissions) && !in_array(Installer::DATAHUB_ADMIN_PERMISSION$permissions)) ||
  34.                 ($up === false && in_array(Installer::DATAHUB_ADMIN_PERMISSION$permissions))) {
  35.                 if ($up === true) {
  36.                     $permissions[] = Installer::DATAHUB_ADMIN_PERMISSION;
  37.                 } else {
  38.                     array_splice($permissionsarray_search(Installer::DATAHUB_ADMIN_PERMISSION$permissions));
  39.                 }
  40.                 $item->setPermissions($permissions);
  41.                 $item->save();
  42.             }
  43.         }
  44.     }
  45.     public function up(Schema $schema): void
  46.     {
  47.         $this->addSql(sprintf("INSERT IGNORE INTO users_permission_definitions (`key`) VALUES('%s');"Installer::DATAHUB_ADAPTER_PERMISSION));
  48.         $this->addSql(sprintf("INSERT IGNORE INTO users_permission_definitions (`key`) VALUES('%s');"Installer::DATAHUB_ADMIN_PERMISSION));
  49.         $this->addSql(sprintf("UPDATE users_permission_definitions SET `category` = '%s' WHERE `key` IN ('%s', '%s', '%s')",
  50.             Installer::DATAHUB_PERMISSION_CATEGORY,
  51.             Installer::DATAHUB_ADAPTER_PERMISSION,
  52.             Installer::DATAHUB_ADMIN_PERMISSION,
  53.             ConfigController::CONFIG_NAME
  54.         ));
  55.         $this->migrateUsers(true);
  56.     }
  57.     public function down(Schema $schema): void
  58.     {
  59.         $this->migrateUsers(false);
  60.         $this->addSql(sprintf("DELETE FROM users_permission_definitions WHERE `key` = '%s'"Installer::DATAHUB_ADAPTER_PERMISSION));
  61.         $this->addSql(sprintf("DELETE FROM users_permission_definitions WHERE `key` = '%s'"Installer::DATAHUB_ADMIN_PERMISSION));
  62.     }
  63. }