Projet

Général

Profil

0001-authenticators-adjust-show_condition-field-contraint.patch

Valentin Deniaud, 19 mai 2022 19:23

Télécharger (5,03 ko)

Voir les différences:

Subject: [PATCH] authenticators: adjust show_condition field contraints
 (#65472)

 .../apps/authenticators/migrations/0001_initial.py        | 3 ++-
 .../authenticators/migrations/0003_auto_20220413_1504.py  | 2 +-
 src/authentic2/apps/authenticators/models.py              | 3 ++-
 .../migrations/0010_auto_20220413_1622.py                 | 8 +++++---
 4 files changed, 10 insertions(+), 6 deletions(-)
src/authentic2/apps/authenticators/migrations/0001_initial.py
32 32
                    'show_condition',
33 33
                    models.CharField(
34 34
                        blank=True,
35
                        default='',
35 36
                        help_text=(
36 37
                            'Django template controlling authenticator display. For example, "\'backoffice\' '
37 38
                            'in login_hint or remotre_addr == \'1.2.3.4\'" would hide the authenticator from '
......
39 40
                            'variables include service_ou_slug, service_slug, remote_addr, login_hint and '
40 41
                            'headers.'
41 42
                        ),
42
                        max_length=128,
43
                        max_length=1024,
43 44
                        verbose_name='Show condition',
44 45
                    ),
45 46
                ),
src/authentic2/apps/authenticators/migrations/0003_auto_20220413_1504.py
14 14
        slug='password-authenticator',
15 15
        defaults={
16 16
            'order': password_settings.get('priority', 0),
17
            'show_condition': password_settings.get('show_condition', ''),
17
            'show_condition': password_settings.get('show_condition') or '',
18 18
            'enabled': app_settings.A2_AUTH_PASSWORD_ENABLE,
19 19
            'remember_me': app_settings.A2_USER_REMEMBER_ME,
20 20
            'include_ou_selector': app_settings.A2_LOGIN_FORM_OU_SELECTOR,
src/authentic2/apps/authenticators/models.py
46 46
    enabled = models.BooleanField(default=False, editable=False)
47 47
    show_condition = models.CharField(
48 48
        _('Show condition'),
49
        max_length=128,
49
        max_length=1024,
50 50
        blank=True,
51
        default='',
51 52
        help_text=_(
52 53
            'Django template controlling authenticator display. For example, "\'backoffice\' in '
53 54
            'login_hint or remotre_addr == \'1.2.3.4\'" would hide the authenticator from normal users '
src/authentic2_auth_oidc/migrations/0010_auto_20220413_1622.py
10 10
def add_base_authenticators(apps, schema_editor):
11 11
    kwargs_settings = getattr(global_settings, 'AUTH_FRONTENDS_KWARGS', {})
12 12
    oidc_provider_settings = kwargs_settings.get('oidc', {})
13
    show_condition = oidc_provider_settings.get('show_condition')
13
    show_condition = oidc_provider_settings.get('show_condition') or ''
14 14

  
15 15
    BaseAuthenticator = apps.get_model('authenticators', 'BaseAuthenticator')
16 16
    OIDCProvider = apps.get_model('authentic2_auth_oidc', 'OIDCProvider')
17 17

  
18 18
    for provider in OIDCProvider.objects.all():
19 19
        if isinstance(show_condition, dict):
20
            show_condition = show_condition.get(provider.slug, '')
20
            show_condition_authenticator = show_condition.get(provider.slug) or ''
21
        else:
22
            show_condition_authenticator = show_condition
21 23

  
22 24
        base_authenticator = BaseAuthenticator.objects.create(
23 25
            name=provider.name,
......
25 27
            ou=provider.ou,
26 28
            enabled=provider.show and app_settings.ENABLE,
27 29
            order=oidc_provider_settings.get('priority', 2),
28
            show_condition=show_condition,
30
            show_condition=show_condition_authenticator,
29 31
        )
30 32
        provider.baseauthenticator_ptr = base_authenticator.pk
31 33
        provider.save()
32
-