Set site profile after creating initial user during installation
This commit is contained in:
parent
e26d3b0ede
commit
eaaa978d20
|
@ -413,9 +413,7 @@ abstract class Installer
|
||||||
'server' => $this->server,
|
'server' => $this->server,
|
||||||
'path' => $this->path,
|
'path' => $this->path,
|
||||||
'db_database' => $this->db['database'],
|
'db_database' => $this->db['database'],
|
||||||
'db_type' => $this->db['type'],
|
'db_type' => $this->db['type']
|
||||||
'site_profile' => $this->siteProfile,
|
|
||||||
'nickname' => $this->adminNick
|
|
||||||
));
|
));
|
||||||
|
|
||||||
// assemble configuration file in a string
|
// assemble configuration file in a string
|
||||||
|
@ -435,10 +433,36 @@ abstract class Installer
|
||||||
// database
|
// database
|
||||||
"\$config['db']['database'] = {$vals['db_database']};\n\n".
|
"\$config['db']['database'] = {$vals['db_database']};\n\n".
|
||||||
($this->db['type'] == 'pgsql' ? "\$config['db']['quote_identifiers'] = true;\n\n":'').
|
($this->db['type'] == 'pgsql' ? "\$config['db']['quote_identifiers'] = true;\n\n":'').
|
||||||
"\$config['db']['type'] = {$vals['db_type']};\n\n".
|
"\$config['db']['type'] = {$vals['db_type']};\n\n";
|
||||||
|
|
||||||
// site profile
|
// Normalize line endings for Windows servers
|
||||||
"\$config['site']['profile'] = {$vals['site_profile']};\n";
|
$cfg = str_replace("\n", PHP_EOL, $cfg);
|
||||||
|
|
||||||
|
// write configuration file out to install directory
|
||||||
|
$res = file_put_contents(INSTALLDIR.'/config.php', $cfg);
|
||||||
|
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write the site profile. We do this after creating the initial user
|
||||||
|
* in case the site profile is set to single user. This gets around the
|
||||||
|
* 'chicken-and-egg' problem of the system requiring a valid user for
|
||||||
|
* single user mode, before the intial user is actually created. Yeah,
|
||||||
|
* we should probably do this in smarter way.
|
||||||
|
*
|
||||||
|
* @return int res number of bytes written
|
||||||
|
*/
|
||||||
|
function writeSiteProfile()
|
||||||
|
{
|
||||||
|
$vals = $this->phpVals(array(
|
||||||
|
'site_profile' => $this->siteProfile,
|
||||||
|
'nickname' => $this->adminNick
|
||||||
|
));
|
||||||
|
|
||||||
|
$cfg =
|
||||||
|
// site profile
|
||||||
|
"\$config['site']['profile'] = {$vals['site_profile']};\n";
|
||||||
|
|
||||||
if ($this->siteProfile == "singleuser") {
|
if ($this->siteProfile == "singleuser") {
|
||||||
$cfg .= "\$config['singleuser']['nickname'] = {$vals['nickname']};\n\n";
|
$cfg .= "\$config['singleuser']['nickname'] = {$vals['nickname']};\n\n";
|
||||||
|
@ -450,7 +474,7 @@ abstract class Installer
|
||||||
$cfg = str_replace("\n", PHP_EOL, $cfg);
|
$cfg = str_replace("\n", PHP_EOL, $cfg);
|
||||||
|
|
||||||
// write configuration file out to install directory
|
// write configuration file out to install directory
|
||||||
$res = file_put_contents(INSTALLDIR.'/config.php', $cfg);
|
$res = file_put_contents(INSTALLDIR.'/config.php', $cfg, FILE_APPEND);
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
@ -557,6 +581,9 @@ abstract class Installer
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure we can write to the file twice
|
||||||
|
$oldUmask = umask(000);
|
||||||
|
|
||||||
if (!$this->skipConfig) {
|
if (!$this->skipConfig) {
|
||||||
$this->updateStatus("Writing config file...");
|
$this->updateStatus("Writing config file...");
|
||||||
$res = $this->writeConf();
|
$res = $this->writeConf();
|
||||||
|
@ -582,6 +609,21 @@ abstract class Installer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$this->skipConfig) {
|
||||||
|
$this->updateStatus("Setting site profile...");
|
||||||
|
$res = $this->writeSiteProfile();
|
||||||
|
|
||||||
|
if (!$res) {
|
||||||
|
$this->updateStatus("Can't write to config file.", true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore original umask
|
||||||
|
umask($oldUmask);
|
||||||
|
// Set permissions back to something decent
|
||||||
|
chmod(INSTALLDIR.'/config.php', 0644);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO https needs to be considered
|
TODO https needs to be considered
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user