user.save()
handle_social_account_updated(None, request, sociallogin)
return user
+
+ def on_authentication_error(
+ self,
+ request,
+ provider,
+ error=None,
+ exception=None,
+ extra_context=None,
+ ):
+ """
+ Just log errors and pass them along.
+ """
+ logger.warning(
+ f"Social authentication error for provider `{provider!s}`: {error!s} ({exception!s})",
+ )
+ return super().on_authentication_error(
+ request,
+ provider,
+ error,
+ exception,
+ extra_context,
+ )
self.assertEqual(user.groups.count(), 1)
self.assertTrue(user.groups.filter(name="group1").exists())
self.assertFalse(user.groups.filter(name="group2").exists())
+
+ def test_error_logged_on_authentication_error(self):
+ adapter = get_social_adapter()
+ request = HttpRequest()
+ with self.assertLogs("paperless.auth", level="INFO") as log_cm:
+ adapter.on_authentication_error(
+ request,
+ provider="test-provider",
+ error="Error",
+ exception="Test authentication error",
+ )
+ self.assertTrue(
+ any("Test authentication error" in message for message in log_cm.output),
+ )