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.
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 :
- Utilisateur (User)
- Rôle (Role)
- Permissions par DocType
- Niveau de permission (Permission Level)
- Gestionnaire de permissions par rôle (Role Permission Manager)
- Permissions utilisateur (User Permissions)
- Restriction des vues et des formulaires
- Hachage des mots de passe
- Vérification de la robustesse des mots de passe
- Limitation des tentatives de connexion
- 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 :
| Option | Explication |
|---|---|
| Level | Niveau de permission (Permission Level) attribué à ce rôle |
| If the user is owner | Les restrictions ne s’appliquent que si l’utilisateur est celui qui a créé le document |
| Read | Autorise la lecture du document |
| Write | Autorise la modification du document |
| Create | Autorise la création du document |
| Delete | Autorise la suppression du document |
| Submit | Autorise la validation (submit) du document |
| Cancel | Autorise l’annulation du document |
| Amend | Autorise la modification après annulation (amend) du document |
| Report | Autorise l’accès à la vue rapport |
| Export | Autorise l’export des enregistrements en Excel/CSV |
| Import | Autorise l’import d’enregistrements avec l’outil d’import de données (Data Import Tool) |
| Set User Permissions | Autorise l’utilisateur à définir des permissions utilisateur pour d’autres utilisateurs |
| Share | Autorise le partage du document avec d’autres utilisateurs |
| Autorise l’impression du document ou la génération d’un PDF | |
| Autorise 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 :
- Guest : attribué à tout le monde, y compris aux utilisateurs non authentifiés.
- All : attribué à tous les utilisateurs enregistrés, y compris les utilisateurs du site web (Website User).
- Administrator : attribué uniquement à l’utilisateur
Administrator, créé par défaut. - 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.
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.
