Friendica-7112 - Missing basepath fix

This commit is contained in:
Philipp Holzer 2019-05-13 19:30:03 +02:00
parent 34360ca46d
commit 076370631f
No known key found for this signature in database
GPG key ID: 517BE60E2CE5C8A5
2 changed files with 37 additions and 1 deletions

View file

@ -149,7 +149,8 @@ class App
*/
public function getBasePath()
{
return $this->config->get('system', 'basepath');
// Don't use the basepath of the config table for basepath (it should always be the config-file one)
return $this->config->getCache()->get('system', 'basepath');
}
/**

View file

@ -12,6 +12,7 @@ use Friendica\Database\DBA;
use Friendica\Database\DBStructure;
use Friendica\Model\Register;
use Friendica\Module\BaseAdminModule;
use Friendica\Util\Config\ConfigFileLoader;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
@ -73,6 +74,40 @@ class Summary extends BaseAdminModule
$well_known, $well_known, $a->getBaseURL() . '/help/Install');
}
// check legacy basepath settings
$configLoader = new ConfigFileLoader($a->getBasePath(), $a->getMode());
$configCache = new Config\Cache\ConfigCache();
$configLoader->setupCache($configCache);
$confBasepath = $configCache->get('system', 'basepath');
$currBasepath = $a->getConfig()->get('system', 'basepath');
if ($confBasepath !== $currBasepath || !is_dir($currBasepath)) {
if (is_dir($confBasepath) && Config::set('system', 'basepath', $confBasepath)) {
$a->getLogger()->info('Friendica\'s system.basepath was updated successfully.', [
'from' => $currBasepath,
'to' => $confBasepath,
]);
$warningtext[] = L10n::t('Friendica\'s system.basepath was updated from \'%s\' to \'%s\'. Please remove the system.basepath from your db to avoid differences.',
$currBasepath,
$confBasepath);
} elseif (!is_dir($currBasepath)) {
$a->getLogger()->alert('Friendica\'s system.basepath is wrong.', [
'from' => $currBasepath,
'to' => $confBasepath,
]);
$warningtext[] = L10n::t('Friendica\'s current system.basepath \'%s\' is wrong and the config file \'%s\' isn\'t used.',
$currBasepath,
$confBasepath);
} else {
$a->getLogger()->alert('Friendica\'s system.basepath is wrong.', [
'from' => $currBasepath,
'to' => $confBasepath,
]);
$warningtext[] = L10n::t('Friendica\'s current system.basepath \'%s\' is not equal to the config file \'%s\'. Please fix your configuration.',
$currBasepath,
$confBasepath);
}
}
$accounts = [
[L10n::t('Normal Account'), 0],
[L10n::t('Automatic Follower Account'), 0],