Documentation Frappe Framework

Frappe Framework

Utilisateurs et permissions

Frappe intègre un système complet d’authentification : utilisateurs, rôles, permissions par DocType, niveaux de permission, permissions utilisateur, hachage des mots de passe, politique de mots de passe et connexion tierce. Cette page en fait le tour.

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

Un système d’authentification intégré

Frappe est livré avec un système d’authentification des utilisateurs. Il gère les comptes, les permissions basées sur les rôles et les sessions utilisateur par cookie.

Ce système offre de nombreuses fonctionnalités prêtes à l’emploi :

  1. Utilisateur (User)
  2. Rôle (Role)
  3. Permissions par DocType
  4. Niveau de permission (Permission Level)
  5. Gestionnaire de permissions par rôle (Role Permission Manager)
  6. Permissions utilisateur (User Permissions)
  7. Restriction des vues et des formulaires
  8. Hachage des mots de passe
  9. Vérification de la robustesse des mots de passe
  10. Limitation des tentatives de connexion
  11. Authentification tierce : OAuth, Google, Facebook, etc.

Utilisateur et rôle

Un enregistrement utilisateur (User) représente une personne authentifiée qui peut effectuer des actions autorisées dans le système. Un utilisateur peut avoir plusieurs rôles. Un rôle (Role) décrit les actions qu’un utilisateur peut effectuer sur un DocType.

Par exemple, le rôle Blogger a les permissions de lecture, d’écriture et de création sur le DocType Blog Post, mais seulement la lecture sur Blog Category.

Permissions par DocType

Un DocType peut être livré avec un jeu de rôles par défaut, appliqué à l’installation de votre app. Pour configurer les rôles d’un DocType, ajoutez-les dans la table Permissions du DocType.

En dépliant une ligne de cette table, vous découvrez de nombreuses options supplémentaires :

OptionExplication
LevelNiveau de permission (Permission Level) attribué à ce rôle
If the user is ownerLes restrictions ne s’appliquent que si l’utilisateur est celui qui a créé le document
ReadAutorise la lecture du document
WriteAutorise la modification du document
CreateAutorise la création du document
DeleteAutorise la suppression du document
SubmitAutorise la validation (submit) du document
CancelAutorise l’annulation du document
AmendAutorise la modification après annulation (amend) du document
ReportAutorise l’accès à la vue rapport
ExportAutorise l’export des enregistrements en Excel/CSV
ImportAutorise l’import d’enregistrements avec l’outil d’import de données (Data Import Tool)
Set User PermissionsAutorise l’utilisateur à définir des permissions utilisateur pour d’autres utilisateurs
ShareAutorise le partage du document avec d’autres utilisateurs
PrintAutorise l’impression du document ou la génération d’un PDF
EmailAutorise l’envoi d’e-mails pour ce document

Niveau de permission

Les niveaux de permission (Permission Level) servent à regrouper les champs d’un document et à appliquer des rôles distincts à chaque niveau. Par défaut, tous les champs ont un permlevel égal à 0.

Gestionnaire de permissions par rôle

Le gestionnaire de permissions par rôle (Role Permissions Manager) est un outil utilisateur pour gérer les permissions des rôles. Les permissions par défaut y apparaissent et peuvent y être remplacées.

Permissions utilisateur

Les permissions utilisateur (User Permissions) forment un autre jeu de règles, appliqué utilisateur par utilisateur. Elles servent à restreindre l’accès aux documents qui contiennent une valeur précise dans un champ de lien (Link).

Par exemple, pour que l’utilisateur John ne voie que les Blog Post qu’il a créés, c’est-à-dire ceux du Blogger John, vous créez un enregistrement de permission utilisateur correspondant. La documentation officielle en montre une capture d’écran.

Une fois cette permission en place, quand John se connecte et ouvre la liste des Blog Post, il ne voit que les articles qu’il a créés.

Rôles automatiques

Certains rôles sont automatiquement attribués et masqués aux utilisateurs. Cela simplifie l’écriture de DocTypes qui ont besoin de permissions « fourre-tout ». Voici ces rôles automatiques :

  1. Guest : attribué à tout le monde, y compris aux utilisateurs non authentifiés.
  2. All : attribué à tous les utilisateurs enregistrés, y compris les utilisateurs du site web (Website User).
  3. Administrator : attribué uniquement à l’utilisateur Administrator, créé par défaut.
  4. Desk User (nouveau en v15) : attribué à tous les utilisateurs dont le type est « System User », c’est-à-dire les utilisateurs système et non les utilisateurs du site web.

Restreindre les vues et les formulaires

Frappe Framework vous permet de configurer quels modules, DocTypes et vues sont visibles pour un utilisateur. Pour choisir les modules affichés à un utilisateur, allez dans la section Allow Modules du formulaire User.

Pour masquer un DocType à un utilisateur, retirez la permission de lecture d’un rôle dans le gestionnaire de permissions par rôle.

Pour contrôler les permissions des pages et des rapports, utilisez l’outil Role Permission for Page and Report.

Hachage des mots de passe

Frappe gère nativement le hachage des mots de passe. Ils sont chiffrés et enregistrés dans une table de base de données séparée, nommée __Auth.

sql
MariaDB [_baa0f26509a564b6]> select * from __Auth;
+---------+------------------+-----------+-----------------------------------------------
| doctype | name             | fieldname | password
+---------+------------------+-----------+-----------------------------------------------
| User    | Administrator    | password  | $pbkdf2-sha256$29000$Xss5pxSC8F5rDSHEOEdo7Q$in
| User    | test@erpnext.com | password  | $pbkdf2-sha256$29000$y7mXMoZQau09RwiBsLaWsg$h.
+---------+------------------+-----------+-----------------------------------------------

Politique de mots de passe

Frappe peut aussi vérifier la robustesse des mots de passe. Cette option s’active dans System Settings, section Security. Le champ Minimum Password Score détermine le niveau de robustesse exigé.

Tentatives de connexion

Frappe vous permet de définir le nombre de tentatives de connexion consécutives autorisées avant de verrouiller le compte pendant une durée donnée.

Authentification tierce

Frappe prend en charge des fournisseurs de connexion tiers. Pour en configurer un, vous devez créer une Social Login Key. En savoir plus sur la page Social Login Key.

Pages liées