Thanks to Patrick Lee, we have a (r?)evolution of enrolments in our hands. We've been playing with it a bit, and we're really keen on merging into HEAD so it's part of 1.6. So come join us and test it!
How to get the code to try it out? If you're using anonymous CVS, do
cvs -d:pserver:email@example.com:/cvsroot/moodle checkout -r MOODLE_16_MULTIENROL moodle-multienrol
if you have SSH access, this is your incantation:
cvs -d:ext:firstname.lastname@example.org:/cvsroot/moodle checkout -r MOODLE_16_MULTIENROL moodle-multienrol
To review the patch you don't even need to get a checkout, in any Moodle checkout you already have, just do
cvs diff -u -r MOODLE_16_MULTIENROL_PRE -r MOODLE_16_MULTIENROL
What does it do? You can setup Moodle to use LDAP, DB, Paypal, OSCommerce and manual enrolments at the same time. This breaks down into the following parts:
Some modules are activated when a user logs in, and "read" enrolments from different places (external backends, internal records, etc). Of those, you can have as many as you want active. If you are using external enrolments, however, high latency can make your login process feel sluggish. Make sure your LDAP or DB servers are right next to the Moodle server
Other modules activate when someone tries to access a course they are not enrolled in. For any given course, we can have only one of these active -- so we have a Moodle-wide default (controlled from admin->enrolment), and then each course can pick a module (course->settings).
As a sweet extra, this includes OSCommerce integration -- out of the box (you do need a slightly patched OSCommerce).
Courses can now be set to be "available" to current students but not "enrollable" -- really useful with PayPal, OSCommerce, etc. See course->settings.
If you just upgrade from pre-multienrol to multienrol, Moodle should continue to work correctly -- help us double check that it works for you.
So -- that's the brief.