Introduce a ConfigException

This commit is contained in:
Mikael Nordfeldth 2016-03-02 12:33:06 +01:00
parent 9534969c05
commit d6598e790c
3 changed files with 29 additions and 5 deletions

View File

@ -507,8 +507,7 @@ class Notice extends Managed_DataObject
$notice = new Notice(); $notice = new Notice();
$notice->profile_id = $profile_id; $notice->profile_id = $profile_id;
$autosource = common_config('public', 'autosource'); if ($source && in_array($source, common_config('public', 'autosource'))) {
if ($source && $autosource && in_array($source, $autosource)) {
$notice->is_local = Notice::LOCAL_NONPUBLIC; $notice->is_local = Notice::LOCAL_NONPUBLIC;
} else { } else {
$notice->is_local = $is_local; $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 // Since then we have started just filtering _when_ it gets shown
// instead of creating a mixed jumble of differently scoped notices. // instead of creating a mixed jumble of differently scoped notices.
$autosource = common_config('public', 'autosource'); if ($source && in_array($source, common_config('public', 'autosource'))) {
if ($source && $autosource && in_array($source, $autosource)) {
$stored->is_local = Notice::LOCAL_NONPUBLIC; $stored->is_local = Notice::LOCAL_NONPUBLIC;
} else { } else {
$stored->is_local = intval($is_local); $stored->is_local = intval($is_local);

22
lib/configexception.php Normal file
View File

@ -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);
}
}

View File

@ -432,9 +432,13 @@ class GNUsocial
if (common_config('htmlpurifier', 'Cache.DefinitionImpl') === 'Serializer' if (common_config('htmlpurifier', 'Cache.DefinitionImpl') === 'Serializer'
&& !is_dir(common_config('htmlpurifier', 'Cache.SerializerPath'))) { && !is_dir(common_config('htmlpurifier', 'Cache.SerializerPath'))) {
if (!mkdir(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.');
}
} }
/** /**