Bug #8444
Ajouter le provisionning des utilisateurs dans hobo_notify
0%
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
Révisions associées
hobo_notify: add user provisionning (#8444)
hobo_notify: reset user.roles before adding roles from the notification (#8444)
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Fichier 0001-hobo_notify-adapt-to-change-in-message-format-8444.patch 0001-hobo_notify-adapt-to-change-in-message-format-8444.patch ajouté
- Fichier 0002-hobo_notify-add-user-provisionning-8444.patch 0002-hobo_notify-add-user-provisionning-8444.patch ajouté
- Patch proposed changé de Non à Oui
Les tests passent après chaque patch.
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").
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.
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.
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.
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'.
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.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Fichier
0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
Le problème est dans hobo, le message n'est pas bon.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Lié à Development #8440: Ajouter le provisionning des utilisateurs ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Fichier 0002-hobo_notify-add-user-provisionning-8444.patch 0002-hobo_notify-add-user-provisionning-8444.patch ajouté
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é.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Statut changé de Nouveau à Résolu (à déployer)
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.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Statut changé de En cours à Résolu (à déployer)
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Statut changé de Résolu (à déployer) à Fermé
hobo_notify: adapt to change in message format (#8444)