diff --git a/htdocs/api/index.php b/htdocs/api/index.php index a0e8d337f5d..7bb062c03df 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -128,7 +128,7 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' | foreach ($modulesdir as $dir) { // Search available module - dol_syslog("Scan directory ".$dir." for module descriptor to after search for API files"); + dol_syslog("Scan directory ".$dir." for module descriptor files, then search for API files"); $handle=@opendir(dol_osencode($dir)); if (is_resource($handle)) @@ -140,13 +140,13 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' | $module = strtolower($regmod[1]); $moduledirforclass = getModuleDirForApiClass($module); $modulenameforenabled = $module; - if ($module == 'propale') { $moduleforenabled='propal'; } + if ($module == 'propale') { $modulenameforenabled='propal'; } - //dol_syslog("Found module file ".$file." - module=".$module." - moduledirforclass=".$moduledirforclass); + dol_syslog("Found module file ".$file." - module=".$module." - moduledirforclass=".$moduledirforclass); // Defined if module is enabled $enabled=true; - if (empty($conf->$moduleforenabled->enabled)) $enabled=false; + if (empty($conf->$modulenameforenabled->enabled)) $enabled=false; if ($enabled) { @@ -235,7 +235,13 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json' if ($module == 'order') { $classname='Commande'; } //var_dump($classfile);var_dump($classname);exit; - require_once $dir_part_file; + $res = include_once $dir_part_file; + if (! $res) + { + print 'API not found (failed to include API file)'; + header('HTTP/1.1 501 API not found (failed to include API file)'); + exit(0); + } if (class_exists($classname.'Api')) $api->r->addAPIClass($classname.'Api', '/'); } else @@ -246,7 +252,14 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json' $dir_part_file = dol_buildpath('/'.$moduledirforclass.'/class/api_'.$classfile.'.class.php'); $classname=ucwords($module); - require_once $dir_part_file; + $res = include_once $dir_part_file; + if (! $res) + { + print 'API not found (failed to include API file)'; + header('HTTP/1.1 501 API not found (failed to include API file)'); + exit(0); + } + if (class_exists($classname)) $api->r->addAPIClass($classname); } }