Projet

Général

Profil

Development #44254

Placer le bouton FC par défaut en premier pour les nouveaux déploiements

Ajouté par Serghei Mihai il y a presque 4 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
19 juin 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non
Club:
Non

Description

Accord avec la DINUM. Pour éviter une opération CPF et une opération CPT et le délai entre les deux pendant lequel le bouton n'est pas en premier.


Demandes liées

Lié à Authentic 2 - Development #44393: auth_fc: définir une priorité afin que le bloc s'affiche en premier sur la page de connexionFermé24 juin 2020

Actions

Historique

#1

Mis à jour par Frédéric Péters il y a presque 4 ans

Faire ça par défaut dans authentic2-auth-fc, plutôt que porter une configuration partout ? (avec possibilité pour les déploiements existants d'alors poser une configuration inverse, pour qu'ils ne changent pas).

#2

Mis à jour par Mikaël Ates il y a presque 4 ans

  • Description mis à jour (diff)
#3

Mis à jour par Mikaël Ates il y a presque 4 ans

  • Sujet changé de placer le bouton FC par défaut en premier pour les nouveaux déploiements à Placer le bouton FC par défaut en premier pour les nouveaux déploiements
#4

Mis à jour par Serghei Mihai il y a presque 4 ans

  • Lié à Development #44393: auth_fc: définir une priorité afin que le bloc s'affiche en premier sur la page de connexion ajouté
#5

Mis à jour par Serghei Mihai il y a presque 4 ans

Pour garder la deuxième position sur les déploiements existants on peut s'en sortir avec du code executé avec runscript.

On prend le 6 mai comme date de référence car c'est à ce moment qu'on a officialisé avec la DINUM le fait de placer le bouton en premier par défaut.
Et on épargne les déploiements existants, avec demande de la part du client de placer FC en premier (Arles, la Dordogne, j'en zappe?):

import json

from django.utils.timezone import datetime, make_aware
from hobo.deploy.signals import notify_agents

from hobo.environment.models import Authentic
from hobo.environment.utils import get_setting_variable

DOMAINS_WITH_FC_FIRST = ['https://moncompte-demarches.arles.fr/',
                         'https://connexion.demarches.dordogne.fr/',
]

for a2 in Authentic.objects.filter(last_operational_success_timestamp__lt=make_aware(datetime(2020, 5, 6)),
                                   secondary=False):
    if a2.base_url in DOMAINS_WITH_FC_FIRST:
        continue
    variable = get_setting_variable('AUTH_FRONTENDS_KWARGS', service=a2)
    variable.value = json.dumps({'fc': {'priority': 0}})
    variable.save()
    notify_agents(None)

#6

Mis à jour par Frédéric Péters il y a presque 4 ans

Ça m'a l'air plein d'espoir last_operational_success_timestamp__lt.

J'imaginais de mon côté que cela passe par des settings.json, parce que je n'aime pas passer par hobo pour ça, surtout pour de la donnée structurée ainsi, surtout pour des variables attachées à un unique service.

#7

Mis à jour par Serghei Mihai il y a presque 4 ans

Effectivement poser la variable qu'on ne pourra pas éditer facilement (sans UI) n'est pas top.

C'est mieux de poser la conf dans le settings.json de chaque tenant, en excluant les anciens déploiements avec FC en premier et les récents:

https://moncompte-demarches.arles.fr/
https://connexion.demarches.dordogne.fr/
https://connexion.icitoyen.fr/
https://connexion.mesdemarches.saintlaurentduvar.fr/
https://connexion.demarches.g-ny.eu/
https://connexion.services-en-ligne.correze.fr/

#8

Mis à jour par Serghei Mihai il y a presque 4 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Serghei Mihai

Code suivant éxecuté en recette avec runscript:

import json
import os

from django.db import connection
from django.conf import settings

DOMAINS_WITH_FC_FIRST = [
    # prod
    'https://moncompte-demarches.arles.fr',
    'https://connexion.demarches.dordogne.fr',
    'https://connexion.icitoyen.fr',
    'https://connexion.mesdemarches.saintlaurentduvar.fr',
    'https://connexion.demarches.g-ny.eu',
    'https://connexion.services-en-ligne.correze.fr',
    # test
    'https://connexion-arles.test.entrouvert.org',
    'https://connexion-dordogne.test.entrouvert.org',
    'https://connexion-roannais-agglomeration.test.entrouvert.org',
    'https://connexion-roanne-mutuel.test.entrouvert.org',
    'https://connexion-saintlaurentduvar.test.entrouvert.org',
    'https://connexion-grand-nancy.test.entrouvert.org',
    'https://connexion-correze.test.entrouvert.org',
]

if settings.A2_FC_ENABLE:
    tenant = connection.get_tenant()
    if tenant.get_base_url() not in DOMAINS_WITH_FC_FIRST:

        settings_json_path = os.path.join(tenant.get_directory(), 'settings.json')

        if not os.path.exists(settings_json_path):
            with open(settings_json_path, 'w') as out:
                settings = {'AUTH_FRONTENDS_KWARGS': {'fc': {'priority': 1}}}
                json.dump(settings, out, indent=2)
        else:
            settings_json_backup_path = os.path.join(tenant.get_directory(), 'settings.json.backup')
            settings = json.load(open(settings_json_path))

            if 'AUTH_FRONTENDS_KWARGS' in settings:
                if 'fc' not in settings['AUTH_FRONTENDS_KWARGS']:
                    settings['AUTH_FRONTENDS_KWARGS']['fc'] = {'priority': 1}
                else:
                    settings['AUTH_FRONTENDS_KWARGS']['fc']['priority'] = 1
            else:
                settings['AUTH_FRONTENDS_KWARGS'] = {'fc': {'priority': 1}}

            with open(settings_json_path, 'w') as out:
                json.dump(settings, out, indent=2)

Après une vérification tout semble nickel.

#10

Mis à jour par Frédéric Péters il y a presque 4 ans

Après une vérification tout semble nickel.

Heureusement parce que de

            settings_json_backup_path = os.path.join(tenant.get_directory(), 'settings.json.backup')

il n'est rien fait.

#12

Mis à jour par Serghei Mihai il y a presque 4 ans

L'authenticator LoginPassword n'est pas forcément le premier dans la liste. Donc pour FC il faut donner une priorité plus haute, 1.

#13

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Statut changé de En cours à Fermé

Formats disponibles : Atom PDF