Thanks for the code!
I have run the code three times, once as me, once as a student and once as a member of staff. It produces the following output:
==Me==
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: 4 records (context: ou=TeacherGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: 2 records (context: ou=StudentGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/login/index.php
==Student==
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: 0 records (context: ou=TeacherGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: 14 records (context: ou=StudentGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=6
==Staff==
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_result is empty (context: ou=TeacherGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_result is empty (context: ou=StudentGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 10 - Maths' (id 794), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 8 - Maths' (id 795), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 9 - Maths' (id 796), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 11 - Maths' (id 797), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 7 - Maths' (id 798), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 7 -' (id 814), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 10 - Core support' (id 867), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 11 - Additional Maths' (id 881), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Staff Sand Pit' (id 884), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 10 - Maths' (id 794), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 9 - Maths' (id 796), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 11 - Maths' (id 797), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 7 - Maths' (id 798), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 7 -' (id 814), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Year 10 - Core support' (id 867), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Information for Staff' (id 591), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
[ENROL LDAP] Unenrol user 'x' from course 'Staff Notices' (id 885), referer: https://moodle-test.x.co.uk/user/profile.php?id=1347
It looks as if the problem is only affecting members of Staff. The only difference between members of staff are they are assigned multiple roles in each course they teach (editingteacher and student) this is due to the way the groups are made up. However I have just tried to add a student as a editingteacher and a student to a course and the roles and enrolment work as expected:
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: 1 records (context: ou=TeacherGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: 1 records (context: ou=StudentGroups,ou=Moodle,ou=Groups,ou=x,dc=x,dc=local)., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858
[ENROL LDAP] find_ext_enrolments: ldap_contexts is empty., referer: https://moodle-test.x.co.uk/user/profile.php?id=1858