forked from Wavyzz/dolibarr
Fix: can't read permissions with an external module in root directory
instead "custom" directory
This commit is contained in:
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
require("../main.inc.php");
|
require("../main.inc.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
|
||||||
|
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
$langs->load("users");
|
$langs->load("users");
|
||||||
@@ -79,37 +80,13 @@ $db->begin();
|
|||||||
|
|
||||||
// Charge les modules soumis a permissions
|
// Charge les modules soumis a permissions
|
||||||
$modules = array();
|
$modules = array();
|
||||||
$modulesdir = array();
|
$modulesdir = dolGetModulesDirs();
|
||||||
|
|
||||||
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
|
||||||
{
|
|
||||||
$modulesdir[] = $dirroot . "/core/modules/";
|
|
||||||
|
|
||||||
if ($type == 'alt')
|
|
||||||
{
|
|
||||||
$handle=@opendir($dirroot);
|
|
||||||
if (is_resource($handle))
|
|
||||||
{
|
|
||||||
while (($file = readdir($handle))!==false)
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot . '/' . $file . '/core/modules/'))
|
|
||||||
{
|
|
||||||
$modulesdir[] = $dirroot . '/' . $file . '/core/modules/';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir($handle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($modulesdir as $dir)
|
foreach ($modulesdir as $dir)
|
||||||
{
|
{
|
||||||
// Load modules attributes in arrays (name, numero, orders) from dir directory
|
// Load modules attributes in arrays (name, numero, orders) from dir directory
|
||||||
//print $dir."\n<br>";
|
//print $dir."\n<br>";
|
||||||
$handle=@opendir($dir);
|
$handle=@opendir(dol_osencode($dir));
|
||||||
if (is_resource($handle))
|
if (is_resource($handle))
|
||||||
{
|
{
|
||||||
while (($file = readdir($handle))!==false)
|
while (($file = readdir($handle))!==false)
|
||||||
|
|||||||
@@ -25,6 +25,44 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return list of modules directories
|
||||||
|
*
|
||||||
|
* @param string $subdir Sub directory (Example: '/mailings')
|
||||||
|
* @return array Array of directories that can contains module descriptors
|
||||||
|
*/
|
||||||
|
function dolGetModulesDirs($subdir='')
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$modulesdir=array();
|
||||||
|
|
||||||
|
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
||||||
|
{
|
||||||
|
// Default core/modules dir
|
||||||
|
$modulesdir[$dirroot . '/core/modules'.$subdir.'/'] = $dirroot . '/core/modules'.$subdir.'/';
|
||||||
|
|
||||||
|
// Scan dir from external modules
|
||||||
|
$handle=@opendir($dirroot);
|
||||||
|
if (is_resource($handle))
|
||||||
|
{
|
||||||
|
while (($file = readdir($handle))!==false)
|
||||||
|
{
|
||||||
|
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
|
||||||
|
{
|
||||||
|
if (is_dir($dirroot . '/' . $file . '/core/modules'.$subdir.'/'))
|
||||||
|
{
|
||||||
|
$modulesdir[$dirroot . '/' . $file . '/core/modules'.$subdir.'/'] = $dirroot . '/' . $file . '/core/modules'.$subdir.'/';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $modulesdir;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to guess default paper format according to language into $langs
|
* Try to guess default paper format according to language into $langs
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
require("../../main.inc.php");
|
require("../../main.inc.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php');
|
require_once(DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php');
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/usergroups.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/usergroups.lib.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
|
||||||
|
|
||||||
$langs->load("users");
|
$langs->load("users");
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
@@ -91,42 +92,17 @@ if ($id)
|
|||||||
$title = $langs->trans("Group");
|
$title = $langs->trans("Group");
|
||||||
dol_fiche_head($head, 'rights', $title, 0, 'group');
|
dol_fiche_head($head, 'rights', $title, 0, 'group');
|
||||||
|
|
||||||
|
|
||||||
$db->begin();
|
|
||||||
|
|
||||||
// Charge les modules soumis a permissions
|
// Charge les modules soumis a permissions
|
||||||
$modules = array();
|
$modules = array();
|
||||||
$modulesdir = array();
|
$modulesdir = dolGetModulesDirs();
|
||||||
|
|
||||||
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
$db->begin();
|
||||||
{
|
|
||||||
$modulesdir[] = $dirroot . "/core/modules/";
|
|
||||||
|
|
||||||
if ($type == 'alt')
|
|
||||||
{
|
|
||||||
$handle=@opendir($dirroot);
|
|
||||||
if (is_resource($handle))
|
|
||||||
{
|
|
||||||
while (($file = readdir($handle))!==false)
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot . '/' . $file . '/core/modules/'))
|
|
||||||
{
|
|
||||||
$modulesdir[] = $dirroot . '/' . $file . '/core/modules/';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir($handle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($modulesdir as $dir)
|
foreach ($modulesdir as $dir)
|
||||||
{
|
{
|
||||||
// Load modules attributes in arrays (name, numero, orders) from dir directory
|
// Load modules attributes in arrays (name, numero, orders) from dir directory
|
||||||
//print $dir."\n<br>";
|
//print $dir."\n<br>";
|
||||||
$handle=@opendir($dir);
|
$handle=@opendir(dol_osencode($dir));
|
||||||
if (is_resource($handle))
|
if (is_resource($handle))
|
||||||
{
|
{
|
||||||
while (($file = readdir($handle))!==false)
|
while (($file = readdir($handle))!==false)
|
||||||
@@ -134,7 +110,7 @@ if ($id)
|
|||||||
if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, dol_strlen($file) - 10) == '.class.php')
|
if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, dol_strlen($file) - 10) == '.class.php')
|
||||||
{
|
{
|
||||||
$modName = substr($file, 0, dol_strlen($file) - 10);
|
$modName = substr($file, 0, dol_strlen($file) - 10);
|
||||||
|
|
||||||
if ($modName)
|
if ($modName)
|
||||||
{
|
{
|
||||||
include_once($dir."/".$file);
|
include_once($dir."/".$file);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
require("../main.inc.php");
|
require("../main.inc.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/usergroups.lib.php");
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/usergroups.lib.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
|
||||||
|
|
||||||
$langs->load("users");
|
$langs->load("users");
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
@@ -122,35 +123,11 @@ $db->begin();
|
|||||||
|
|
||||||
// Search all modules with permission and reload permissions def.
|
// Search all modules with permission and reload permissions def.
|
||||||
$modules = array();
|
$modules = array();
|
||||||
$modulesdir = array();
|
$modulesdir = dolGetModulesDirs();
|
||||||
|
|
||||||
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
|
||||||
{
|
|
||||||
$modulesdir[] = $dirroot . "/core/modules/";
|
|
||||||
|
|
||||||
if ($type == 'alt')
|
|
||||||
{
|
|
||||||
$handle=@opendir($dirroot);
|
|
||||||
if (is_resource($handle))
|
|
||||||
{
|
|
||||||
while (($file = readdir($handle))!==false)
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot . '/' . $file . '/core/modules/'))
|
|
||||||
{
|
|
||||||
$modulesdir[] = $dirroot . '/' . $file . '/core/modules/';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir($handle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($modulesdir as $dir)
|
foreach($modulesdir as $dir)
|
||||||
{
|
{
|
||||||
$handle=@opendir($dir);
|
$handle=@opendir(dol_osencode($dir));
|
||||||
if (is_resource($handle))
|
if (is_resource($handle))
|
||||||
{
|
{
|
||||||
while (($file = readdir($handle))!==false)
|
while (($file = readdir($handle))!==false)
|
||||||
|
|||||||
Reference in New Issue
Block a user