Mikael Nordfeldth [Sat, 21 Sep 2013 16:26:58 +0000 (18:26 +0200)]
Subscription "get by" functions now don't use ArrayWrappers
They were getting in the way of some strict-typing stuff.
Mikael Nordfeldth [Sat, 21 Sep 2013 14:55:18 +0000 (16:55 +0200)]
New Managed_DataObject retrieval: listFind
This will return a proper DB_DataObject instance (as the desired class)
and not an array, or ArrayWrapper.
Mikael Nordfeldth [Thu, 19 Sep 2013 15:20:44 +0000 (17:20 +0200)]
Make better use of Subscription class
removed lib/subs.php as it was essentially only a wrapper for Subscription
Mikael Nordfeldth [Thu, 19 Sep 2013 14:37:39 +0000 (16:37 +0200)]
instanceof instead of is_a is faster (thanks quix0r)
Mikael Nordfeldth [Thu, 19 Sep 2013 14:11:04 +0000 (16:11 +0200)]
StatusNet_HTTPResponse now prefixed with GNUSocial_
Mikael Nordfeldth [Wed, 18 Sep 2013 23:11:47 +0000 (01:11 +0200)]
url shortening fixes for api config and not ur1.ca
Will have to change the 'maxnoticelength' code to stop shortening ALL
links if the setting for infinitely long notices is configured.
Mikael Nordfeldth [Tue, 17 Sep 2013 23:21:53 +0000 (01:21 +0200)]
8 chars was too little, 32 should be enough.
Mikael Nordfeldth [Tue, 17 Sep 2013 22:35:49 +0000 (00:35 +0200)]
GNUSOCIAL is the new defined indicator
STATUSNET is still there for compatibility, so we don't have to change
all scripts at once yet...
Mikael Nordfeldth [Tue, 17 Sep 2013 22:25:11 +0000 (00:25 +0200)]
minor fixes and cleanups in the scripts directory
Mikael Nordfeldth [Tue, 17 Sep 2013 22:10:44 +0000 (00:10 +0200)]
PHP 5.3 dependency declared in INSTALL file
Mikael Nordfeldth [Mon, 16 Sep 2013 20:36:44 +0000 (22:36 +0200)]
Bad call to joinAdd in Profile.php
Mikael Nordfeldth [Mon, 16 Sep 2013 20:10:08 +0000 (22:10 +0200)]
Autocomplete migrated to jquery-ui autocomplete
No longer bundled with the library (as jquery-ui is bundled with the
main software, including the autocomplete part).
Rewrites had to be made to migrate, as several API things had changed
when jquery-ui took over the library.
Currently (like before, right?) this only autocompletes in the end of
the current textarea. So you can't jump back in the middle of a text
and autocomplete a user or group. This is a serious deficiency, though
not a regression.
Mikael Nordfeldth [Mon, 16 Sep 2013 19:49:32 +0000 (21:49 +0200)]
Gravatar pretty much equals disregarding privacy
Not only that one can often correlate email address md5 hash sums, but
the "functionality" depends on a bunch of external calls.
Mikael Nordfeldth [Sat, 14 Sep 2013 16:36:35 +0000 (18:36 +0200)]
Events on user registrations now strictly typed
Mikael Nordfeldth [Sat, 14 Sep 2013 16:32:52 +0000 (18:32 +0200)]
Event::handle only takes array $args
This is because it calls call_user_func_array with that exact $args argument.
Brian Tegtmeier [Sat, 24 Dec 2011 00:28:31 +0000 (19:28 -0500)]
Added new config for lighttpd.conf that worked on my 1.28 setup.
Modified and additionally commented by MMN-o
Mikael Nordfeldth [Sat, 14 Sep 2013 11:41:49 +0000 (13:41 +0200)]
Minified javascripts are evil! Human readable source, please!
Mikael Nordfeldth [Sat, 14 Sep 2013 11:41:04 +0000 (13:41 +0200)]
jquery 2.x update related fix (.die no longer defined)
Mikael Nordfeldth [Sat, 14 Sep 2013 11:38:50 +0000 (13:38 +0200)]
Fixed regression from jquery-cookie update
cookieValue was matched against null, not undefined.
Mikael Nordfeldth [Sat, 14 Sep 2013 10:58:03 +0000 (12:58 +0200)]
updated and moved jquery-cookie
Also added to minification Makefile in js/ as it was not delivered from
upstream as .min.js
Mikael Nordfeldth [Sat, 14 Sep 2013 10:31:53 +0000 (12:31 +0200)]
updated and moved jquery-jcrop (no longer .min.js)
This won't run properly if other scripts stop javascript execution before
it's time to crop (such as in the Bookmark plugin, which when writing this
hasn't been migrated to Jquery 2.x - so it stops on a '.die' call).
Some images were cleaned up from the theme/base/images/illustrations too.
Mikael Nordfeldth [Sat, 14 Sep 2013 10:26:21 +0000 (12:26 +0200)]
updated jquery-infieldlabel from 0.1.2 to 0.2.1
Source: https://github.com/instanceofme/jquery-infieldlabels/
Mikael Nordfeldth [Thu, 12 Sep 2013 13:57:32 +0000 (15:57 +0200)]
Removed jOverlay as it's outdated and not referenced
Mikael Nordfeldth [Thu, 12 Sep 2013 13:53:14 +0000 (15:53 +0200)]
jquery form updated and moved to js/extlib
Mikael Nordfeldth [Thu, 12 Sep 2013 13:48:28 +0000 (15:48 +0200)]
jquery-ui updated and moved to js/extlib
It seems we don't need all the development files. Though it feels a bit
evil not to keep them. Then again we didn't have the whole dev-tree there.
Really we should maybe use git submodules for this?
I also made sure that if we don't have minify enabled, a non-minified
version of jquery-ui is loaded, as minification is the most evil of all.
Bad as hell to debug, and anyone visiting the site should be allowed to
view all scripts that are run in an overseeable manner.
Mikael Nordfeldth [Tue, 10 Sep 2013 17:02:55 +0000 (19:02 +0200)]
jquery javascript was moved to js/extlib
Mikael Nordfeldth [Tue, 10 Sep 2013 16:52:09 +0000 (18:52 +0200)]
Changing js .live calls to .on for jquery 2.x
Mikael Nordfeldth [Tue, 10 Sep 2013 13:18:18 +0000 (15:18 +0200)]
farbtastic removed along with userdesign stuff
...I couldn't find anywhere this was being used in current code...
Mikael Nordfeldth [Tue, 10 Sep 2013 13:14:42 +0000 (15:14 +0200)]
Fixed regression from util.js updates + syntax cleanup
We introduced a regression in
6fa9062d28713e81d508854fa232ce65a8a59319
based on syntax error, as a curly brace ({) was lost. This is now fixed.
Mikael Nordfeldth [Tue, 10 Sep 2013 11:56:51 +0000 (13:56 +0200)]
Updated jquery extlib to v2.0.3
Includes pre-minimized version from code.jquery.com
Mikael Nordfeldth [Tue, 10 Sep 2013 11:43:50 +0000 (13:43 +0200)]
json2 extlib updated to 2013-05-26 version
Includes minification and Makefile update
Brian Tegtmeier [Fri, 23 Dec 2011 19:56:55 +0000 (14:56 -0500)]
Shortcut for (document).ready(). Changed .attr() to .prop() for checked and disabled.
Brian Tegtmeier [Fri, 23 Dec 2011 19:54:58 +0000 (14:54 -0500)]
Changed .attr() to .prop() for checked and disabled. Removed "style" removal which I assume was tied to opacity setting on line 9. Replaced "style" setting via attr() on line 12 with css().
Brian Tegtmeier [Sat, 24 Dec 2011 00:24:47 +0000 (19:24 -0500)]
Changed bind() and live() to on(). Changed .attr() to .prop() for checked and disabled. Shortcut for (document).ready(). This is the first attempt to convert live() elements to on() according to http://api.jquery.com/live/.
Brian Tegtmeier [Sat, 24 Dec 2011 00:13:44 +0000 (19:13 -0500)]
Changed bind() and unbind() to on() and off(). Shortcut for (document).ready().
Jean Baptiste Favre [Tue, 18 Sep 2012 14:20:10 +0000 (16:20 +0200)]
Add 'twitter:title' meta tag support.
Jean Baptiste Favre [Sun, 16 Sep 2012 17:27:31 +0000 (19:27 +0200)]
Twitter cards implementation. Currently only supports 'photo' cards.
Emily O'Leary [Mon, 25 Mar 2013 05:52:10 +0000 (01:52 -0400)]
Putting in functionality so that sites with the "Sometimes" SSL setting allow for users with plugins such as HTTPSEVERYWHERE who wish to use HTTPS to do so without having errors pop up. Specifically this references this issue: http://status.net/open-source/issues/3855#comment-48988.
(Port detection test removed by MMN-o. Also switched order on the test for
isHTTPS/SensitiveAction.)
Mikael Nordfeldth [Mon, 9 Sep 2013 21:08:43 +0000 (23:08 +0200)]
Declaring some more static functions properly
As a bonus I added type declaration on Profile_block::exists and
Subscription::exists respectively.
Mikael Nordfeldth [Mon, 9 Sep 2013 21:05:33 +0000 (23:05 +0200)]
Removing unnecessary require_once lines (autoload!)
Mikael Nordfeldth [Mon, 9 Sep 2013 19:35:16 +0000 (21:35 +0200)]
Tidying up getUser calls to profiles and some events
getUser calls are much more strict, and one place where this was found was
in the (un)subscribe start/end event handlers, which resulted in making the
Subscription class a bit stricter, regarding ::start and ::cancel at least.
Several minor fixes in many files were made due to this.
This does NOT touch the Foreign_link function, which should also have a more
strict getUser call. That is a future project.
Mikael Nordfeldth [Mon, 9 Sep 2013 18:45:20 +0000 (20:45 +0200)]
Using a bit more of $this->scoped (Action parent class)
$this->scoped is the currently active profile, which is intended
to replace the $user object in the long run...
Mikael Nordfeldth [Mon, 2 Sep 2013 10:13:46 +0000 (12:13 +0200)]
NewapplicationAction converted to FormAction
Cutting down on a bunch of redundant code. We're reusing a lot of stuff
from FormAction and Action now instead of having copies of code all over.
Mikael Nordfeldth [Mon, 2 Sep 2013 09:58:47 +0000 (11:58 +0200)]
needLogin renamed checkLogin and made a property
Action extended classes now can set 'needLogin' as a protected property,
which is defaulted to 'false'. However, FormAction defaults this to 'true'
because most of the form actions will require a current login to be valid.
NewgroupAction, NewmessageAction, NewnoticeAction are all affected by this
commit and in the future we will migrate each potential formaction to the
proper class parent tree. :)
Mikael Nordfeldth [Mon, 2 Sep 2013 08:59:02 +0000 (10:59 +0200)]
newmessage (and Message class) fixed for FormAction
Also added a needLogin function to the Action class, which will do
redirect to login page with proper returnto setting.
Mikael Nordfeldth [Sun, 1 Sep 2013 19:45:10 +0000 (21:45 +0200)]
IMPORTANT: parent::handlePost() in NewnoticeAction
otherwise we don't do csrf checking etc...
Mikael Nordfeldth [Sun, 1 Sep 2013 18:56:35 +0000 (20:56 +0200)]
NewnoticeAction converted to extend FormAction
There are still several improvements which can be made, such as not
having an entirely separate setup of ajax form functions. Instead
those should be implemented in FormAction. But at least now we got
rid of the redundant code use in prepare/handle.
Mikael Nordfeldth [Sun, 1 Sep 2013 18:52:11 +0000 (20:52 +0200)]
Conforming to code layout
Mikael Nordfeldth [Sun, 1 Sep 2013 17:28:57 +0000 (19:28 +0200)]
Proper definition of $args array in NewgroupAction->prepare
Also, there is no need to do 'return' after throwing a ClientError
Exception. And we'll use the Action->clientError for logging benefits
until the error handling is properly done all the way to backend.
Mikael Nordfeldth [Sat, 31 Aug 2013 13:03:59 +0000 (15:03 +0200)]
NewgroupAction converted to extend FormAction
Had to change Action function 'prepare' to 'protected', as you can't
(of course) protect something that's been public in a parent class. The
other way around seems fine for PHP... Eventually all actions will have
protected 'prepare' (use execute/run)
A feature of the previously fixed initialization of Action classes, is
that we now have $this->scoped which is the current profile in use. As
of now that is always a local User, except the corresponding Profile
object.
Also, instead of calling 'showForm' everywhere, in case of an error we
just throw an exception of some sort and pass the message along there.
I've also introduced in FormAction the 'showInstructions' function in
order to get a unified instructions/info/error display method.
TODO: Improve info/error message handling, and what/when/where to show.
Mikael Nordfeldth [Fri, 30 Aug 2013 08:28:57 +0000 (10:28 +0200)]
Added a FormAction extension
FormAction will act as a parent class to Action classes that use forms
of various sorts, such as newgroup creation, settings actions etc.
Mikael Nordfeldth [Thu, 29 Aug 2013 22:22:22 +0000 (00:22 +0200)]
handle no longer uses $argarray or $args
Mikael Nordfeldth [Thu, 29 Aug 2013 21:30:04 +0000 (23:30 +0200)]
Preparing more object-oriented Action handling
Action classes can now be run by calling the static function 'run'.
Eventually actions will be migrated so most functionality gets put
into parent classes, and the children don't have to have as much
duplicate code as they have now.
Thomas Johnson [Mon, 30 Jul 2012 14:10:36 +0000 (16:10 +0200)]
db/core.php lacked User_username (Issue 3299)
Commit message edited by MMN-o (User_username schemaDef already patched).
Mikael Nordfeldth [Thu, 29 Aug 2013 14:20:43 +0000 (16:20 +0200)]
Fixed comment description in STS plugin
Mikael Nordfeldth [Thu, 29 Aug 2013 14:18:56 +0000 (16:18 +0200)]
Changes to GNUsocial plugins
These aren't ready for production use. Might be insecure, probably broken.
Mikael Nordfeldth [Thu, 29 Aug 2013 14:11:32 +0000 (16:11 +0200)]
removing empty "planned" GNU Social plugins
Mikael Nordfeldth [Thu, 29 Aug 2013 08:38:11 +0000 (10:38 +0200)]
Moved multiGet into Managed_DataObject
Mikael Nordfeldth [Thu, 29 Aug 2013 08:27:39 +0000 (10:27 +0200)]
Stronger typing, require array where param array
Mikael Nordfeldth [Thu, 29 Aug 2013 08:13:07 +0000 (10:13 +0200)]
pivotGet moved into Managed_DataObject
Mikael Nordfeldth [Wed, 28 Aug 2013 16:00:23 +0000 (18:00 +0200)]
Syntax error in XMPP config example
Mikael Nordfeldth [Wed, 28 Aug 2013 13:54:26 +0000 (15:54 +0200)]
plugins onAutoload now only overloads if necessary (extlibs etc.)
lib/plugin.php now has a parent onAutoload function that finds most common
files that are used in plugins (actions, dataobjects, forms, libs etc.) if
they are put in the standardised directories ('actions', 'classes', 'forms',
'lib' and perhaps some others in the future).
Mikael Nordfeldth [Wed, 28 Aug 2013 08:51:43 +0000 (10:51 +0200)]
More info for a proper, fancy-url lighttpd setup
Mikael Nordfeldth [Wed, 21 Aug 2013 12:33:45 +0000 (14:33 +0200)]
Woops, forgot auto_increment (comes with 'serial')
There are still some classes not ported (like Yammer import)
Mikael Nordfeldth [Wed, 21 Aug 2013 12:12:18 +0000 (14:12 +0200)]
GNU Social extensions fixes (please read note)
These extensions are not considered secure nor stable right now, so don't
use them for a while.
Mikael Nordfeldth [Wed, 21 Aug 2013 09:25:08 +0000 (11:25 +0200)]
IMPORTANT - fixed HubSub to properly fetch primary keys
In commit
e95f77d34c501d345e731ccf6bc722034d155b77 HubSub lost the
'staticGet' function in a consolidation into the Managed_DataObject class.
This was done carelessly by me as HubSub::staticGet was actually taking
two arguments, none of which was a key and merging them in HubSub::hashkey()
(staticGet was renamed getKV
2a4dc77a633cc78907934fd93200ac16d55be78e).
NOTE: This complements commit
7e4718a4eb8d0e932398d6f150339fa6aec05267 which
fixed a similar issue for the Magicsig class.
Mikael Nordfeldth [Wed, 21 Aug 2013 09:01:31 +0000 (11:01 +0200)]
OStatus classes now has modern schemaDef
Mikael Nordfeldth [Mon, 19 Aug 2013 15:08:18 +0000 (17:08 +0200)]
IMPORTANT: Making prev. Memcached_DataObject working again with schemaDef
Lots of the Memcached_DataObject classes stopped working when upgraded to
Managed_DataObject because they lacked schemaDef().
I have _hopefully_ made it so that all the references to the table uses
each class' schemaDef, rather than the more manual ColumnDef stuff. Not
all plugins have been tested thoroughly yet.
NOTE: This is applied with getKV calls instead of staticGet, as it was
important for PHP Strict Standards compliance to avoid calling the non-
static functions statically. (unfortunately DB and DB_DataObject still do
this within themselves...)
Mikael Nordfeldth [Tue, 20 Aug 2013 07:43:51 +0000 (09:43 +0200)]
We can now do late static binding (PHP >= 5.3)
Mikael Nordfeldth [Tue, 20 Aug 2013 07:43:23 +0000 (09:43 +0200)]
Unnecessary UTF-8 declaration for database
Mikael Nordfeldth [Mon, 19 Aug 2013 12:26:44 +0000 (14:26 +0200)]
Further static declarations of functions
Validate could probably be replaced with filter_var if desired (PHP>=5.2.0)
Mikael Nordfeldth [Mon, 19 Aug 2013 12:09:57 +0000 (14:09 +0200)]
Class wasn't used anywhere, and file contained wrong class
Mikael Nordfeldth [Mon, 19 Aug 2013 09:40:35 +0000 (11:40 +0200)]
Don't use DB_DataObject::factory (statically at least)
Not all instances of this has been fixed, but at least the ones
in the base class of Memcached_DataObject.
Avatar fix (in classes/Profile.php) requires a pkeyGet function
in the Avatar class (or as in this tree, the parent class of
Managed_DataObject)
Mikael Nordfeldth [Sun, 18 Aug 2013 19:02:33 +0000 (21:02 +0200)]
Managed_DataObject now has listGet for all classes
Mikael Nordfeldth [Sun, 18 Aug 2013 18:37:33 +0000 (20:37 +0200)]
Properly definingStatusNet class static functions with 'static'
Mikael Nordfeldth [Sun, 18 Aug 2013 18:29:16 +0000 (20:29 +0200)]
Added shared default plugin list between profiles
Mikael Nordfeldth [Sun, 18 Aug 2013 17:07:18 +0000 (19:07 +0200)]
IMPORTANT - fixed Magicsig to properly overload getKV (prev. staticGet)
In commit
e95f77d34c501d345e731ccf6bc722034d155b77 Magicsig lost the 'staticGet' function (later renamed to getKV in
2a4dc77a633cc78907934fd93200ac16d55be78e ), which was important to properly initialize the Magicsig object (fromString)
Mikael Nordfeldth [Sun, 18 Aug 2013 14:21:30 +0000 (16:21 +0200)]
Memcached_DataObject::multicache is now properly defined static
Mikael Nordfeldth [Sun, 18 Aug 2013 13:42:51 +0000 (15:42 +0200)]
pkeyGet is now static and more similar to getKV
Memcached_DataObject now defines
* pkeyGetClass to avoid collision with Managed_DataObject pkeyGet
* getClassKV to avoid collision with Managed_DataObject getKV
Mikael Nordfeldth [Sun, 18 Aug 2013 13:31:18 +0000 (15:31 +0200)]
Magicsig class now Managed_DataObject with nicer schemaDef
Mikael Nordfeldth [Sun, 18 Aug 2013 13:03:06 +0000 (15:03 +0200)]
Bookmark class now has schemaDef (for Managed_DataObject)
Mikael Nordfeldth [Sun, 18 Aug 2013 11:04:58 +0000 (13:04 +0200)]
The overloaded DB_DataObject function staticGet is now called getKV
I used this hacky sed-command (run it from your GNU Social root, or change the first grep's path to where it actually lies) to do a rough fix on all ::staticGet calls and rename them to ::getKV
sed -i -s -e '/DataObject::staticGet/I!s/::staticGet/::getKV/Ig' $(grep -R ::staticGet `pwd`/* | grep -v -e '^extlib' | grep -v DataObject:: |grep -v "function staticGet"|cut -d: -f1 |sort |uniq)
If you're applying this, remember to change the Managed_DataObject and Memcached_DataObject function definitions of staticGet to getKV!
This might of course take some getting used to, or modification fo StatusNet plugins, but the result is that all the static calls (to staticGet) are now properly made without breaking PHP Strict Standards. Standards are there to be followed (and they caused some very bad confusion when used with get_called_class)
Reasonably any plugin or code that tests for the definition of 'GNUSOCIAL' or similar will take this change into consideration.
Mikael Nordfeldth [Sun, 18 Aug 2013 10:10:44 +0000 (12:10 +0200)]
Updating all Memcached_DataObject extended classes to Managed_DataObject
In some brief tests, this causes no problems.
In this state however, you would need to modify DB_DataObject to have a static declaration of staticget (and probably pkeyGet). The next commit will change the staticGet overload to a unique function name (like getKV for getKeyValue), which means we can properly call the function by PHP Strict Standards.
Mikael Nordfeldth [Sun, 18 Aug 2013 09:18:45 +0000 (11:18 +0200)]
Some statically called functions in plugins now declared statically
Mikael Nordfeldth [Mon, 12 Aug 2013 18:00:01 +0000 (20:00 +0200)]
Plugins with classes that extend Managed_DataObject get better code reuse
The switch to having a function in Managed_DataObject is now being applied
to plugins which can use this as well.
There are some plugins that still use Memcached_DataObject, but these will
be taken care of later.
Mikael Nordfeldth [Mon, 12 Aug 2013 17:46:44 +0000 (19:46 +0200)]
staticGet for sub-Managed_DataObject classes now calls parent
The parent class for our database objects, Managed_DataObject, has a
dynamically assigned class in staticGet which objects get put into,
leaving us with less code to do the same thing.
We will probably have to move away from the DB_DataObject 'staticGet'
call as it is nowadays deprecated.
Mikael Nordfeldth [Mon, 12 Aug 2013 17:12:13 +0000 (19:12 +0200)]
Managed_DataObject gets dynamic class detection for staticGet
Compatibility: get_called_class is implemented in PHP >= 5.3.0
Mikael Nordfeldth [Mon, 12 Aug 2013 17:08:11 +0000 (19:08 +0200)]
staticGet is a static function
We always call staticGet statically, so we define it statically. Next
step is to remove a bunch of definitions of 'staticGet' from classes
that can instead fall back to a parent class in Managed_DataObject.
The ampersand is removed as we're returning a class anyway, which does
not need a reference (and when we return false, it means nothing).
Mikael Nordfeldth [Mon, 12 Aug 2013 13:21:46 +0000 (15:21 +0200)]
No need for newline when running 'echo'
Mikael Nordfeldth [Mon, 12 Aug 2013 12:40:55 +0000 (14:40 +0200)]
Default to NOT ask for current location for new users
It may be a bad experience for new users to immediately when trying
out the service be asked for their geographical position. Instead,
let them opt-in for this behaviour.
Mikael Nordfeldth [Mon, 12 Aug 2013 11:18:40 +0000 (13:18 +0200)]
printf tries to evaluate "%" in paths, echo does not
Mikael Nordfeldth [Mon, 12 Aug 2013 11:14:50 +0000 (13:14 +0200)]
Automatic memcache support enabler for config
Mikael Nordfeldth [Mon, 12 Aug 2013 11:08:14 +0000 (13:08 +0200)]
Added SSL option to web and cli installers
Mikael Nordfeldth [Fri, 18 May 2012 14:06:08 +0000 (16:06 +0200)]
visual presentation of group's homepage href was its local stream url
Mikael Nordfeldth [Sat, 11 Aug 2012 11:04:42 +0000 (13:04 +0200)]
fix typo on provider_url
Mikael Nordfeldth [Sat, 18 Aug 2012 07:56:38 +0000 (09:56 +0200)]
letting the noticeform at the top show, to fix broken reply button javascript
Mikael Nordfeldth [Mon, 12 Aug 2013 10:57:47 +0000 (12:57 +0200)]
Added author name to modified file
Mikael Nordfeldth [Fri, 10 Aug 2012 18:11:40 +0000 (20:11 +0200)]
_m function for translation seems to be what we use
Mikael Nordfeldth [Fri, 10 Aug 2012 17:52:14 +0000 (19:52 +0200)]
Issue 3636 request clarity for users without validated emails on instances with RequireValidatedEmail active
Mikael Nordfeldth [Wed, 8 Aug 2012 12:51:54 +0000 (14:51 +0200)]
new plugin to check, store and migrate password hashes to crypt()