Core and Default plugins separated, now loads on install

_flow_ reported on IRC that install.php had stopped working. This was
because default plugins had been put into two separate lists, and the
list with AuthCrypt was never loaded when performing an installation.

Core plugins cannot be disabled.

I also removed the Memcache autodetection thing since it should be
solved in a more elegant manner.
This commit is contained in:
Mikael Nordfeldth 2013-10-19 14:35:04 +02:00
parent 2f70866367
commit 2a5ba1f74b
5 changed files with 32 additions and 53 deletions

View File

@ -17,17 +17,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
if (!defined('GNUSOCIAL')) { exit(1); }
/**
* Table Definition for user
*/
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
require_once 'Validate.php';
class User extends Managed_DataObject
{
const SUBSCRIBE_POLICY_OPEN = 0;
@ -233,7 +228,7 @@ class User extends Managed_DataObject
try {
$profile->nickname = Nickname::normalize($nickname, true);
} catch (NicknameException $e) {
common_log(LOG_WARNING, sprintf('Bad nickname during User registration for %s: %s', $profile->nickname, $e->getMessage()), __FILE__);
common_log(LOG_WARNING, sprintf('Bad nickname during User registration for %s: %s', $nickname, $e->getMessage()), __FILE__);
return false;
}
@ -305,7 +300,7 @@ class User extends Managed_DataObject
$profile->query('BEGIN');
$id = $profile->insert();
if (empty($id)) {
if ($id === false) {
common_log_db_error($profile, 'INSERT', __FILE__);
return false;
}
@ -324,7 +319,7 @@ class User extends Managed_DataObject
$result = $user->insert();
if (!$result) {
if ($result === false) {
common_log_db_error($user, 'INSERT', __FILE__);
$profile->query('ROLLBACK');
return false;

View File

@ -20,17 +20,17 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Config
* @package StatusNet
* @package GNUsocial
* @author Evan Prodromou <evan@status.net>
* @copyright 2008-9 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
* @link http://www.gnu.org/software/social/
*/
$default =
array('site' =>
array('name' => 'Just another StatusNet microblog',
'nickname' => 'statusnet',
array('name' => 'Just another GNU social node',
'nickname' => 'gnusocial',
'wildcard' => null,
'server' => $_server,
'theme' => 'neo',
@ -305,19 +305,22 @@ $default =
'logincommand' =>
array('disabled' => true),
'plugins' =>
array('default' => array('Geonames' => null,
'ClientSideShorten' => null,
'StrictTransportSecurity' => null,
'Bookmark' => null,
'Event' => null,
'Poll' => null,
'QnA' => null,
'SearchSub' => null,
'TagSub' => null,
'OpenID' => null,
'Directory' => null,
'ExtendedProfile' => null,
'Activity' => null),
array('core' => array(
'AuthCrypt' => null,
'LRDD' => null,
'StrictTransportSecurity' => null,
),
'default' => array(
'Activity' => null,
'Bookmark' => null,
'ClientSideShorten' => null,
'Event' => null,
'OpenID' => null,
'Poll' => null,
'QnA' => null,
'SearchSub' => null,
'TagSub' => null,
),
'locale_path' => false, // Set to a path to use *instead of* each plugin's own locale subdirectories
'server' => null,
'sslserver' => null,

View File

@ -438,16 +438,6 @@ abstract class Installer
($this->db['type'] == 'pgsql' ? "\$config['db']['quote_identifiers'] = true;\n\n":'').
"\$config['db']['type'] = {$vals['db_type']};\n\n";
// Auto memcache support detection
$cfg .= '
foreach(array("Memcache", "Memcached") as $plugin) :
if (class_exists($plugin)) {
addPlugin($plugin);
break;
}
endforeach;
';
// Normalize line endings for Windows servers
$cfg = str_replace("\n", PHP_EOL, $cfg);
@ -618,7 +608,7 @@ endforeach;
);
} else {
$this->updateStatus(
"Could not create initial StatusNet user (administrator).",
"Could not create initial GNU social user.",
true
);
return false;

View File

@ -79,18 +79,8 @@ abstract class SiteProfileSettings
}
static function defaultPlugins() {
return array(
'AuthCrypt' => null,
'Bookmark' => null,
'Event' => null,
'OpenID' => null,
'LRDD' => null,
'Poll' => null,
'QnA' => null,
'SearchSub' => null,
'StrictTransportSecurity' => null,
'TagSub' => null,
);
return array_merge(common_config('plugins', 'core'),
common_config('plugins', 'default'));
}
}
@ -117,7 +107,6 @@ class PublicSite extends SiteProfileSettings
),
'plugins' => array(
'default' => array_merge(self::defaultPlugins(), array(
'ClientSideShorten' => null,
'Directory' => null,
'ExtendedProfile' => null,
'Geonames' => null,
@ -154,7 +143,6 @@ class PrivateSite extends SiteProfileSettings
),
'plugins' => array(
'default' => array_merge(self::defaultPlugins(), array(
'ClientSideShorten' => null,
'Directory' => null,
'ExtendedProfile' => null,
'EmailRegistration' => null,
@ -207,7 +195,6 @@ class CommunitySite extends SiteProfileSettings
),
'plugins' => array(
'default' => array_merge(self::defaultPlugins(), array(
'ClientSideShorten' => null,
'Directory' => null,
'Geonames' => null,
'OStatus' => null,
@ -243,7 +230,6 @@ class SingleuserSite extends SiteProfileSettings
),
'plugins' => array(
'default' => array_merge(self::defaultPlugins(), array(
'ClientSideShorten' => null,
'Geonames' => null,
'NewMenu' => null,
'MobileProfile' => null,

View File

@ -181,6 +181,11 @@ class StatusNet
*/
protected static function initPlugins()
{
// Load core plugins
foreach (common_config('plugins', 'core') as $name => $params) {
call_user_func('addPlugin', $name, $params);
}
// Load default plugins
foreach (common_config('plugins', 'default') as $name => $params) {
$key = 'disable-' . $name;