Projet

Général

Profil

Development #8219

nouvelle command 'notify' pour traiter les notifications provisionnement/déprovisionnement des rôles en provenance d'authentic

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:
09 septembre 2015
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

Fichiers

0001-new-notify-command-to-handle-role-provisionning-depr.patch (4,83 ko) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 09 septembre 2015 09:41
0001-new-notify-command-to-handle-role-provisionning-depr.patch (4,91 ko) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 09 septembre 2015 10:51
0001-new-notify-command-to-handle-role-provisionning-depr.patch (8,34 ko) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 09 septembre 2015 13:42
0001-new-notify-command-to-handle-role-provisionning-depr.patch (8,39 ko) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 10 septembre 2015 10:04
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (9,11 ko) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 10 septembre 2015 11:02
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (9,64 ko) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 12 septembre 2015 00:58
0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch (9,01 ko) 0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch Benjamin Dauvergne, 12 septembre 2015 01:31
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (9,64 ko) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 15 septembre 2015 10:08
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (11,7 ko) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 15 septembre 2015 10:35

Demandes liées

Lié à Hobo - Development #8217: Ajouter une tâche hobo pour notifier les agents des nouveaux rôles, connecter cette tâche aux signaux post_save, post_delete sur les rôlesFermé09 septembre 2015

Actions
Lié à Publik - Project management #8006: Supprimer la création de rôles dans w.c.s.Fermé03 août 201505 janvier 2016

Actions

Révisions associées

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

