Documentation Frappe Framework

Frappe Framework

Masquage des données (Data Masking)

Le masquage des données permet d’afficher un champ tout en masquant sa valeur sensible aux utilisateurs qui n’ont pas la permission Mask. Cette page explique l’activation et le fonctionnement interne.

3 min de lectureMis à jour le Source : docs.frappe.io

À quoi sert le masquage des données

Attention

Cette fonctionnalité n’est disponible que dans la version nightly (v16). Elle est considérée comme expérimentale.

Dans Frappe Framework, les permissions permettent de contrôler la visibilité des champs via les niveaux de permission (Perm Levels).

Cependant, dans de nombreux scénarios métier, il faut afficher certains champs tout en cachant leur contenu sensible. Par exemple :

  • les utilisateurs RH doivent consulter les fiches des employés sans voir les montants de salaire ;
  • le personnel du support peut voir les numéros de téléphone des clients sous une forme masquée comme 811XXXXXXX ;
  • les utilisateurs de la finance peuvent voir les champs de compte bancaire sans que le numéro complet soit exposé.

C’est le rôle du masquage des données (Data Masking).

Avec le masquage des données, vous configurez des champs précis pour qu’ils affichent une valeur masquée ou cachée selon les rôles et permissions de l’utilisateur, sans restreindre la visibilité du champ lui-même. Les informations sensibles restent protégées tandis que l’interface reste cohérente et informative.

Activer le masquage des données

Le masquage peut être activé directement depuis le DocType ou via Customize Form.

Étapes d’activation

  1. Ouvrez le DocType (en mode développeur) ou Customize Form pour le DocType concerné.
  2. Sélectionnez le champ à masquer.
  3. Cochez la case Mask.
  4. Enregistrez et rechargez le formulaire.

Une fois le masquage activé, les utilisateurs qui n’ont pas la permission Mask sur ce champ voient une donnée masquée ou cachée, tandis que ceux qui disposent de la permission voient la valeur réelle. La documentation officielle illustre cette activation par une courte démonstration animée.

Types de champs pris en charge

Le masquage des données ne s’applique qu’aux types de champs suivants :

Types de champs pris en charge
Select
Read Only
Phone
Percent
Password
Link
Int
Float
Dynamic Link
Duration
Datetime
Currency
Data
Date

Pour les développeurs

Le masquage des données s’intègre au système de permissions existant de Frappe. Lorsqu’un utilisateur n’a pas la permission Mask requise sur un champ, le framework remplace automatiquement la valeur réelle par une version masquée, aussi bien dans l’interface que dans les réponses du serveur.

Fonctionnement interne

  1. Configuration du champ : chaque champ peut avoir la propriété mask activée dans son DocField.
python
{
    "fieldname": "phone_number",
    "fieldtype": "Data",
    "options": "Phone",
    "mask": 1
}
  1. Vérification de la permission : le système vérifie si l’utilisateur courant possède la permission mask pour ce champ à l’aide de :
python
meta.has_permlevel_access_to(fieldname=df.fieldname, df=df, permission_type="mask")
  1. Masquage automatique dans les réponses : si la vérification échoue, le framework masque automatiquement la valeur du champ avant de la renvoyer. Cela s’applique :
  • au chargement des données de la vue formulaire ;
  • aux requêtes de la vue liste ;
  • aux rapports qui utilisent l’ORM ou la récupération de données standard ;
  • aux réponses d’API (p. ex. /api/resource/..., /api/method/...).

Attention

Le masquage des données ne s’applique pas automatiquement aux requêtes SQL personnalisées ni aux Query Reports en SQL brut. Dans ces cas, le développeur doit appliquer explicitement la logique de masquage aux résultats de la requête avant de renvoyer la réponse.

Pages liées