[résolu] Module avec une page public

Bonjour,

Je voudrais savoir s’il est possible de développer un module permettant de mettre à disposition une page « public » visible sans être connecté.

Je voudrais pouvoir proposer aux clients de remplir des fiches d’interventions en leur fournissant juste un lien.

J’ai vu que les pages publics étaient dans htdocs/public
Mon module lui est dans htdocs/custom
Et dans la gestion des menu du template de module je ne vois que les choix : 0=Menu for internal users, 1=external users, 2=both

Si quelqu’un pouvait m’orienter sur la bonne facon de faire ou m’expliquer à quel endroit est checké la session des utilisateurs que je puisse la désactiver sur mon module

Merci !

1 « J'aime »

Je me réponds à moi même.

Pour qu’une page ne necessite pas d’être loggué, il faut mettre cette declaration avant de faire l’include du main.php :

if (!defined(« NOLOGIN »)) define(« NOLOGIN », ‹ 1 ›);

Il existe d’autres paramètres du même type (trouvés sur la page public des tickets) :

if (!defined(‹ NOCSRFCHECK ›)) define(‹ NOCSRFCHECK ›, ‹ 1 ›);

// désactive le CSRF (Cross-site request forgery), mais pas sûr que ce soit une bonne idée

if (!defined(‹ NOREQUIREMENU ›)) define(‹ NOREQUIREMENU ›, ‹ 1 ›);

//N’affiche pas le menu du backoffice

if (!defined(« NOLOGIN »)) define(« NOLOGIN », ‹ 1 ›);

// Pas besoin d’être loggué

if (!defined(‹ NOIPCHECK ›)) define(‹ NOIPCHECK ›, ‹ 1 ›);

// Enlève la restriction par IP qui pourrait être définie dans : conf $dolibarr_main_restrict_ip

1 « J'aime »

Salut @sdupuy ,

Déjà merci pour la solution partager, mais est ce qu’il y’a un moyen de faire fonctionner cela sans toute fois désactiver le csrf ? parce-que sans lui les risque d’injection SQL sont grande très grande même.

Hello,

Pourquoi désactiver le CSRF ? Il ne devrait pas y en avoir besoin ici.

Bonjour,

Peut-être que mon post « solution » n’est pas assez clair.
Pour avoir une page public il suffit de mettre:
if (!defined(« NOLOGIN »)) define(« NOLOGIN », ‹ 1 ›);
Et ensuite je listais juste d’autres paramètres que j’avais découvert par la même occasion sur la page public de gestion des tickets. Comme je dis pour le CSRF : « désactive le CSRF (Cross-site request forgery), mais pas sûr que ce soit une bonne idée ».
Par contre le if (!defined(‹ NOREQUIREMENU ›)) define(‹ NOREQUIREMENU ›, ‹ 1 ›); peut être utile.

1 « J'aime »