new hobo_notify command to handle role provisionning/deprovisionning messages (fixes #8219)

It gets wcs roles from uuid or slug of the authentic2 role; if role is
using a slug it's replaced by the uuid. It handles rename by using uuid
as the slug of roles.

Targetted tenants are identified through their SAML entity id.

Historique

#1

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

  • Lié à Development #8217: Ajouter une tâche hobo pour notifier les agents des nouveaux rôles, connecter cette tâche aux signaux post_save, post_delete sur les rôles ajouté
#2

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

#4

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

  • Version cible changé de v1.13.4 à v1.13.5

→ 1.13.5 car la 1.13.4 est déjà releasée

#5

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

if action == 'provision':
    # Provision/rename
    role.name = name
    role.slug = uuid
    role.store()
elif action == 'provision': <-- 'deprovision' ?
    # Deprovision
    role.remove_self()
#6

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

Taper dans une méthode séparée ce qui suit le notification = json.load..., histoire de faciliter la création de tests.

#8

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

Ah j'ai du mal m'exprimer. Pour faciliter les tests mon idée c'est de réduire le execute(), qui ferait en gros

[...]
notification = self.load_notification(args)
if not self.check_valid_input(notification): sys.exit(1)
self.process_notification(notification)

Comme ça on peut avoir des tests sur le process_notification().

#10

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

Cool; (ett → etat, dans le slug ? (j'ai d'abord cru que c'était partie intégrante du test d'avoir la lettre manquante)).

On n'a jamais de full=True, il me semble; tu imagines ce passage arriver quand ?

#11

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

Le full=True est dans le dernier patch du ticket #8217 ou alors je n'ai pas attaché le bon. Le 'ett' est volontaire.

#12

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

(je n'arrive pas à comprendre le sens de ett, pas grave).

Je vois le full: True; maintenant que c'est le cas de manière systématique, il pourrait juste ne pas exister ? Et/ou on le garde simplement par anticipation du moment où on voudra qu'il ne soit plus systématique ?

#13

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

Je préfère garder les deux modes; je ne sais pas encore comment ça va se comporter à Montpellier particulièrement, je me laisse le choix de revenir sur des envois ponctuels et du full de temps en temps.

Un autre souci que je vois pour Montpellier c'est le cas de rôles pour Sussargues et pas pour Clapiers, qui n'est pas géŕé, tout les w.c.s. reçoivent tous les rôles.

#14

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

Ah oui, ça va pas du tout aller :/

Quand des entités sont utilisées, il faudrait grouper par entité et mettre en "audience" uniquement les SP attachés à celle-ci ?

#15

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

Yep je pense que c'est un peu ça: lors de la modification d'un rôle lié à une entité on balance tous les rôles de l'entité et tous les rôle sans entités aux SPs de cette entité, sauf les rôles d'administration (ceux qui ont un admin_scope non nul).

#16

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

  • Fichier 0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch ajouté
#17

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

#8217 ce patch.

#18

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

  • Fichier 0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch supprimé
#20

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

Il reste une mention du nom :

class CmdNotify(Command):
    name = 'notify'
#21

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

et mini-truc, dans test_process_notification_wrong_audience, les deux rôles ont le même uuid (12345, lignes 38 et 44 de tests/test_hobo_notify.py)

#22

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

Thomas Noël a écrit :

et mini-truc, dans test_process_notification_wrong_audience, les deux rôles ont le même uuid (12345, lignes 38 et 44 de tests/test_hobo_notify.py)

Bien vu mais ça n'a pas d'impact, c'est justement un test qui vérifie que rien n'est chargé.

#23

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

en relisant je me dis que ça pourrait planter si un rôle n'existe pas alors qu'il doit être "déprovisionné".

je propose:
  • ajouter un role = None avant le try ligne 95 (Find existing role)
  • et alors elif action == 'deprovision' and role: ligne 110
#24

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

Il y a un if action != 'provision': continue pour ça ? Dans quel cas ça pourrait continuer ? L'exception KeyError ne serait pas levé et role serait quand même None ?

#25

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

J'avais raté le "if action != 'provision':". Sorry.

#26

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

Truc que j'avais raté, qui m'est revenu ce matin; dans wcs on a absolument besoin d'un attribut email aux rôles. (et en fait, dans wcs, c'est une liste d'emails, je vais vérifier si c'est utilisé avec plusieurs emails parfois, mais je pense que oui).

Concernant les autres attributs :

  • details, pour contenir une description, pas indispensable immédiatement, mais tant qu'à ajouter email, autant prendre celui-là aussi ;
  • emails_to_members, qui détermine si les mails sont également distribués aux adresses individuelles des membres; là-dessus je dirais que s'il n'y a pas d'emails du tout, ça doit être mis à True, et dans le cas contraire, ça ne doit pas être touché ;
  • allows_backoffice_access, ne doit pas être touché mais nécessite l'ajout d'un nouveau panneau de paramétrage où pourront être sélectionnés les rôles ayant accès au backoffice. (la valeur par défaut c'est True, on ne la change pas, on verra plus tard). (je m'occupe de cette partie, #8239)
#27

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

  • Version cible v1.13.5 supprimé
#28

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

  • Version cible mis à v1.14
#29

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

Frédéric Péters a écrit :

Truc que j'avais raté, qui m'est revenu ce matin; dans wcs on a absolument besoin d'un attribut email aux rôles. (et en fait, dans wcs, c'est une liste d'emails, je vais vérifier si c'est utilisé avec plusieurs emails parfois, mais je pense que oui).

Concernant les autres attributs :

  • details, pour contenir une description, pas indispensable immédiatement, mais tant qu'à ajouter email, autant prendre celui-là aussi ;

Je pense que peux projeter le champ description du modèle Role là dessus sans trop de soucis, ça me semble être la même chose.

  • emails_to_members, qui détermine si les mails sont également distribués aux adresses individuelles des membres; là-dessus je dirais que s'il n'y a pas d'emails du tout, ça doit être mis à True, et dans le cas contraire, ça ne doit pas être touché ;
Celui-là et emails je vais les gérer comme suit:
  • j'ai ajouté un setting pour surcharger la classe de formulaire utilisée dans le manager pour éditer la définition d'un rôle
  • dans l'application hobo.agent spécifique à authentic2 je vais ajouter la définition d'une telle class qui sauvegardera la valeur de ces deux champs dans des modèles RoleAttribute
  • dans le AppConfig de la même application je poserai le setting A2_MANAGER_ROLE_FORM_CLASS qu'il faut
  • allows_backoffice_access, ne doit pas être touché mais nécessite l'ajout d'un nouveau panneau de paramétrage où pourront être sélectionnés les rôles ayant accès au backoffice. (la valeur par défaut c'est True, on ne la change pas, on verra plus tard). (je m'occupe de cette partie, #8239)

Ok.

#30

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

Autre chose, pour ne pas perdre les données actuellement stockés dans les champs emails et emails_to_members il faudrait que les dernières exécutions de import-wcs-roles les recopient dans les modèles RoleAttribute, mais pour cela il faudrait qu'ils soient exportés par l'API /api/roles ce qui ne semble pas le cas -> #8254.

#34

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

(comme #8254) Il manque la gestion de description→details.

#35

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

  • Fichier 0001-api-export-Role.emails-and-.emails_to_members-8254.patch ajouté

Voilà voilà.

#36

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

  • Fichier 0001-api-export-Role.emails-and-.emails_to_members-8254.patch supprimé
#37

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

Ajout importation description -> details, tests mis à jour et passant.

#38

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

  • Statut changé de Nouveau à Résolu (à déployer)
  • % réalisé changé de 0 à 100
#39

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

  • Version cible changé de v1.14 à v1.13.5
#40

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

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

Formats disponibles : Atom PDF