In my installation the users login with Shibboleth [1], but the rule [2] I’ve set up to be executed on “User has logged in” event, isn’t executed.
On the other hand, when I login as administrator through the normal Drupal way, the rule is executed.
Does this mean that the external login event isn’t handled at all?
Is there a way to overcome this?
This seems to be a bug of the Shibboleth module, so the login ‘event’ is indeed not raised by it (in Drupal terms, it does not invoke
hook_user()with$op = 'login').Looking at the Shibboleth code, the login seems to happen in its
hook_init()implementation:So you’d need to patch this and and ensure that
user_module_invoke()is called. The standard way to do this would be to calluser_authenticate_finalize()after a successful login (which will in turn calluser_module_invoke()), so you’d add that after theuser_external_login_register()call:NOTE: Untested code, beware of typos and other stupid oversights 😉
Should you end up doing this, you might want to submit it as a patch to the bug report linked above. (only if it works, obviously 😉