diff options
author | MichaIng <micha@dietpi.com> | 2019-12-04 12:42:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-04 12:42:55 +0100 |
commit | 4384806f616cf7b9f6a4492ba2fd094afd064f86 (patch) | |
tree | c653df3fcea2c8fce6101d066e0bf42db8026d6e /lib/private/Setup.php | |
parent | 5afd7abf4481f019ad0044393b4734645e40f5af (diff) | |
parent | 76b78edd40fcb5dbe7f0434cbc41d2e291acfec1 (diff) | |
download | nextcloud-server-4384806f616cf7b9f6a4492ba2fd094afd064f86.tar.gz nextcloud-server-4384806f616cf7b9f6a4492ba2fd094afd064f86.zip |
Merge branch 'master' into patch-1
Diffstat (limited to 'lib/private/Setup.php')
-rw-r--r-- | lib/private/Setup.php | 93 |
1 files changed, 52 insertions, 41 deletions
diff --git a/lib/private/Setup.php b/lib/private/Setup.php index e360319c5b6..32a85264f57 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -49,7 +49,9 @@ use OC\Authentication\Token\DefaultTokenCleanupJob; use OC\Authentication\Token\DefaultTokenProvider; use OC\Log\Rotate; use OC\Preview\BackgroundCleanupJob; +use OCP\AppFramework\Utility\ITimeFactory; use OCP\Defaults; +use OCP\IGroup; use OCP\IL10N; use OCP\ILogger; use OCP\IUser; @@ -80,14 +82,15 @@ class Setup { * @param ISecureRandom $random * @param Installer $installer */ - public function __construct(SystemConfig $config, - IniGetWrapper $iniWrapper, - IL10N $l10n, - Defaults $defaults, - ILogger $logger, - ISecureRandom $random, - Installer $installer - ) { + public function __construct( + SystemConfig $config, + IniGetWrapper $iniWrapper, + IL10N $l10n, + Defaults $defaults, + ILogger $logger, + ISecureRandom $random, + Installer $installer + ) { $this->config = $config; $this->iniWrapper = $iniWrapper; $this->l10n = $l10n; @@ -100,13 +103,14 @@ class Setup { static protected $dbSetupClasses = [ 'mysql' => \OC\Setup\MySQL::class, 'pgsql' => \OC\Setup\PostgreSQL::class, - 'oci' => \OC\Setup\OCI::class, + 'oci' => \OC\Setup\OCI::class, 'sqlite' => \OC\Setup\Sqlite::class, 'sqlite3' => \OC\Setup\Sqlite::class, ]; /** * Wrapper around the "class_exists" PHP function to be able to mock it + * * @param string $name * @return bool */ @@ -116,6 +120,7 @@ class Setup { /** * Wrapper around the "is_callable" PHP function to be able to mock it + * * @param string $name * @return bool */ @@ -141,7 +146,7 @@ class Setup { */ public function getSupportedDatabases($allowAllDatabases = false) { $availableDatabases = [ - 'sqlite' => [ + 'sqlite' => [ 'type' => 'pdo', 'call' => 'sqlite', 'name' => 'SQLite', @@ -168,24 +173,24 @@ class Setup { $configuredDatabases = $this->config->getValue('supportedDatabases', ['sqlite', 'mysql', 'pgsql']); } - if(!is_array($configuredDatabases)) { + if (!is_array($configuredDatabases)) { throw new Exception('Supported databases are not properly configured.'); } $supportedDatabases = array(); - foreach($configuredDatabases as $database) { - if(array_key_exists($database, $availableDatabases)) { + foreach ($configuredDatabases as $database) { + if (array_key_exists($database, $availableDatabases)) { $working = false; $type = $availableDatabases[$database]['type']; $call = $availableDatabases[$database]['call']; if ($type === 'function') { $working = $this->is_callable($call); - } elseif($type === 'pdo') { + } elseif ($type === 'pdo') { $working = in_array($call, $this->getAvailableDbDriversForPdo(), true); } - if($working) { + if ($working) { $supportedDatabases[$database] = $availableDatabases[$database]['name']; } } @@ -204,14 +209,14 @@ class Setup { public function getSystemInfo($allowAllDatabases = false) { $databases = $this->getSupportedDatabases($allowAllDatabases); - $dataDir = $this->config->getValue('datadirectory', \OC::$SERVERROOT.'/data'); + $dataDir = $this->config->getValue('datadirectory', \OC::$SERVERROOT . '/data'); $errors = []; // Create data directory to test whether the .htaccess works // Notice that this is not necessarily the same data directory as the one // that will effectively be used. - if(!file_exists($dataDir)) { + if (!file_exists($dataDir)) { @mkdir($dataDir); } $htAccessWorking = true; @@ -242,7 +247,7 @@ class Setup { ]; } - if($this->iniWrapper->getString('open_basedir') !== '' && PHP_INT_SIZE === 4) { + if ($this->iniWrapper->getString('open_basedir') !== '' && PHP_INT_SIZE === 4) { $errors[] = [ 'error' => $this->l10n->t( 'It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. ' . @@ -275,14 +280,14 @@ class Setup { $error = array(); $dbType = $options['dbtype']; - if(empty($options['adminlogin'])) { + if (empty($options['adminlogin'])) { $error[] = $l->t('Set an admin username.'); } - if(empty($options['adminpass'])) { + if (empty($options['adminpass'])) { $error[] = $l->t('Set an admin password.'); } - if(empty($options['directory'])) { - $options['directory'] = \OC::$SERVERROOT."/data"; + if (empty($options['directory'])) { + $options['directory'] = \OC::$SERVERROOT . "/data"; } if (!isset(self::$dbSetupClasses[$dbType])) { @@ -310,8 +315,8 @@ class Setup { $request = \OC::$server->getRequest(); //no errors, good - if(isset($options['trusted_domains']) - && is_array($options['trusted_domains'])) { + if (isset($options['trusted_domains']) + && is_array($options['trusted_domains'])) { $trustedDomains = $options['trusted_domains']; } else { $trustedDomains = [$request->getInsecureServerHost()]; @@ -329,12 +334,12 @@ class Setup { //write the config file $newConfigValues = [ - 'passwordsalt' => $salt, - 'secret' => $secret, - 'trusted_domains' => $trustedDomains, - 'datadirectory' => $dataDir, - 'dbtype' => $dbType, - 'version' => implode('.', \OCP\Util::getVersion()), + 'passwordsalt' => $salt, + 'secret' => $secret, + 'trusted_domains' => $trustedDomains, + 'datadirectory' => $dataDir, + 'dbtype' => $dbType, + 'version' => implode('.', \OCP\Util::getVersion()), ]; if ($this->config->getValue('overwrite.cli.url', null) === null) { @@ -363,13 +368,13 @@ class Setup { } //create the user and group - $user = null; + $user = null; try { $user = \OC::$server->getUserManager()->createUser($username, $password); if (!$user) { $error[] = "User <$username> could not be created."; } - } catch(Exception $exception) { + } catch (Exception $exception) { $error[] = $exception->getMessage(); } @@ -379,22 +384,25 @@ class Setup { $config->setAppValue('core', 'lastupdatedat', microtime(true)); $config->setAppValue('core', 'vendor', $this->getVendor()); - $group =\OC::$server->getGroupManager()->createGroup('admin'); - $group->addUser($user); + $group = \OC::$server->getGroupManager()->createGroup('admin'); + if ($group instanceof IGroup) { + $group->addUser($user); + } // Install shipped apps and specified app bundles Installer::installShippedApps(); $bundleFetcher = new BundleFetcher(\OC::$server->getL10N('lib')); $defaultInstallationBundles = $bundleFetcher->getDefaultInstallationBundle(); - foreach($defaultInstallationBundles as $bundle) { + foreach ($defaultInstallationBundles as $bundle) { try { $this->installer->installAppBundle($bundle); - } catch (Exception $e) {} + } catch (Exception $e) { + } } // create empty file in data dir, so we can later find // out that this is indeed an ownCloud data directory - file_put_contents($config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data').'/.ocdata', ''); + file_put_contents($config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/.ocdata', ''); // Update .htaccess files self::updateHtaccess(); @@ -414,6 +422,9 @@ class Setup { $userSession->login($username, $password); $userSession->createSessionToken($request, $userSession->getUser()->getUID(), $username, $password); + $session = $userSession->getSession(); + $session->set('last-password-confirm', \OC::$server->query(ITimeFactory::class)->getTime()); + // Set email for admin if (!empty($options['adminemail'])) { $config->setUserValue($user->getUID(), 'settings', 'email', $options['adminemail']); @@ -434,7 +445,7 @@ class Setup { * @return string Absolute path to htaccess */ private function pathToHtaccess() { - return \OC::$SERVERROOT.'/.htaccess'; + return \OC::$SERVERROOT . '/.htaccess'; } /** @@ -499,7 +510,7 @@ class Setup { // Add rewrite rules if the RewriteBase is configured $rewriteBase = $config->getValue('htaccess.RewriteBase', ''); - if($rewriteBase !== '') { + if ($rewriteBase !== '') { $content .= "\n<IfModule mod_rewrite.c>"; $content .= "\n Options -MultiViews"; $content .= "\n RewriteRule ^core/js/oc.js$ index.php [PT,E=PATH_INFO:$1]"; @@ -532,7 +543,7 @@ class Setup { if ($content !== '') { //suppress errors in case we don't have permissions for it - return (bool) @file_put_contents($setupHelper->pathToHtaccess(), $htaccessContent.$content . "\n"); + return (bool)@file_put_contents($setupHelper->pathToHtaccess(), $htaccessContent . $content . "\n"); } return false; @@ -582,6 +593,6 @@ class Setup { // this should really be a JSON file require \OC::$SERVERROOT . '/version.php'; /** @var string $vendor */ - return (string) $vendor; + return (string)$vendor; } } |