]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
* Allow setting single user site profile
authorZach Copley <zach@status.net>
Sat, 27 Aug 2011 21:25:12 +0000 (14:25 -0700)
committerZach Copley <zach@status.net>
Sat, 27 Aug 2011 21:25:12 +0000 (14:25 -0700)
* Fix site profile array munging

lib/installer.php
lib/siteprofile.php
lib/statusnet.php

index 0f6af0237830ae28bcb0923e23404b522dec7cc1..35f5d591b4f56193360b9bbf5f172c533d45d2db 100644 (file)
@@ -414,7 +414,8 @@ abstract class Installer
             'path' => $this->path,
             'db_database' => $this->db['database'],
             'db_type' => $this->db['type'],
-            'site_profile' => $this->siteProfile
+            'site_profile' => $this->siteProfile,
+            'nickname' => $this->adminNick
         ));
 
         // assemble configuration file in a string
@@ -437,7 +438,13 @@ abstract class Installer
                 "\$config['db']['type'] = {$vals['db_type']};\n\n".
 
                 // 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
         $cfg = str_replace("\n", PHP_EOL, $cfg);
index 53e6482aae762f616fb30159be4ae8e2654557f0..c294d24569c2adca80f3fe5ba263e6901569d1f3 100644 (file)
@@ -87,11 +87,16 @@ class PublicSite extends SiteProfileSettings
      * @return type array   an array of settings
      */
     static function getSettings() {
+        global $config;
         return array(
-            'site' => array(
-                'inviteonly' => false,
-                'private'    => false
-                ),
+            // We only want to change these values, not replace entire 'site' array
+            'site' => array_replace(
+                $config['site'], array(
+                    'inviteonly' => false,
+                    'private'    => false,
+                    'closed'     => false
+                )
+            ),
             'plugins' => array(
                 'default' => array(
                     'Activity'                => null,
@@ -109,10 +114,9 @@ class PublicSite extends SiteProfileSettings
                     'SearchSub'               => null,
                     'StrictTransportSecurity' => 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
      */
     static function getSettings() {
+        global $config;
         return array(
-            'site' => array(
-                'inviteonly' => true,
-                'private'    => true
-                ),
+            // We only want to change these values, not replace entire 'site' array
+            'site' => array_replace(
+                $config['site'], array(
+                    'inviteonly' => true,
+                    'private'    => true,
+                )
+            ),
             'plugins' => array(
                 'default' => array(
                     'Activity'                => null,
@@ -189,11 +197,15 @@ class CommunitySite extends SiteProfileSettings
      * @return type array  an array of settings
      */
     static function getSettings() {
+        global $config;
         return array(
-            'site' => array(
-                'inviteonly' => true,
-                'private'    => false
-                ),
+            // We only want to change these values, not replace entire 'site' array
+            'site' => array_replace(
+                $config['site'], array(
+                    'private'    => false,
+                    'closed'     => false
+                )
+            ),
             'plugins' => array(
                 'default' => array(
                     'Activity'                => null,
@@ -210,10 +222,9 @@ class CommunitySite extends SiteProfileSettings
                     'SearchSub'               => null,
                     'StrictTransportSecurity' => 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
      */
     static function getSettings() {
+        global $config;
         return array(
             'singleuser' => array('enabled' => true),
-            'site' => array(
-                'private'    => false,
-                'closed'     => true,
-                ),
+            // We only want to change these values, not replace entire 'site' array
+            'site' => array_replace(
+                $config['site'], array(
+                    'private'    => false,
+                    'closed'     => true,
+                )
+            ),
             'plugins' => array(
                 'default' => array(
                     'Activity'                => null,
@@ -253,11 +268,10 @@ class SingleuserSite extends SiteProfileSettings
                     'StrictTransportSecurity' => null,
                     'TagSub'                  => null,
                     'TwitterBridge'           => null,
-                    'FacebookBridge'          => null
-                ),
-            'discovery' =>
-                array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
-            )
+                    'FacebookBridge'          => null,
+                )
+            ),
+            'discovery' => array('cors' => true) // Allow Cross-Origin Resource Sharing for service discovery (host-meta, XRD, etc.)
         );
     }
 
index 846d525c385a395a3331d5cefa80a953c0c0ba43..e4fb60ec7c6e41f02967d4d8bafbdedab10beb31 100644 (file)
@@ -310,7 +310,7 @@ class StatusNet
     {
         global $config;
         $settings = SiteProfile::getSettings($name);
-        $config = array_replace_recursive($config, $settings);
+        $config = array_replace($config, $settings);
     }
 
     protected function _sn_to_path($sn)