From 9a8dbb7add54e836a202af6f7c67d6cf6a1d7e2f Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 19 May 2022 19:11:18 +0200 Subject: [PATCH] authenticators: adjust show_condition field contraints (#65472) --- src/authentic2/apps/authenticators/migrations/0001_initial.py | 3 ++- .../apps/authenticators/migrations/0003_auto_20220413_1504.py | 2 +- src/authentic2/apps/authenticators/models.py | 3 ++- .../migrations/0010_auto_20220413_1622.py | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/authentic2/apps/authenticators/migrations/0001_initial.py b/src/authentic2/apps/authenticators/migrations/0001_initial.py index 9260aa4d9..1f57cf73f 100644 --- a/src/authentic2/apps/authenticators/migrations/0001_initial.py +++ b/src/authentic2/apps/authenticators/migrations/0001_initial.py @@ -32,6 +32,7 @@ class Migration(migrations.Migration): 'show_condition', models.CharField( blank=True, + default='', help_text=( 'Django template controlling authenticator display. For example, "\'backoffice\' ' 'in login_hint or remotre_addr == \'1.2.3.4\'" would hide the authenticator from ' @@ -39,7 +40,7 @@ class Migration(migrations.Migration): 'variables include service_ou_slug, service_slug, remote_addr, login_hint and ' 'headers.' ), - max_length=128, + max_length=1024, verbose_name='Show condition', ), ), diff --git a/src/authentic2/apps/authenticators/migrations/0003_auto_20220413_1504.py b/src/authentic2/apps/authenticators/migrations/0003_auto_20220413_1504.py index 4a10785f0..ef7b53422 100644 --- a/src/authentic2/apps/authenticators/migrations/0003_auto_20220413_1504.py +++ b/src/authentic2/apps/authenticators/migrations/0003_auto_20220413_1504.py @@ -14,7 +14,7 @@ def create_login_password_authenticator(apps, schema_editor): slug='password-authenticator', defaults={ 'order': password_settings.get('priority', 0), - 'show_condition': password_settings.get('show_condition', ''), + 'show_condition': password_settings.get('show_condition') or '', 'enabled': app_settings.A2_AUTH_PASSWORD_ENABLE, 'remember_me': app_settings.A2_USER_REMEMBER_ME, 'include_ou_selector': app_settings.A2_LOGIN_FORM_OU_SELECTOR, diff --git a/src/authentic2/apps/authenticators/models.py b/src/authentic2/apps/authenticators/models.py index 6e96d8282..4af6e58f8 100644 --- a/src/authentic2/apps/authenticators/models.py +++ b/src/authentic2/apps/authenticators/models.py @@ -46,8 +46,9 @@ class BaseAuthenticator(models.Model): enabled = models.BooleanField(default=False, editable=False) show_condition = models.CharField( _('Show condition'), - max_length=128, + max_length=1024, blank=True, + default='', help_text=_( 'Django template controlling authenticator display. For example, "\'backoffice\' in ' 'login_hint or remotre_addr == \'1.2.3.4\'" would hide the authenticator from normal users ' diff --git a/src/authentic2_auth_oidc/migrations/0010_auto_20220413_1622.py b/src/authentic2_auth_oidc/migrations/0010_auto_20220413_1622.py index a4b7aedfd..0d5149f07 100644 --- a/src/authentic2_auth_oidc/migrations/0010_auto_20220413_1622.py +++ b/src/authentic2_auth_oidc/migrations/0010_auto_20220413_1622.py @@ -10,14 +10,14 @@ from authentic2_auth_oidc import app_settings def add_base_authenticators(apps, schema_editor): kwargs_settings = getattr(global_settings, 'AUTH_FRONTENDS_KWARGS', {}) oidc_provider_settings = kwargs_settings.get('oidc', {}) - show_condition = oidc_provider_settings.get('show_condition') + show_condition = oidc_provider_settings.get('show_condition') or '' BaseAuthenticator = apps.get_model('authenticators', 'BaseAuthenticator') OIDCProvider = apps.get_model('authentic2_auth_oidc', 'OIDCProvider') for provider in OIDCProvider.objects.all(): if isinstance(show_condition, dict): - show_condition = show_condition.get(provider.slug, '') + show_condition = show_condition.get(provider.slug) or '' base_authenticator = BaseAuthenticator.objects.create( name=provider.name, -- 2.30.2