]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/apistatusnetconfig.php
Merge branch 'master' into testing
[quix0rs-gnu-social.git] / actions / apistatusnetconfig.php
index bff8313b5c55e993165ee7a798f015ae8e6fb90f..7cd7c5ed6cfe7b6a521b1b1292d18d75023a6d88 100644 (file)
@@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiStatusnetConfigAction extends ApiAction
 {
     var $keys = array(
@@ -60,7 +59,8 @@ class ApiStatusnetConfigAction extends ApiAction
         'notice' => array('contentlimit'),
         'throttle' => array('enabled', 'count', 'timespan'),
         'xmpp' => array('enabled', 'server', 'port', 'user'),
-        'integration' => array('source')
+        'integration' => array('source'),
+        'attachments' => array('uploads', 'file_quota')
     );
 
     /**
@@ -69,9 +69,7 @@ class ApiStatusnetConfigAction extends ApiAction
      * @param array $args $_REQUEST args
      *
      * @return boolean success flag
-     *
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -85,7 +83,6 @@ class ApiStatusnetConfigAction extends ApiAction
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
@@ -97,19 +94,25 @@ class ApiStatusnetConfigAction extends ApiAction
 
             // XXX: check that all sections and settings are legal XML elements
 
-            common_debug(var_export($this->keys, true));
-
             foreach ($this->keys as $section => $settings) {
                 $this->elementStart($section);
                 foreach ($settings as $setting) {
-                    $value = common_config($section, $setting);
+                    $value = $this->setting($section, $setting);
                     if (is_array($value)) {
                         $value = implode(',', $value);
-                    } else if ($value === false) {
+                    } else if ($value === false || $value == '0') {
                         $value = 'false';
-                    } else if ($value === true) {
+                    } else if ($value === true || $value == '1') {
                         $value = 'true';
                     }
+
+                    // return theme logo if there's no site specific one
+                    if (empty($value)) {
+                        if ($section == 'site' && $setting == 'logo') {
+                            $value = Theme::path('logo.png');
+                        }
+                    }
+
                     $this->element($setting, null, $value);
                 }
                 $this->elementEnd($section);
@@ -123,7 +126,7 @@ class ApiStatusnetConfigAction extends ApiAction
                 $result[$section] = array();
                 foreach ($settings as $setting) {
                     $result[$section][$setting]
-                        = common_config($section, $setting);
+                        = $this->setting($section, $setting);
                 }
             }
             $this->initDocument('json');
@@ -132,6 +135,7 @@ class ApiStatusnetConfigAction extends ApiAction
             break;
         default:
             $this->clientError(
+                // TRANS: Client error displayed when coming across a non-supported API method.
                 _('API method not found.'),
                 404,
                 $this->format
@@ -140,6 +144,20 @@ class ApiStatusnetConfigAction extends ApiAction
         }
     }
 
+    function setting($section, $key) {
+        $result = common_config($section, $key);
+        if ($key == 'file_quota') {
+            // hack: adjust for the live upload limit
+            if (common_config($section, 'uploads')) {
+                $max = ImageFile::maxFileSizeInt();
+            } else {
+                $max = 0;
+            }
+            return min($result, $max);
+        }
+        return $result;
+    }
+
     /**
      * Return true if read only.
      *
@@ -149,11 +167,8 @@ class ApiStatusnetConfigAction extends ApiAction
      *
      * @return boolean is read only action?
      */
-
     function isReadOnly($args)
     {
         return true;
     }
-
 }
-