<?php
declare(strict_types=1);
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
use Eccube\Entity\Master\LoginHistoryStatus;
use Eccube\Util\StringUtil;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20210412073123 extends AbstractMigration
{
public function up(Schema $schema): void
{
if ($schema->hasTable('plg_admin_record_config')) {
$denyHostsPlugin = $this->connection->fetchOne('select admin_deny_hosts FROM plg_admin_record_config') ?: '';
$denyHostsPlugin = array_filter(\explode("\n", StringUtil::convertLineFeed($denyHostsPlugin)), function ($str) {
return StringUtil::isNotBlank($str);
});
$denyHosts = array_merge(env('ECCUBE_ADMIN_DENY_HOSTS', []), $denyHostsPlugin);
$denyHosts = array_values(array_unique($denyHosts));
$denyHosts = \json_encode($denyHosts);
$envFile = __DIR__.'/../../.env';
$env = file_get_contents($envFile);
$env = StringUtil::replaceOrAddEnv($env, [
'ECCUBE_ADMIN_DENY_HOSTS' => "'${denyHosts}'",
]);
file_put_contents($envFile, $env);
}
if ($schema->hasTable('plg_admin_record')) {
$stmt = $this->connection->createQueryBuilder()
->select('*')
->from('plg_admin_record')
->orderBy('id', 'ASC')
->execute();
while ($row = $stmt->fetch()) {
$this->addSql(
"INSERT INTO dtb_login_history (user_name, client_ip, create_date, update_date, login_history_status_id, member_id, discriminator_type) VALUES (?, ?, ?, ?, ?, ?, 'loginhistory')",
[
$row['user_name'],
$row['client_ip'],
$row['create_date'],
$row['update_date'],
$row['success_flg'] ? LoginHistoryStatus::SUCCESS : LoginHistoryStatus::FAILURE,
$row['member_id'],
]
);
}
}
}
public function down(Schema $schema): void
{
if ($schema->hasTable('dtb_login_history')) {
$this->addSql('DELETE FROM dtb_login_history');
}
}
}