Bonjour,
Je suis en train de travailler sur le module de gestion des livres et
droits d'auteur associés et j'avais un problème pour accéder aux
fichiers générés par le module.
J'ai ainsi découvert que le fichier "htdocs/document.php" avait beaucoup
de données en dur et devait être modifié pour chaque ajout de module
utilisant ce fichier pour que le module soit pris en charge.
Comme il semble que les développements actuels soient plutôt axés vers
une meilleure modularité de Dolibarr et aussi, surtout, parce que c'est
plus pérenne, j'ai décider de ne pas continuer dans la lignée de ce qui
existe déjà et plutôt essayer de faire en sorte que document.php prenne
en compte tous les modules, par défaut.
Je propose ainsi de remplacer les lignes 108 à 445 par les lignes
suivantes :
+-CODE------------------------------------------------------------------------------------------------------------------------+
//General wrapping
if(isset($modulepart))
{
$subPermConstName =
strtoupper($modulepart).'_SUBPERM_FOR_DOCUMENTS';
$subPerm = $conf->global->$subPermConstName;
if(($user->rights->$modulepart->lire) ||
($user->rights->$modulepart->download) ||
($user->rights->$modulepart->$subPerm->lire) ||
($user->rights->$modulepart->$subPerm->download))
{
$accessallowed=1;
}
$original_file=
$conf->$modulepart->dir_output.'/'.$dir.'/'.$original_file;
$sqlProtectConstName =
strtoupper($modulepart).'_SQLPROTECTAGAINSTEXTERNALS_FOR_DOCUMENTS';
$sqlprotectagainstexternals =
$conf->global->$sqlProtectConstName;
}
+---------------------------------------------------------------------------------------------------------------------------------+
A noter que pour qu'il fonctionne, il faudra modifier le code de
certains modules actuels pour les rendre plus "normalisés".
De plus, il faudra proposer 2 nouvelles constantes de modules
(optionnelles) à ajouter dans le fichier modMyModule.class.php, dont
voici un exemple :
+-CODE------------------------------------------------------------------------------------------------------------------------+
$this->const =
array(0=>array('BOOK_SUBPERM_FOR_DOCUMENTS','chaine','book','This is the
name of the sub-permissions to use to get the documents for this
module',0),
1=>array('BOOK_SQLPROTECTAGAINSTEXTERNALS_FOR_DOCUMENTS','chaine','SELECT rowid
as fk_soc FROM ".MAIN_DB_PREFIX."societe WHERE rowid=\'$refname\'','This is the
SQL command to execute for the basic protection against external users',0));
+---------------------------------------------------------------------------------------------------------------------------------+
Est-ce que je fait fausse route ?
Est-ce que vous avez des modifications/amélioration à proposer ?
Merci.
Bien cordialement,
--
Pierre Morin
[email protected]
_______________________________________________
Dolibarr-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev