Importation des utilisateurs et des rôles

Bonjour, j’essaie d’importer des utilisateurs selon différents rôles mais les menus que j’entre dans mon csv ne sont pas pris en compte. Quand je les met manuellement, les menus apparaissent dans la barre de navigation mais quand je clique dessus on me dit que l’utilisateur n’est pas autorisé à lire la ressource avec que les permissions sont définies.

Voici mes fichiers d’import (axelor-base>src>main>ressources>data-init) et mon fichier de conf:


image

J’ai ajouté la ligne en bleu pour importer les menus:

J’ai vu qu’il y avait un assistant pour importer les menus selon les groupes configurés:
image

Cependant, une fois mes menus sélectionnés, je clique sur « importer », l’import est réussi mais mes utilisateurs ne peuvent toujours pas voir les menus…

Merci de votre aide

Bonjour,

Petite question: vos menus apparaissent-ils bien dans Administration / Gestion des vues / Menus après votre import ?

Ce qu’il faut déterminer c’est si le problème vient de l’import des menus ou de l’assignation des ces menus aux groupes. Pouvez-vous partager le fichier auth_group.csv que vous utilisez ?

Autre question: de quelle manière importez-vous les menus ? avec un CSV (je ne le vois pas dans le fichier de config) ou via un XML dans [domain] ?

Cdlt

Bonjour, désolé, je n’ai pas été clair, je n’ai pas touché à la config initiales des menus d’axelor. Le problème est dans la configuration des menus dans les rôles
image

Peut être que je fais fausse route et que les menus doivent êtres entrés dans la colonne « menu_set » de auth-group? C’est sûrement ça, mais du coup, à quoi servent les rôles?

En fait vous avez le choix d’associer les menus soit aux groupes soit aux rôles. Il est vrai que cette notion de user/group/role peut paraître confus mais elle permet de la souplesse de gestion en terme de droits.

Comme un utilisateur ne peut avoir q’une seul groupe et qu’un groupe peut avoir plusieurs rôles l’idéal est de creer vos propres roles et d’y associer vos menus . Ainsi, vous définissez les menus via les rôles et vous associer les rôles à vos groupes. N’oubliez pas les permissions par la même occasion :slight_smile:

Premez en exemple axelor-base/data-init/meta_metaMenu.csv et l’entrée dans input-config

C’est donc dans ce fichier magique qu’il faut mettre les rôles autorisés à voir chaque menu :open_mouth:!!
Parce que j’ai essayé même manuellement de mettre les menus autorisés sur un utilisateur et ça ne fonctionnait pas non plus. Je vais essayer du coup de mettre mes rôles directement dan meta_metaMenu.csv merci beaucoup

je vous conseille, pour une question de visibilité et d’update, d’utiliser vos propres fichiers pour gérer vos besoins afin d’éviter tout conflit lors des mises à jour. Il vous suffit pour cela de créer un nouveau fichier et de cloner la ligne de config…ça vous évitera bien des problèmes :slight_smile:

N’oubliez pas non plus d’associer les rôles à vos groupes / utilisateurs :slight_smile:

J’ai du ajouter ça à input-config pour qu’il puisse prendre en compte plusieurs roles:

avec un fichier meta_metaMenu.csv de cette forme:
image

Quand je vais dans administration>Les Menus sur Axelor, avant j’avais « admin » et maintenant je n’ai plus aucun rôle. J’ai du me planter dans ma ligne sur le fichier de config…

Mes rôles sont bien présents dans mes groupes et dans mes utilisateurs.

J’utilise le plugin Git sur Eclipse pour gérer ma version et je prévois de rebase sur les mises à jour d’Axelor, est-ce que je fais fausse route? Je suis très novice dans le domaine

  • vous avez 2 fois le même nom fichier (meta_metaMenu.csv)…votre fichier doit avoir un nom différent (ex: mon_metamenu.csv)…comme les imports sont des Map, le premier fichier avec les rôles admin est écrasé par le second. Renommer votre fichier et changez son nom dans la config

  • je vous conseille d’utiliser cette syntaxe: “roles != null ? roles.split('\\|') as List : []” ce qui vous permet de ne pas spécifier la colonne “roles” (au cas ou vous en auriez besoin)

C’est déjà le cas dans le fichier de config d’origine, la premiere ligne vient mettre à jour le module axelor-base et la deuxième le module axelor-core

Où et comment je dois intégrer cette syntaxe du coup pour éviter de devoir préciser les colonnes?

<input file="meta_metaMenu.csv" separator=";" type="com.axelor.meta.db.MetaMenu" search="self.name = :name and self.module = 'axelor-base'" update="true" >
<bind column="roles.name" to="roles" search="self.name in :roles" eval="roles.split('\\|') as List"/>
</input>

Merci beaucoup

Vous avez raison, je n’avais même pas relevé ce détail.
Je pense que l’erreur est ici:

remplacer ça
<bind column="roles" to="roles.name" search="self.name in :roles" eval="roles != null ? roles.split('\\|') as List : []"/>

par ça
<bind column="roles" to="roles" search="self.name in :roles" eval="roles != null ? roles.split('\\|') as List : []"/>

pour moi ça fonctionne très bien

Merci beaucoup je teste ça après manger!