Edit file File name : Version20221003150202.php Content :<?php /** * SuiteCRM is a customer relationship management program developed by SalesAgility Ltd. * Copyright (C) 2022 SalesAgility Ltd. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License version 3 as published by the * Free Software Foundation with the addition of the following permission added * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK * IN WHICH THE COPYRIGHT IS OWNED BY SALESAGILITY, SALESAGILITY DISCLAIMS THE * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more * details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * In accordance with Section 7(b) of the GNU Affero General Public License * version 3, these Appropriate Legal Notices must retain the display of the * "Supercharged by SuiteCRM" logo. If the display of the logos is not reasonably * feasible for technical reasons, the Appropriate Legal Notices must display * the words "Supercharged by SuiteCRM". */ declare(strict_types=1); namespace App\Migrations; use Doctrine\DBAL\Schema\Schema; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\DependencyInjection\ContainerInterface; final class Version20221003150202 extends BaseMigration implements ContainerAwareInterface { use EnvHandlingMigrationTrait; /** * @var ContainerInterface */ protected $container; /** * @var LoggerInterface */ protected $upgradeLogger; public function getDescription(): string { return 'Add default SAML auto create option to .env'; } public function isTransactional(): bool { return false; } public function up(Schema $schema): void { $envFile = $this->getProjectDir() . "/.env"; if (!file_exists($envFile)) { return; } $envContents = file_get_contents($envFile); $this->addAutoCreateOption($envContents, $envFile); } /** * Check and add missing saml auto create options * @param $envContents * @param string $envFile */ protected function addAutoCreateOption(&$envContents, string $envFile): void { $properties = [ 'SAML_AUTO_CREATE' => 'disabled', ]; $wrapperStart = '###> SAML AUTO CREATE CONFIG ###'; $wrapperEnd = '###< SAML AUTO CREATE CONFIG##'; $propertiesToAdd = $this->getContentToAdd($envContents, $properties, $wrapperStart, $wrapperEnd); if (!empty($propertiesToAdd)) { $envContents .= $propertiesToAdd; file_put_contents($envFile, $envContents); $this->log('Added SAML auto create options to .env'); return; } $this->log('SAML auto create option already in .env, skipping.'); } public function down(Schema $schema): void { } } Save