Skip to content

Commit

Permalink
[2969] Check for primary Klant backend in update_user_on_login signal
Browse files Browse the repository at this point in the history
  • Loading branch information
pi-sigma authored and Paul Schilling committed Feb 4, 2025
1 parent 91b8b82 commit 92d3984
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 21 deletions.
32 changes: 17 additions & 15 deletions src/open_inwoner/accounts/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
from open_inwoner.haalcentraal.models import HaalCentraalConfig
from open_inwoner.haalcentraal.utils import update_brp_data_in_db
from open_inwoner.kvk.client import KvKClient
from open_inwoner.openklant.constants import KlantenServiceType
from open_inwoner.openklant.models import KlantenSysteemConfig
from open_inwoner.openklant.services import OpenKlant2Service, eSuiteKlantenService
from open_inwoner.utils.logentry import user_action

Expand Down Expand Up @@ -40,21 +42,21 @@ def update_user_on_login(sender, user, request, *args, **kwargs):
if user.login_type is LoginTypeChoices.eherkenning:
_update_eherkenning_user_from_kvk_api(user=user)

# OpenKlant2
try:
service = OpenKlant2Service()
except Exception:
logger.error("OpenKlant2 service failed to build")
else:
_update_user_from_openklant2(user=user, service=service, request=request)

# eSuite
try:
service = eSuiteKlantenService()
except Exception:
logger.error("eSuiteKlantenService failed to build")
else:
_update_user_from_esuite(user=user, service=service, request=request)
config = KlantenSysteemConfig.get_solo()
if config.primary_backend == KlantenServiceType.OPENKLANT2.value:
try:
service = OpenKlant2Service()
except Exception:
logger.error("OpenKlant2 service failed to build")
else:
_update_user_from_openklant2(user=user, service=service, request=request)
if config.primary_backend == KlantenServiceType.ESUITE.value:
try:
service = eSuiteKlantenService()
except Exception:
logger.error("eSuiteKlantenService failed to build")
else:
_update_user_from_esuite(user=user, service=service, request=request)


def _update_user_from_openklant2(
Expand Down
6 changes: 6 additions & 0 deletions src/open_inwoner/accounts/tests/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
from open_inwoner.haalcentraal.tests.mixins import HaalCentraalMixin
from open_inwoner.kvk.branches import get_kvk_branch_number
from open_inwoner.kvk.tests.factories import CertificateFactory
from open_inwoner.openklant.constants import KlantenServiceType
from open_inwoner.openklant.models import KlantenSysteemConfig
from open_inwoner.openklant.tests.data import MockAPIReadPatchData
from open_inwoner.openzaak.models import OpenZaakConfig
from open_inwoner.utils.tests.helpers import AssertTimelineLogMixin
Expand Down Expand Up @@ -2040,6 +2042,10 @@ def setUpTestData(cls):
config.enable_notification_channel_choice = True
config.save()

klant_config = KlantenSysteemConfig.get_solo()
klant_config.primary_backend = KlantenServiceType.ESUITE.value
klant_config.save()

def test_update_hook_is_registered_on_login(self, m):
connected_functions = [receiver[1]() for receiver in user_logged_in.receivers]
self.assertIn(update_user_on_login, connected_functions)
Expand Down
2 changes: 1 addition & 1 deletion src/open_inwoner/cms/footer/tests/test_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def test_form_link_is_shown_in_footer_when_has_configuration(self):
self.assertFalse(klant_config.has_contactform_configuration)

esuite_config = ESuiteKlantConfig.get_solo()
ContactFormSubjectFactory(config=esuite_config)
ContactFormSubjectFactory(esuite_config=esuite_config)

klant_config.register_contact_email = "example@example.com"
klant_config.save()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

class Migration(migrations.Migration):

dependencies = [
("openklant", "0023_remove_esuiteklantconfig_register_contact_moment_and_more"),
]
dependencies = [("openklant", "0024_alter_klantensysteemconfig_primary_backend")]

operations = [
migrations.RenameField(
Expand Down
2 changes: 1 addition & 1 deletion src/open_inwoner/openklant/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ class OpenKlant2Config(SingletonModel):

@property
def has_api_configuration(self):
return all(getattr(self, f, "") for f in self.register_api_required_fields)
return all(getattr(self, f, False) for f in self.register_api_required_fields)

class Meta:
verbose_name = _("OpenKlant2 configuration")
Expand Down
7 changes: 6 additions & 1 deletion src/open_inwoner/openklant/tests/test_signal.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
from open_inwoner.accounts.models import User
from open_inwoner.accounts.tests.factories import UserFactory, eHerkenningUserFactory
from open_inwoner.configurations.models import SiteConfiguration
from open_inwoner.openklant.models import ESuiteKlantConfig
from open_inwoner.openklant.constants import KlantenServiceType
from open_inwoner.openklant.models import ESuiteKlantConfig, KlantenSysteemConfig
from open_inwoner.openklant.tests.data import KLANTEN_ROOT, MockAPIReadData
from open_inwoner.openzaak.tests.helpers import generate_oas_component_cached
from open_inwoner.utils.test import (
Expand All @@ -32,6 +33,10 @@ def setUpTestData(cls):
config.enable_notification_channel_choice = True
config.save()

klant_config = KlantenSysteemConfig.get_solo()
klant_config.primary_backend = KlantenServiceType.ESUITE.value
klant_config.save()

def setUp(self) -> None:
super().setUp()

Expand Down

0 comments on commit 92d3984

Please sign in to comment.