* Allow setting single user site profile

* Fix site profile array munging
This commit is contained in:
Zach Copley 2011-08-27 14:25:12 -07:00
parent be321242d3
commit 7f5080d5e3
3 changed files with 53 additions and 32 deletions

View File

@ -414,7 +414,8 @@ abstract class Installer
'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 'site_profile' => $this->siteProfile,
'nickname' => $this->adminNick
)); ));
// assemble configuration file in a string // assemble configuration file in a string
@ -437,7 +438,13 @@ abstract class Installer
"\$config['db']['type'] = {$vals['db_type']};\n\n". "\$config['db']['type'] = {$vals['db_type']};\n\n".
// site profile // site profile
"\$config['site']['profile'] = {$vals['site_profile']};\n\n"; "\$config['site']['profile'] = {$vals['site_profile']};\n";
if ($this->siteProfile == "singleuser") {
$cfg .= "\$config['singleuser']['nickname'] = {$vals['nickname']};\n\n";
} else {
$cfg .= "\n";
}
// Normalize line endings for Windows servers // Normalize line endings for Windows servers
$cfg = str_replace("\n", PHP_EOL, $cfg); $cfg = str_replace("\n", PHP_EOL, $cfg);

View File

@ -87,11 +87,16 @@ class PublicSite extends SiteProfileSettings
* @return type array an array of settings * @return type array an array of settings
*/ */
static function getSettings() { static function getSettings() {
global $config;
return array( return array(
'site' => array( // We only want to change these values, not replace entire 'site' array
'inviteonly' => false, 'site' => array_replace(
'private' => false $config['site'], array(
), 'inviteonly' => false,
'private' => false,
'closed' => false
)
),
'plugins' => array( 'plugins' => array(
'default' => array( 'default' => array(
'Activity' => null, 'Activity' => null,
@ -109,10 +114,9 @@ class PublicSite extends SiteProfileSettings
'SearchSub' => null, 'SearchSub' => null,
'StrictTransportSecurity' => null, 'StrictTransportSecurity' => null,
'TagSub' => null 'TagSub' => null
), )
'discovery' => ),
array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.) 'discovery' => array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
)
); );
} }
} }
@ -130,11 +134,15 @@ class PrivateSite extends SiteProfileSettings
* @return type array an array of settings * @return type array an array of settings
*/ */
static function getSettings() { static function getSettings() {
global $config;
return array( return array(
'site' => array( // We only want to change these values, not replace entire 'site' array
'inviteonly' => true, 'site' => array_replace(
'private' => true $config['site'], array(
), 'inviteonly' => true,
'private' => true,
)
),
'plugins' => array( 'plugins' => array(
'default' => array( 'default' => array(
'Activity' => null, 'Activity' => null,
@ -189,11 +197,15 @@ class CommunitySite extends SiteProfileSettings
* @return type array an array of settings * @return type array an array of settings
*/ */
static function getSettings() { static function getSettings() {
global $config;
return array( return array(
'site' => array( // We only want to change these values, not replace entire 'site' array
'inviteonly' => true, 'site' => array_replace(
'private' => false $config['site'], array(
), 'private' => false,
'closed' => false
)
),
'plugins' => array( 'plugins' => array(
'default' => array( 'default' => array(
'Activity' => null, 'Activity' => null,
@ -210,10 +222,9 @@ class CommunitySite extends SiteProfileSettings
'SearchSub' => null, 'SearchSub' => null,
'StrictTransportSecurity' => null, 'StrictTransportSecurity' => null,
'TagSub' => null 'TagSub' => null
), )
'discovery' => ),
array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.) 'discovery' => array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
)
); );
} }
@ -230,12 +241,16 @@ class SingleuserSite extends SiteProfileSettings
* @return type array an array of settings * @return type array an array of settings
*/ */
static function getSettings() { static function getSettings() {
global $config;
return array( return array(
'singleuser' => array('enabled' => true), 'singleuser' => array('enabled' => true),
'site' => array( // We only want to change these values, not replace entire 'site' array
'private' => false, 'site' => array_replace(
'closed' => true, $config['site'], array(
), 'private' => false,
'closed' => true,
)
),
'plugins' => array( 'plugins' => array(
'default' => array( 'default' => array(
'Activity' => null, 'Activity' => null,
@ -253,11 +268,10 @@ class SingleuserSite extends SiteProfileSettings
'StrictTransportSecurity' => null, 'StrictTransportSecurity' => null,
'TagSub' => null, 'TagSub' => null,
'TwitterBridge' => null, 'TwitterBridge' => null,
'FacebookBridge' => null 'FacebookBridge' => null,
), )
'discovery' => ),
array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.) 'discovery' => array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
)
); );
} }

View File

@ -310,7 +310,7 @@ class StatusNet
{ {
global $config; global $config;
$settings = SiteProfile::getSettings($name); $settings = SiteProfile::getSettings($name);
$config = array_replace_recursive($config, $settings); $config = array_replace($config, $settings);
} }
protected function _sn_to_path($sn) protected function _sn_to_path($sn)