diff --git a/lib/Alchemy/Phrasea/Setup/Installer.php b/lib/Alchemy/Phrasea/Setup/Installer.php index a26cc9d3cc..4c9c76d0f8 100644 --- a/lib/Alchemy/Phrasea/Setup/Installer.php +++ b/lib/Alchemy/Phrasea/Setup/Installer.php @@ -192,6 +192,9 @@ private function createConfigFile(Connection $abConn, $serverName, $binaryData, $config['servername'] = $serverName; $config['main']['key'] = $this->app['random.medium']->generateString(16); + // generate from the random instance key + $config['phraseanet-service']['phraseanet_local_id'] = md5($config['main']['key']); + // define storage config $defaultStoragePaths = [ 'subdefs' => __DIR__ . '/../../../../datas', diff --git a/lib/classes/patch/418RC7PHRAS3935.php b/lib/classes/patch/418RC7PHRAS3935.php new file mode 100644 index 0000000000..d033e7deed --- /dev/null +++ b/lib/classes/patch/418RC7PHRAS3935.php @@ -0,0 +1,79 @@ +release; + } + + /** + * {@inheritdoc} + */ + public function getDoctrineMigrations() + { + return []; + } + + /** + * {@inheritdoc} + */ + public function require_all_upgrades() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function concern() + { + return $this->concern; + } + + /** + * {@inheritdoc} + */ + public function apply(base $base, Application $app) + { + if ($base->get_base_type() === base::DATA_BOX) { + $this->patch_databox($base, $app); + } elseif ($base->get_base_type() === base::APPLICATION_BOX) { + $this->patch_appbox($base, $app); + } + + return true; + } + + private function patch_databox(databox $databox, Application $app) + { + } + + private function patch_appbox(base $appbox, Application $app) + { + /** @var PropertyAccess $conf */ + $conf = $app['conf']; + + if (!$conf->has(['phraseanet-service', 'phraseanet_local_id'])) { + // instance key is already a random value + $instanceKey = $conf->get(['main', 'key']); + + $phraseanetLocalId = md5($instanceKey); + + $conf->set(['phraseanet-service', 'phraseanet_local_id'], $phraseanetLocalId); + } + } +}