Dokos permet désormais de lire les permissions documentaires et les permissions au niveau des champs directement depuis le client, sans dépendre d'un boot initial. Cette fonctionnalité est particulièrement utile pour les applications construites sur @framework/ui qui n'ont pas accès à l'environnement desk traditionnel.
Trois composables principaux sont impliqués dans cette gestion :
useUserRoles : Récupère les rôles de l'utilisateur connecté et partage cette ressource entre différents composants.useDoctypeMeta : Transporte désormais les lignes DocPerm de la métadonnée, qui déterminent les accès aux différents niveaux de permission.useDocPermissions : Croise les informations des deux précédents composables pour déterminer :
docinfo.permissions calculé par le serveur)DocPerm)La fonction mapField est également exportée pour permettre la construction de nœuds individuels en dehors du contexte FormLayout.
fieldAccess retourne un droit d'écriture par défaut.Pour activer cette fonctionnalité, un endpoint a été ajouté au niveau du modèle User :
@frappe.whitelist()
def get_current_user_roles() -> list[str]:
"""Retourne les rôles de l'utilisateur en session, pour les clients sans desk."""
return frappe.get_roles()
Dans un formulaire personnalisé où vous souhaitez afficher dynamiquement certains champs en fonction des permissions :
import { useDocPermissions } from '@framework/ui';
// Dans votre composant
const { fieldAccess } = useDocPermissions(doctype);
// Vérifier l'accès à un champ spécifique
const canEditField = fieldAccess('nom_du_champ').write;
Cette fonctionnalité n'affecte pas les permissions existantes configurées dans le système. Elle permet simplement :
Dokos vous permet de gérer finement vos utilisateurs et leurs permissions :
L'intérêt principal des groupes est de permettre des assignations collectives. Par exemple, si vous avez plusieurs comptables, vous pouvez :
Cette fonctionnalité permet d'accorder des autorisations spécifiques à certaines catégories d'utilisateurs.
Dokos offre deux journaux complémentaires :
Un rôle est un ensemble d'autorisations groupées qui définit ce qu'un utilisateur peut faire dans le système.

Par défaut, un nouvel utilisateur reçoit le rôle de "client", lui donnant uniquement accès au portail. Vous pouvez ensuite lui attribuer des rôles supplémentaires.
Pour chaque rôle, vous définissez :
Par exemple, un utilisateur avec le rôle "acheteur" pourra créer des contacts, gérer des adresses et des commandes fournisseurs, mais aura uniquement un droit de lecture sur les exercices fiscaux.
Chaque champ sur vos formulaires est associé à un niveau d'autorisation (de 0 à 9 par défaut), permettant une gestion plus fine des accès :
Exemple pratique : Dans une demande de congés, certains éléments peuvent être réservés au manager (niveau 1). De même, un employé qui saisit ses notes de frais ne verra pas la partie comptable, accessible uniquement aux comptables disposant d'une autorisation de niveau supérieur.
Vous avez la flexibilité de :
Bonne pratique : Pour des modifications importantes, il est recommandé de désactiver les rôles standard et de créer vos propres rôles personnalisés. Cela évite que vos personnalisations ne soient écrasées lors des mises à jour.

Les profils de rôle vous permettent de combiner plusieurs rôles pour créer des ensembles cohérents d'autorisations. Par exemple, dans l'équipe RH, vous pourriez avoir :
Un utilisateur peut se voir attribuer plusieurs profils selon ses responsabilités.
Les profils de module vous permettent de contrôler quels modules sont visibles pour chaque utilisateur :
Important : Les profils de module contrôlent uniquement la visibilité des espaces de travail dans la barre latérale, mais n'affectent pas les autorisations. Un utilisateur peut toujours accéder à des documents via la recherche s'il dispose des autorisations nécessaires.
Cette fonctionnalité puissante vous permet de limiter l'accès des utilisateurs à certaines données.
Imaginons que votre entreprise gère deux sociétés : Dokos et Mappemonde. Si Raphaëlle est salariée de Dokos, vous pouvez restreindre son accès pour qu'elle ne voie que les documents liés à Dokos.
Les restrictions s'appliquent automatiquement à tous les documents contenant le champ spécifié (par exemple "société"). Vous pouvez également :
Attention : Pour les employés, des restrictions sont créées automatiquement lors de l'association d'un utilisateur à un profil employé. Vérifiez toujours ce paramètre.
Dokos propose désormais une interface modernisée pour gérer les rôles et leurs autorisations. Cette nouvelle version centralise toutes les informations relatives à un rôle dans une seule fiche organisée en onglets :
Le rapport Autorisations utilisateur par type de document (accessible via Paramètres > Utilisateurs et droits) vous offre une vue d'ensemble des droits accordés à chaque utilisateur pour chaque type de document.
Le rapport présente les types d'autorisations standard (lecture, écriture, création, suppression, validation, annulation, etc.) ainsi que tous les types de permissions personnalisés que vous avez définis dans votre installation.
Cela signifie que si votre organisation a créé des permissions métier sur mesure — par exemple "Approbation RH", "Validation comptable" ou tout autre droit spécifique à votre activité — ils apparaissent désormais dans ce rapport au même titre que les permissions standard.
Exemple : Pour vérifier que Raphaëlle (de la société Dokos) dispose bien du droit de validation sur les commandes fournisseurs, filtrez le rapport sur son nom d'utilisateur et repérez la colonne correspondante.
Si votre administrateur a défini des types de permissions supplémentaires via les Gestionnaires de rôles ou par personnalisation du framework, ces permissions s'affichent automatiquement dans le rapport sans configuration supplémentaire. Vous n'avez pas besoin de les ajouter manuellement : le rapport les détecte et les intègre à la grille d'analyse.