- This happens for Course creator, Editing Teacher, and Student role assignments. I haven't investigated other roles.
- This also effects metacourse enrollments: if a child course is invisible, students are unenrolled from it when they log in, and are hence unenrolled from the metacourse.
- Only LDAP enrollments seem to be effected. If I manually assign a user to an invisible course as an editing teacher, for example, she'll see the course properly when she logs in. Likewise, if I run enrol_ldap_sync.php and then do an UPDATE query to set all the LDAP enrollments to manual (just as a test), all users remain properly enrolled in their courses when they log in. When I reset them back to LDAP, they are again unenrolled on login.
- Running enrol_ldap_sync.php properly restores enrollments to all courses. It's only when users actually log in (or when an admin uses login as) that the users are unenrolled, at which point only running enrol_ldap_sync.php will restore the enrollments.
This first started happening when we upgraded to Moodle 1.9b4 (we've been running 1.9 since September 2007). It has continued since 1.9 was officially released. It was never a problem before that.
A little information about our setup: our course objects are posixGroups in eDirectory 8.7.3, with user IDs stored in the memberUid attributes. We have tested this with servers running both Red Hat ES 4 and CentOS, with PHP 4 and 5. We haven't changed anything in our LDAP directory at all.
One thing I'm not sure about is whether I might be overlooking a user permissions setting that causes this problem. I've been over the role definitions, though, and haven't seen anything obvious (anything that looked like it might be even remotely connected, I changed to "Allow," with no effect).
Has anyone else noticed this? For various reasons, we need to have our courses be unavailable to students by default, but if we do that, instructors are no longer able to access them when they login, which is frustrating and somewhat counterproductive. :-|
David Walton