summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-12-25Load data for all plugins, not just loaded ones, on the plugin management ↵Luke Shumaker
page; making it actually useful. 2010-11-20: Luke Shumaker <lukeshu@sbcglobal.net> Load data for all plugins, not just loaded ones, on the plugin management page; making it actually useful. * include.php: file to include to make creation of entry points easy (taken from index.php) * index.php: move most of this file into include.php (and include it) * plugindata.php: a separate entry point using include.php; load ALL plugins found, and write data gathered to plugindata.out.php * .gitignore: add plugindata.out.php * actions/pluginsadminpanel.php: o use plugindata.out.php's common_plugindata() instead of StatusNet::getPlugins() o give a button linking to plugindata.php, to refresh plugin data o rename showDefaultPlugins() to showPlugins() * lib/pluginlist.php: o use plugindata.out.php's common_plugindata() instead of thowing the 'PluginVersion' event to currently enabled plugins o for the enable/disable forms: (pseudo diff) - if (!$disabled) + if ($enabled && (!$disabled)) o fix metaInfo(): "@fixme pull structured data from plugin source": we can do that now I feel that adding a separate entry point is a fairly controversial change, and that it requires justification. First, let me note that even if you do not agree with adding another entry point, moving much of index.php intp include.php to make creation of entry points easy is a good idea because this makes debugging _way_ easier. As Ian Zenhack put it, "I'm not sure I like the idea of introducing a second entry point, especially for a smallish feature enhancement such as this." I initially agreed with this, however, after experimenting with several different options, I decided that creating the separate entry point was the best option. The biggest requirement for my efforts was 1. don't require revamping of the entire plugin system which is what Brion Vibber seems to think is necessary on the StatusNet wiki (http://status.net/wiki/Plugin_installation_interface). There are simply too many valuable plugins already, breaking compatibility would be a Bad Thing. Since the plugin data is gathered from a usually non-static function of the plugin object, and instantiating the object loads the plugin, this essentially gives us the requirement 2. get the output of a non-static function without instantiating the object The obvious solution would be to load the object in a sandbox environment, and save the output somewhere. This is what the separate entry point is, a sandbox. A cool perk of my method is that it allows us to process the data in an orderly way, such as "keying" the array that the data is in, allowing for orderly plugin lookup. There are a lot of possiblities that this gives us, I have limited myself to using this to address the @fixme in lib/pluginlist.php, in order to keep diff size small, and changes obvious. A neat feature that we can add is a collapsible tree in the plugin management page, based on class hierarchy. I have done this, but it is glitzy, and more of a proof of concept. To address security and server load concerns, I have implemented security around plugindata.php (the separate entry point that refreshes plugin data). In order to run the file, you must either run it from the command line as a script, or be logged in as a user with rights to configure the site. This prevents lusers from spamming this entry point.
2010-12-24Add a more robust plugin config system.Luke Shumaker
2010-11-20: Luke Shumaker <lukeshu@sbcglobal.net> Add a more robust (but backward compatible) plugin config system * lib/util.php: add common_config_section($main), as a companion to common_config($main,$sub) * lib/statusnet.php: Functions for other Places: - add public static pluginFiles($name) which returns a list of all possible filenames a plugin with $name could be defined in. - addPlugin(...): use self::pluginFiles(...) instead of a hard-coded list. Actual Functionality: - add public static getPlugins() which returns array_merge( common_config('plugins','default'), common_config_section('plugin-list') ) - use self::getPlugins() instead of common_config('plugins','default') Robustness: - handle plugins that have a type other than "array" or "null" for parameters without bugging out * actions/pluginenable.php: (in order of in the file): - use StatusNet::getPlugins() instead of common_config('plugins','default') - check if a plugin exists, not whether it is loaded (uses newly added StatusNet::pluginFiles(...)) - Also save to 'plugin-list' (the new plugin system), in addition to 'plugins' (the old plugin system)
2010-12-22Merge branch '0.9.x' into 1.0.xBrion Vibber
2010-12-22Don't trust text/xml mime types; generic content detection gives useless ↵Brion Vibber
stuff like that on SVG images! Todo: replace the extension check in this case with better content-based checks.
2010-12-22Revert "initialize ActivityObject::$extra"Evan Prodromou
This reverts commit 3e82000d578cf5f5935d972a26c84fe31768460a.
2010-12-22Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2010-12-22Initialize $extra member to empty array on ActivityObjectBrion Vibber
2010-12-22initialize ActivityObject::$extraEvan Prodromou
2010-12-22disable account deletion by defaultEvan Prodromou
2010-12-22Merge branch 'righttoleave' into 0.9.xEvan Prodromou
2010-12-20Merge branch '0.9.x' into 1.0.xBrion Vibber
2010-12-20Let activity objects write directly to activity's own outputterEvan Prodromou
2010-12-18Add events for representing objects as activity:objectEvan Prodromou
Add 6 new events to make it easier to override the type of an activity object.
2010-12-17Merge branch '0.9.x' into 1.0.xBrion Vibber
Conflicts: classes/Memcached_DataObject.php
2010-12-17Ticket #2959: implement api/users/profile_image endpoint in Twitter-compat APIBrion Vibber
2010-12-17action to restore a user's backup from the Web interfaceEvan Prodromou
2010-12-17Two bug fixes in activityimporterEvan Prodromou
2010-12-17change code order to make shorter linesEvan Prodromou
2010-12-17I'm still not sure when it's useful to reset a notice's authorEvan Prodromou
2010-12-17Make restoreuser use new FeedImporter queue handlerEvan Prodromou
2010-12-17move activity importing code to two different queuehandler classesEvan Prodromou
2010-12-17Move accountrestorer class to feed importerEvan Prodromou
2010-12-17move code to get an author object for a feed to a library from Ostatus_profileEvan Prodromou
2010-12-16Merge branch '0.9.x' into 1.0.xBrion Vibber
Conflicts: plugins/CacheLog/locale/nb/LC_MESSAGES/CacheLog.po
2010-12-16Fix ticket #2929: router cache now clears itself when switching singleuser ↵Brion Vibber
mode in and out
2010-12-16distribute flag for Notice::saveNew()Evan Prodromou
2010-12-15Move account restoration code to a shared libraryEvan Prodromou
Moved most of the heavy-lifting for account restoration out of restoreuser.php and into its own class, with the hope that we'll do the work from the Web eventually.
2010-12-15Merge branch '0.9.x' into righttoleaveEvan Prodromou
2010-12-15Merge branch '0.9.x' into 1.0.xBrion Vibber
2010-12-14Mark OembedAction, XrdAction, and (plugin) AutocompleteAction as read-only. ↵Brion Vibber
Tweaked ApiStatusesShow and ApiTimelineUser to still claim read-only when hit with a HEAD request (usually link checkers or a precursor to a GET, and should be semantically equivalent to a GET without actually transferring data)
2010-12-14AtomPub discovery fix: gets MarsEdit's auto API detection working.Brion Vibber
Router entry for AtomPubService was slightly off, generating an incorrect link in the RSD data.
2010-12-14An action to delete your own accountEvan Prodromou
The new DeleteaccountAction lets a user delete their own account (subject to global rights set by the admin). It presents a form to delete the account, with an "I am sure." text entry box. It then schedules the account for deletion and logs the user out.
2010-12-13add an action to backup the current account in ActivityStreams formatEvan Prodromou
2010-12-13define rights for account maintenance and default rulesEvan Prodromou
2010-12-13define configuration settings for account maintenance securityEvan Prodromou
2010-12-13fix URL for memberships feedEvan Prodromou
2010-12-13add atompub membership actions to routerEvan Prodromou
2010-12-10Show a single favorite for AtomPubEvan Prodromou
2010-12-10Merge branch '0.9.x' into activityatompubEvan Prodromou
Conflicts: lib/router.php
2010-12-09Tweaking nickname format regexes: added one that explicitly allows numbers, ↵Brion Vibber
to be used in router setup.
2010-12-09Add subscription feed for AtomPubEvan Prodromou
2010-12-09AtomPub for single subscriptionEvan Prodromou
2010-12-08Don't cache user-specific information for Notice atom entriesEvan Prodromou
2010-12-07whitespace problems in lib/routerEvan Prodromou
2010-12-07generate links for apinamespace.org/atom and /twitter in userxrdEvan Prodromou
2010-12-07allow <Property> elements in <Link> in XRDEvan Prodromou
2010-12-07fix whitespace in lib/xrdaction.phpEvan Prodromou
2010-12-07Merge branch '0.9.x' into mergeBrion Vibber
Conflicts: README actions/hostmeta.php classes/File_redirection.php lib/common.php lib/designsettings.php lib/router.php lib/util.php lib/xmppmanager.php plugins/OStatus/OStatusPlugin.php
2010-12-06use codeKey() in activity cachingEvan Prodromou
2010-12-06Merge branch '0.9.x' into cacheactivityEvan Prodromou