Projet

Général

Profil

Bug #8444

Ajouter le provisionning des utilisateurs dans hobo_notify

Ajouté par Benjamin Dauvergne il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
30 septembre 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Ça dépend de #8440 (ou au moins de sa suite, i.e. l'ajout de handler de signaux dans authentic pour provoquer le provisionning).


Fichiers


Demandes liées

Lié à Hobo - Development #8440: Ajouter le provisionning des utilisateursFermé30 septembre 2015

Actions

Révisions associées

Révision ebe2e5b0 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

hobo_notify: adapt to change in message format (#8444)

Révision 02b6add5 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

hobo_notify: add user provisionning (#8444)

Révision 5d1bd131 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

hobo_notify: reset user.roles before adding roles from the notification (#8444)

Historique

#2

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

Pas besoin de passer le uuid ici, il me semble :

user = User(uuid)

À part ça, ça m'ennuie toujours les modifications de format parce que ça oblige à des mises à jour synchronisées des applications (mais comme on n'a encore rien en prod, il me semble, ça "va").

#3

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

J'avais besoin que les objets dans "objects" soient tous du même type pour ne pas retrouver avec un truc étrange, si full=True et qu'on a des objets de différents types.
J'aurai pu ne rien changer et consisérer que c'était à l'émetteur de faire attention, mais comme cela c'est plus claire je trouve. Je préfère faire cela maintenant.

#4

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Pour le User(uuid) je me dis que ça permettra de voir tout de suite quand le set_attributes_from_formdata() ne marche pas.

#5

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

  • Version cible changé de v1.14 à v1.15
#6

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

  • Version cible changé de v1.15 à v1.16
#7

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

Parce que je me suis inquiété du sujet tout à l'heure et que j'ai vraiment l'impression qu'on va arriver à tout casser, je note ici ATTENTION ATTENTION le déploiement d'un wcs avec ces commits doit être synchronisé avec le déploiement d'un hobo avec #8440.

#8

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

  • Version cible changé de v1.16 à v1.17
#9

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

À la suppession d'un utilisateur, le message est :

[...]
  "full": true,.
  "@type": "deprovision",.
  "objects": {
    "data": [
      {
        "uuid": "74cae4dfb7584606b6f9f8b4bd8fd62f" 
      }
    ],.
    "@type": "instance" 
  },.
  "issuer": "https://authentic1.127.0.0.1.xip.io/idp/saml2/metadata" 
[...]

Et le hobo_notify échoue parce que 'CmdHoboNotify' has no attribute 'provision_instance'.

#10

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Fichier 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch ajouté

Avec un test sur le déprovisionning ajouté, corrigé encore un full=True restant et le @type=instance.

#11

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Mince pas le bon ticket.

#12

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Fichier 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch supprimé
#13

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Le problème est dans hobo, le message n'est pas bon.

#14

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

#15

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Comme pour #8440 la modification du deprovisionning utilisateur, car il n'y a que le champ 'uuid'. La modification:

diff --git a/wcs/ctl/hobo_notify.py b/wcs/ctl/hobo_notify.py
index 22de271..6b0dc1a 100644
--- a/wcs/ctl/hobo_notify.py
+++ b/wcs/ctl/hobo_notify.py
@@ -159,14 +159,12 @@ class CmdHoboNotify(Command):

         assert not full # full is not supported for users

-        uuids = set()
         for o in data:
             try:
-                assert cls.check_valid_user(o)
                 o = json_encode_helper(o, publisher.site_charset)
-                uuid = o['uuid']
-                uuids.add(uuid)
                 if action == 'provision':
+                    assert cls.check_valid_user(o)
+                    uuid = o['uuid']
                     users = User.get_users_with_name_identifier(uuid)
                     assert len(users) < 2  # we are fucked if it's not the case...
                     if users:
@@ -198,6 +196,8 @@ class CmdHoboNotify(Command):
                             user.remove_self()
                             break
                 elif action == 'deprovision':
+                    assert 'uuid' in o
+                    uuid = o['uuid']
                     users = User.get_users_with_name_identifier(uuid)
                     for user in users:
                         user.remove_self()

J'en ai profité pour virer le uuids = set() qui ne sert à rien vu qu'on ne supporte pas le mode 'full' pour les utilisateurs. Et le patch modifié.

#16

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de Nouveau à Résolu (à déployer)
#17

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à En cours

J'ai oublié le deprovisionning des rôles.

#19

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

ok.

#20

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de En cours à Résolu (à déployer)
#21

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF