moodle-an-hochschulen / moodle-auth_ldap_syncplus

Moodle authentication plugin which provides all functionality of auth_ldap, but supports advanced features for the LDAP synchronization task and LDAP authentication.
GNU General Public License v3.0
10 stars 12 forks source link

LDAP Sync Plus Moodle 3.5 synchronization error #7

Closed aagrou closed 6 years ago

aagrou commented 6 years ago

Hello All,

Could you please help me to solve an issue while run LDAP users sync job (Sync Plus).

I go the error message bellow:

LDAP users sync job (Sync Plus)

Execute scheduled task: LDAP users sync job (Sync Plus) (auth_ldap_syncplus\task\sync_task) ... started 15:19:56. Current memory use 8.1MB. Connecting to LDAP server...

Creating temporary table tmp_extuser

......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Got 1782 records from LDAP

No updates to be done

User entries to be added: 1775

Exception - Call to protected method auth_plugin_base::update_user_record() from context ''

More information about this error

Please help me, thanks a lot.

Regards,

leonstr commented 6 years ago

It looks like the sync task can trigger a user_created event which causes auth/ldap_syncplus/eventhandler.php:update_user_onevent() to be called which in turn calls $authplugin->update_user_record(). However, there's a change in Moodle 3.5 documented in auth/upgrade.txt:

* The auth_db and auth_ldap plugins' implementations of update_user_record() have been removed and both now
  call the new implementation added in the base class.

So between Moodle 3.4 and Moodle 3.5 auth_plugin_ldap::update_user_record() in auth/ldap/auth.php has become auth_plugin_base::update_user_record() in lib/authlib.php which isn't a problem in itself except the visibility was also changed to protected so the call from auth/ldap_syncplus/eventhandler.php:update_user_onevent() is no longer possible.

abias commented 6 years ago

Thanks, @aagrou and @leonstr for the bug report and the initial analysis.

This has been fixed now in acd2b1dc865638ccea9ab130949112cbbcb8283f and will be soon be published within a 3.5 version of the plugin.