From 126ad8c85b30b164e9bb3a36c88e6e8e14344706 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Mon, 15 Feb 2021 15:04:50 +0100 Subject: [PATCH] authentic agent: include collectivity in secondary service label (#51127) --- .../authentic2/management/commands/hobo_deploy.py | 6 +++++- tests_authentic/test_hobo_deploy.py | 13 +++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/hobo/agent/authentic2/management/commands/hobo_deploy.py b/hobo/agent/authentic2/management/commands/hobo_deploy.py index 600b621..c50ba90 100644 --- a/hobo/agent/authentic2/management/commands/hobo_deploy.py +++ b/hobo/agent/authentic2/management/commands/hobo_deploy.py @@ -158,11 +158,15 @@ class Command(hobo_deploy.Command): provider.federation_source = 'hobo' provider.metadata = metadata_text provider.metadata_url = service['saml-sp-metadata-url'] - if service.get('variables', {}).get('ou-slug'): + variables = service.get('variables', {}) + if variables.get('ou-slug'): ou, created = get_ou_model().objects.get_or_create( slug=service['variables']['ou-slug']) ou.name = service['variables']['ou-label'] ou.save() + if service.get('secondary') and variables.get('ou-label'): + # for secondary services include collectivity in label + provider.name = '%s (%s)' % (service['title'], service['variables']['ou-label']) else: # if there are more than one w.c.s. service we will create an # ou of the same name diff --git a/tests_authentic/test_hobo_deploy.py b/tests_authentic/test_hobo_deploy.py index 1d53907..b318a37 100644 --- a/tests_authentic/test_hobo_deploy.py +++ b/tests_authentic/test_hobo_deploy.py @@ -302,9 +302,14 @@ def test_hobo_deploy(monkeypatch, tenant_base, mocker, skeleton_dir, tmp_path): 'template_name': 'commune', 'slug': 'clapiers', 'title': 'Clapiers', + 'secondary': True, 'base_url': 'http://clapiers.example.net', 'saml-sp-metadata-url': 'http://clapiers.example.net/saml/metadata', + 'variables': { + 'ou-label': 'OU label', + 'ou-slug': 'ou-slug', + }, }, ] } @@ -422,7 +427,10 @@ def test_hobo_deploy(monkeypatch, tenant_base, mocker, skeleton_dir, tmp_path): assert LibertyProvider.objects.filter(slug=service['slug']) \ .count() == 1 provider = LibertyProvider.objects.get(slug=service['slug']) - assert provider.name == service['title'] + if service['slug'] == 'clapiers': + assert provider.name == 'Clapiers (OU label)' + else: + assert provider.name == service['title'] assert provider.federation_source == 'hobo' assert provider.entity_id == service['saml-sp-metadata-url'] assert LibertyServiceProvider.objects.filter( @@ -445,7 +453,8 @@ def test_hobo_deploy(monkeypatch, tenant_base, mocker, skeleton_dir, tmp_path): if i == 0 or service_id != 'wcs': assert provider.ou == get_default_ou() else: - assert provider.ou.name == service['title'] + assert provider.ou.name == \ + service['variables']['ou-label'] if 'variables' in service else service['title'] assert su_role.ou == provider.ou assert provider.attributes.count() == 2 assert provider.attributes.filter(