- get_user_listing() is now aware of remote users
- require_login() is now aware of remote users
- new auth plugins infrastructure in place
- is_internal_auth() is now a deprecated legacy call
- create_user_record()/update_user_record()/authenticate_user_login() handle multi-auth
- is_mnet_remote_user() checks for remoteness
- clean_param() handles PARAM_PEM and PARAM_BASE64
Also
- user_login_string() knows to offer a link to remote users to login @ their host
- XMLTDBTable field creation returns the field obj so that
the caller has a chance to set additional properties such as comment
+ improved print_user_picture() to allow images with empty alt to prevent repetitive reading of usernames in jaws when username is printed next to avatar
- changed file upload api in formslib
- fixed blog attachments and related code in file.php
- fixed glossary attachments
- fixed embedded images in forum posts and blogs - only gif, png and jpeg; the problme was that svg were embedded using img tag which was wrong, the same applied to other picture formats unsupported by browsers (please note that student submitted svg should be never embedded in moodle page for security reasons)
- other minor fixes
We now have a wrapper memcached support class to handle
initial connection setup, provide the common denominator
calls, plus getforfill() and friends.
The eaccelerator class now returns false to match memcached. The
downside of this is that we cannot store booleans as a false value
is indistinguishable from a false that indicates error or 'key not
found'.
Make pconnections optional - only use pconnect if $CFG->memcachedpconn is
set. In current versions of the memcache client in PECL (v2.0.1),
memcache_pconnect() is buggy and will segfault if reusing a pconnection
to a server that has gone away or restarted.
And hope for a more stable client library in PECL ;-)
$MCACHE is initially based on core API that is shared between memcached and
turckmmcache/eaccelerator. The core operations are add(), set() and delete()
This initial implementation uses the PECL-based PHP client. Would be trivial
to add support for a PHP-based client.
The $MCACHE facility can be used for DB cache, text filters cache, and possibly
for sessions.
- move from $CFG->enablerecordcache <count> to $CFG->rcache <type>
- if $CFG->rcache === 'internal' use the cache array
otherwise, attempt to use $MCACHE
- implement and use rcache_getforfill() to catch thundering herds
- the cache lifetime is hardcoded to 2s until we understand better the
possible race conditions against updates that are not happening via
update_record() / delete_record()