Projet

Général

Profil

Development #9934

import/export utilisateurs et rôles d'authentic

Ajouté par Frédéric Péters il y a environ 8 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
10 février 2016
Echéance:
% réalisé:

0%

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

Description

Pour les passages de recette en prod on bricole avec l'export wcs et de l'inversion de provisioning et un appel à import-wcs-roles, ça ne tient pas la route.

Il faudrait depuis authentic en recette pouvoir exporter utilisateurs et rôles, et depuis l'authentic en prod charger ça.

(priorité normale, importance haute)


Demandes liées

Lié à Authentic 2 - Development #11450: add a view for imports of roles and users Fermé20 juin 2016

Actions
Lié à Authentic 2 - Development #12595: add a manage command to import roles and users from a data dumpRejeté15 juillet 2016

Actions
Lié à Publik - Development #20770: Pouvoir déployer Publik depuis une UINouveau18 décembre 2017

Actions
Lié à w.c.s. - Development #14207: Modifier le provisionning pour retrouver les rôles par uuid, slug ou nomFermé05 décembre 2016

Actions

Historique

#1

Mis à jour par Thomas Noël il y a environ 8 ans

J'affine un peu :
  • disposer d'un export global tous les rôles + tous les utilisateurs + les affectations, avec conservation des UUID [pour une mise en prod total]
  • et d'un export d'un seul rôle (ou d'une sélection de rôles), avec UUID [pour la suite, quand il faut faire avancer la prod pour lui faire rejoindre la recette]
  • sur l'import : avec warning si un rôle du même nom existe déjà avec un autre UUID
#2

Mis à jour par Benjamin Dauvergne il y a environ 8 ans

Ok, je ne vais traiter que export / import global via une commande, exporter 1 rôle ça n'a pas de sens, il faut que la recette soit une copie de la prod, si il y a des rôles en trop en recette il faut les virer.

L'exporte des rôles ça ne devrait pas poser de souci, par contre pour les utilisateurs c'est embêtant car on va forcément se retrouver avec les mêmes utilisateurs ayant des uuid différents en prod et en recette, je propose la méthode de résolution suivante:
  • chercher par uuid
  • ensuite tenter de matcher sur l'identifiant LDAP si il y en a un
  • ensuite se baser sur email, nom, prénom
  • ensuite se baser sur username, nom, prénom
  • finalement recréer l'utilisateur
Pour les rôles je propose la même algo que dans le hobo-notify:
  • chercher par uuid
  • chercher par slug
  • chercher par nom
  • sinon recréer

L'export aurait cette tête:

{
   "users": [
      {
         "uuid": "xxxx",
         "username": "xxxx",
         "first_name": "xxxx",
         "last_name": "xxxx",
         "email": "xxxx",
         "is_superuser": "xxxx",
         "is_staff": "xxxx",
         "attributes": [ # autres attributs du profil
             { "name": "xxx", "value": "yyy"}
         ],
      }
    ],
    "roles": [
       {
          "uuid": "xxx",
          "ou": "Alfortville",
          "name": "...",
          "slug": "...",
          "members": [
              "...." <- uuid du user, durant l'import des users on crée une table de mapping
          ],
          "parents": [
              "...." <- uuid du rôle, idem..
          ],
          "children": [
              "...." 
          ],
          "attributes": [ # autres attributs, emails, emails_to_members, etc.. on met à jour en se basant sur kind&name, on ne supprime pas les attributs en plus
             {
               "kind": "...",
               "name": "...",
               "value": "....",
             }
          ]
      }
    ]
}

En fait je pense que l'import/export des utilisateurs et des membres c'est mal, en plus ça n'est pas essentiel, une mise en prod d'un formulaire c'est rôle+formulaire, l'affectation des utilisateurs est à faire en prod par la collectivité.

#3

Mis à jour par Thomas Noël il y a environ 8 ans

Benjamin Dauvergne a écrit :

exporter 1 rôle ça n'a pas de sens

Pour moi, si :
  • sur la recette, je créé un rôle, je lui attribue des choses sur w.c.s., ailleurs, etc
  • on vérifie que tout est ok
  • pour basculer sur la prod, j'exporte le rôle, avec son UUID conservé par rapport à la recette

Si on crée le rôle sur la prod sans passer par export-recette/import-prod, il aura un autre UUID que la recette, et ça sera pénible de migrer le reste qui fera référence à cet UUID.

Mais ça peut attendre un poil.

Note : hier quand j'en causais avec Josué, l'idée qui sortait, c'était de programmer cet export/import via django-rest-framework ...?

#4

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

#5

Mis à jour par Josué Kouka il y a plus de 7 ans

  • Lié à Development #12595: add a manage command to import roles and users from a data dump ajouté
#6

Mis à jour par Frédéric Péters il y a plus de 6 ans

#7

Mis à jour par Frédéric Péters il y a environ 6 ans

  • Sujet changé de import/export utlisateurs et rôles d'authentic à import/export utilisateurs et rôles d'authentic
#8

Mis à jour par Emmanuel Cazenave il y a environ 6 ans

  • Assigné à mis à Emmanuel Cazenave
#9

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

  • Lié à Development #14207: Modifier le provisionning pour retrouver les rôles par uuid, slug ou nom ajouté
#10

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

Up pour moi même parce que deux heures à créer des utilisateurs et leur affecter des rôles, plus jamais ça.

#11

Mis à jour par Valentin Deniaud il y a plus de 2 ans

  • Statut changé de Nouveau à Fermé
  • Planning mis à Non
  • Club mis à Non

On a tout ça depuis un moment.

Formats disponibles : Atom PDF