Droits utilisateurs

bonjour , j’aurais une petite question quelqu’un pourrai m’expliquer , la démarche pour rajouter des droits utilisateurs …svp je comprend pas trop avec le wiki merci

Quelle page du wiki, stp ?
(quel lien ?)

Le wiki sur le paramétrage des utilisateurs ?
Celui sur le paramétrage sécurité ?

Dans tous les cas, quel(s) passage(s) n’est ou ne sont pas clair(s) ?

Bonjour merci de votre réponse , mais enfaite c’est plus pour définir les droits d’utilisateur quand on à créé un module voilà l’exemple

$this-\>rights[$r][0] = 10001; $this-\>rights[$r][1] = 'Libelle par défaut de ma permission'; $this-\>rights[$r][3] = 1; $this-\>rights[$r][4] = 'action'; $this-\>rights[$r][5] = 'sousaction'; $r++;

alors ou je comprend pas c’est à quoi corresponde ‹ action › et ‹ sousaction › …

if ($user->rights->monmodule->action->sousaction) et voilà le test à mettre dans les script la pas de souci … merci

bonjour , voilà j’ai essayé de voir alors je créer sa dans le descripteur

[code type=php]$this->rights = array();
$this->rights_class = ‹ contratmaintenance ›;

	$this-\>rights[$r][0] = 4001;
	$this-\>rights[$r][1] = 'Lire les contrats';
	$this-\>rights[$r][3] = 1;
	$this-\>rights[$r][4] = 'lire';
	$r++;[/code]

mais il n’y a rien qui apparait dans dolibarr permission utilisateur ? je dois avoir raté quelque chose si vous pouviez me dire ou svp . merci

Tu as bien initialisé $r à 0 ?
Normalement les droits fonctionnent avec plusieurs niveaux (tu as les droits qui concerne ton compte et ceux qui concernent tous les comptes) et ca se met sous la forme $user->rights->contratmaintenance->myactions->lire

$this->rights = array();
$r = 0;

$this->rights_class = 'contratmaintenance';
 
$this->rights[$r][0] = 4001;
$this->rights[$r][1] = 'Lire les contrats';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'lire';
$this->rights[$r][5] = 'myactions';

$r++;

Et il faut bien sur désactiver/réactiver le module que ce soit pris en compte.

$this->rights[$r][0] = 4001;

ce numéro doit être à la suite du numéro de module que tu as déclaré et ne doit pas être en conflit avec les numéro de module et numéro de droit existant.
je te conseilles d’utiliser un numéro élevé

exemple:
numéro de module : 130600
les droits : 130601, 130602, etc…

ensuite tu définis comme ceci

$this->rights[$r][1] = ‹ Lire les contrats ›;
$this->rights[$r][3] = 1;
$this->rights[$r][4] = ‹ read ›; // l’anglais est préféré

ceci donnera un droit :

$user->rights->mymodule->read

si tu veux donner des sous droits, quand par exemple ton module est découpé en diverses fonctionnalités

$this->rights[$r][1] = ‹ Sous droit ›;
$this->rights[$r][3] = 1;
$this->rights[$r][4] = ‹ mysection ›
$this->rights[$r][5] = ‹ read ›;

ceci donnera :

$user->rights->mymodule->mysection->read

1 « J'aime »

merci , pour l’info la déclaration marche , mais ou retrouver c’est infos dans dolibarr …car dans la parti permission utilisateur mon contratmaintenance n’apparaît pas ? il faut pourtant bien définir si l’utilisateur peur ou non exécuter l’action avec de la testé non

Je viens de comprendre , voici l’endroit ou le wiki nous dis de mettre le descripteur

htdocs/monmodule/core/modules/ doit contenir le fichier descripteur de module : modMonModule.class.php

et quand on créer donc ceci dans le descypteur :[code type=php]// Permissions
$this->rights = array();
$this->rights_class = ‹ contratmaintenance ›; // Key text used to identify module (for permissions, menus, etc…)
$r=0;

	$this-\>rights[$r][0] =130601;
	$this-\>rights[$r][1] = 'Lire les contrats';
	$this-\>rights[$r][3] = 1;
	$this-\>rights[$r][4] = 'read'; // l'anglais est préféré
	$r++;[/code]

tout sa fonctionne correctement sauf que dans le fichier « perms.php » qui ce trouve dans le dossier « htdocs/user/ »
ne cherche pas du tout les descripteurs de module dans le type de dossier donné ci-dessus …mais ici $modulesdir[] = $dirroot . "/core/modules/"; alors du coup il y a peux de chance que sa la permission apparaît dans l’affichage des permissions utilisateur , comment faire pour régler ce problème ? à part bien sur modifier le liens dans « perms.php »

il doit y avoir un autre soucis car on va bien chercher à la fois dans /core/modules de dolibarr et dans /mymodule/core/modules

tu as bien désactivé/réactivé le module pour que les droits soit pris en compte ?

J’ai le même soucis

je doit ajouter dans perms.php

$modulesdir[] = $dirroot . "/core/modules/";
$modulesdir[] = $dirroot . "/monmodule/core/modules/"; //ligne ajoutée

pour qu’il me donne accès à la gestion des droits
une solution plus élégante existe ? (sans devoir modifier perms.php)