Project

General

Profile

Development #53726

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

Added by Frédéric Péters 13 days ago. Updated 13 days ago.

Status:
Solution proposée
Priority:
Normal
Target version:
-
Start date:
04 May 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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()):

Files

History

#1

Updated by Frédéric Péters 13 days ago

Also available in: Atom PDF