Project

General

Profile

Development #8219

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

Added by Benjamin Dauvergne over 7 years ago. Updated over 7 years ago.

Status:
Fermé
Priority:
Normal
Target version:
Start date:
09 September 2015
Due date:
% Done:

100%

Estimated time:
Patch proposed:
Yes
Planning:

Files

0001-new-notify-command-to-handle-role-provisionning-depr.patch (4.83 KB) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 09 September 2015 09:41 AM
0001-new-notify-command-to-handle-role-provisionning-depr.patch (4.91 KB) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 09 September 2015 10:51 AM
0001-new-notify-command-to-handle-role-provisionning-depr.patch (8.34 KB) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 09 September 2015 01:42 PM
0001-new-notify-command-to-handle-role-provisionning-depr.patch (8.39 KB) 0001-new-notify-command-to-handle-role-provisionning-depr.patch Benjamin Dauvergne, 10 September 2015 10:04 AM
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (9.11 KB) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 10 September 2015 11:02 AM
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (9.64 KB) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 12 September 2015 12:58 AM
0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch (9.01 KB) 0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch Benjamin Dauvergne, 12 September 2015 01:31 AM
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (9.64 KB) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 15 September 2015 10:08 AM
0001-new-hobo_notify-command-to-handle-role-provisionning.patch (11.7 KB) 0001-new-hobo_notify-command-to-handle-role-provisionning.patch Benjamin Dauvergne, 15 September 2015 10:35 AM

Related issues

Related to 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 September 2015

Actions
Related to Publik - Project management #8006: Supprimer la création de rôles dans w.c.s.Fermé03 August 201505 January 2016

Actions

Associated revisions

Revision e894d0ce (diff)
Added by Benjamin Dauvergne over 7 years ago

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.

History

#1

Updated by Benjamin Dauvergne over 7 years ago

  • Related to 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 added
#2

Updated by Benjamin Dauvergne over 7 years ago

#4

Updated by Thomas Noël over 7 years ago

  • Target version changed from v1.13.4 to v1.13.5

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

#5

Updated by Serghei Mihai over 7 years ago

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

Updated by Frédéric Péters over 7 years ago

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

#8

Updated by Frédéric Péters over 7 years ago

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

Updated by Frédéric Péters over 7 years ago

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

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Frédéric Péters over 7 years ago

(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

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Frédéric Péters over 7 years ago

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

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Benjamin Dauvergne over 7 years ago

  • File 0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch added
#17

Updated by Frédéric Péters over 7 years ago

#8217 ce patch.

#18

Updated by Benjamin Dauvergne over 7 years ago

  • File deleted (0001-add-new-agent-task-to-provision-objects-to-tenants-f.patch)
#20

Updated by Frédéric Péters over 7 years ago

Il reste une mention du nom :

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

Updated by Thomas Noël over 7 years ago

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

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Thomas Noël over 7 years ago

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

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Thomas Noël over 7 years ago

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

#26

Updated by Frédéric Péters over 7 years ago

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

Updated by Thomas Noël over 7 years ago

  • Target version deleted (v1.13.5)
#28

Updated by Thomas Noël over 7 years ago

  • Target version set to v1.14
#29

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Benjamin Dauvergne over 7 years ago

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

Updated by Frédéric Péters over 7 years ago

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

#35

Updated by Benjamin Dauvergne over 7 years ago

  • File 0001-api-export-Role.emails-and-.emails_to_members-8254.patch added

Voilà voilà.

#36

Updated by Benjamin Dauvergne over 7 years ago

  • File deleted (0001-api-export-Role.emails-and-.emails_to_members-8254.patch)
#38

Updated by Benjamin Dauvergne over 7 years ago

  • Status changed from Nouveau to Résolu (à déployer)
  • % Done changed from 0 to 100
#39

Updated by Thomas Noël over 7 years ago

  • Target version changed from v1.14 to v1.13.5
#40

Updated by Thomas Noël over 7 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF