]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Introduce a ConfigException
authorMikael Nordfeldth <mmn@hethane.se>
Wed, 2 Mar 2016 11:33:06 +0000 (12:33 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Wed, 2 Mar 2016 11:33:06 +0000 (12:33 +0100)
classes/Notice.php
lib/configexception.php [new file with mode: 0644]
lib/gnusocial.php

index f8bdbcd34000d4a8fec17a8e34553d38352d1bbf..748489767932d50a7bc64a1f7a0aa34da10069a3 100644 (file)
@@ -507,8 +507,7 @@ class Notice extends Managed_DataObject
         $notice = new Notice();
         $notice->profile_id = $profile_id;
 
-        $autosource = common_config('public', 'autosource');
-        if ($source && $autosource && in_array($source, $autosource)) {
+        if ($source && in_array($source, common_config('public', 'autosource'))) {
             $notice->is_local = Notice::LOCAL_NONPUBLIC;
         } else {
             $notice->is_local = $is_local;
@@ -823,8 +822,7 @@ class Notice extends Managed_DataObject
         // Since then we have started just filtering _when_ it gets shown
         // instead of creating a mixed jumble of differently scoped notices.
 
-        $autosource = common_config('public', 'autosource');
-        if ($source && $autosource && in_array($source, $autosource)) {
+        if ($source && in_array($source, common_config('public', 'autosource'))) {
             $stored->is_local = Notice::LOCAL_NONPUBLIC;
         } else {
             $stored->is_local = intval($is_local);
diff --git a/lib/configexception.php b/lib/configexception.php
new file mode 100644 (file)
index 0000000..5036a43
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+if (!defined('GNUSOCIAL')) { exit(1); }
+
+/**
+ * Class for configuration exceptions
+ *
+ * Subclass of ServerException for when the site's configuration is malformed.
+ *
+ * @category Exception
+ * @package  GNUsocial
+ * @author   Mikael Nordfeldth <mmn@hethane.se>
+ * @license  https://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     https://gnu.io/social
+ */
+
+class ConfigException extends ServerException
+{
+    public function __construct($message=null) {
+        parent::__construct($message, 500);
+    }
+}
index 2ad688a7904e67dbbe5fcedc0e4cc0e095615edb..aecebe2556440788fa2fd1e7f0c1bd3a76d7e557 100644 (file)
@@ -432,9 +432,13 @@ class GNUsocial
         if (common_config('htmlpurifier', 'Cache.DefinitionImpl') === 'Serializer'
                 && !is_dir(common_config('htmlpurifier', 'Cache.SerializerPath'))) {
             if (!mkdir(common_config('htmlpurifier', 'Cache.SerializerPath'))) {
-                throw new ServerException('Could not create HTMLPurifier cache dir: '._ve(common_config('htmlpurifier', 'Cache.SerializerPath')));
+                throw new ConfigException('Could not create HTMLPurifier cache dir: '._ve(common_config('htmlpurifier', 'Cache.SerializerPath')));
             }
         }
+
+        if (!is_array(common_config('public', 'autosource'))) {
+            throw new ConfigException('Configuration option public/autosource is not an array.');
+        }
     }
 
     /**