![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/migrations/ |
<?php declare(strict_types=1); namespace Mautic\Migrations; use Doctrine\DBAL\Schema\Schema; use Mautic\CoreBundle\Doctrine\AbstractMauticMigration; use Mautic\UserBundle\Entity\Role; use Mautic\UserBundle\Model\RoleModel; final class Version20211209022550 extends AbstractMauticMigration { public function postUp(Schema $schema): void { /** @var RoleModel $model */ $model = $this->container->get('mautic.model.factory')->getModel('user.role'); // Get all non admin roles. $roles = $model->getEntities([ 'orderBy' => 'r.id', 'orderByDir' => 'ASC', 'filter' => [ 'where' => [ [ 'col' => 'r.isAdmin', 'expr' => 'eq', 'val' => 0, ], ], ], ]); /** @var Role $role */ foreach ($roles as $role) { $rawPermissions = $role->getRawPermissions(); if (empty($rawPermissions)) { continue; } $leadPermission = $rawPermissions['lead:leads'] ?? []; $listPermission = $rawPermissions['lead:lists'] ?? []; if (empty($leadPermission) && empty($listPermission)) { continue; } // Map all leads permission to list. $newPermissions = $leadPermission; if (!in_array('full', $newPermissions)) { // If lead has viewown permission, then add create permission for list. if (in_array('viewown', $leadPermission)) { $newPermissions[] = 'create'; } // Add the list related permission. foreach ($listPermission as $perm) { $newPermissions[] = $perm; } } $rawPermissions['lead:lists'] = array_unique($newPermissions); $model->setRolePermissions($role, $rawPermissions); $model->saveEntity($role); } } }