Projet

Général

Profil

Development #53726

remplacer get_role_translation par une méthode qui permette plusieurs rôles

Ajouté par Frédéric Péters il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
04 mai 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On a sur un formdata une méthode get_role_translation qui permet de convertir une fonction en rôle, en regardant sur le formdata puis sur le formdef, et aussi si jamais le paramètre c'était déjà un rôle de le retourner aussi; ça sert à la base dans les workflows, on a genre un saut autorisé pour "xxx" qui est fonction ou rôle et on doit regarder si l'usager peut faire ce saut.

Ça s'appelle get_role_translation et le nom peut amener à confusion façon gettext et cie mais la motivation à y toucher est surtout que c'est particulièrement par cette méthode que s'impose la règle "1 fonction = 1 rôle".

Pour faire évoluer ça, pour par exemple permettre un jour l'attribution d'une fonction à plusieurs rôles, il faut donc passer par là.

Patch qui fait

-    def get_role_translation(self, role_name):
+    def get_function_roles(self, role_name):
+        # receive a function name or role identifier and return a set of role identifiers

Et qui adapte tous les appelants, pour souvent applique cette forme :

-                if self.formdata.get_role_translation(role) in user.get_roles():
+                if self.formdata.get_function_roles(role).intersection(user.get_roles()):

Fichiers

Révisions associées

Révision 2b6df5d5 (diff)
Ajouté par Frédéric Péters il y a presque 3 ans

misc: replace get_role_translation() with a get_function_roles() method (#53726)

It removes the unobvious "_translation()" that has nothing to do with
languages and returns a set() instead of a single role identifier; this
may allow multiple roles filling a single function, at a later stage.

Historique

#1

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

#2

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée
#3

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 2b6df5d5f86d8560b6b3eed9d32119e83233b761
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sun Apr 25 14:36:33 2021 +0200

    misc: replace get_role_translation() with a get_function_roles() method (#53726)

    It removes the unobvious "_translation()" that has nothing to do with
    languages and returns a set() instead of a single role identifier; this
    may allow multiple roles filling a single function, at a later stage.
#4

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

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF