diff --git a/htdocs/api/admin/explorer.php b/htdocs/api/admin/explorer.php deleted file mode 100644 index 53ff102e89bc18756ac2570cf1eb74df907bf429..0000000000000000000000000000000000000000 --- a/htdocs/api/admin/explorer.php +++ /dev/null @@ -1,197 +0,0 @@ -<?php -/* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr> - * Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/** - * \defgroup api Module DolibarrApi - * \brief API loader - * Search files htdocs/<module>/class/api_<module>.class.php - * \file htdocs/api/admin/explorer.php - */ - -require_once '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/api/class/api.class.php'; -require_once DOL_DOCUMENT_ROOT.'/api/class/api_access.class.php'; - - -/* - * View - */ - -// Enable and test if module Api is enabled -if (empty($conf->global->MAIN_MODULE_API)) -{ - $langs->load("admin"); - dol_syslog("Call Dolibarr API interfaces with module REST disabled"); - print $langs->trans("WarningModuleNotActive",'Api').'.<br><br>'; - print $langs->trans("ToActivateModule"); - exit; -} - - -$api = new DolibarrApi($db); - -$api->r->addAPIClass('Luracast\\Restler\\Resources'); //this creates resources.json at API Root -$api->r->setSupportedFormats('JsonFormat', 'XmlFormat'); -$api->r->addAuthenticationClass('DolibarrApiAccess',''); - -$listofapis = array(); - -$modulesdir = dolGetModulesDirs(); -foreach ($modulesdir as $dir) -{ - /* - * Search available module - */ - dol_syslog("Scan directory ".$dir." for API modules"); - - $handle=@opendir(dol_osencode($dir)); - if (is_resource($handle)) - { - while (($file = readdir($handle))!==false) - { - if (is_readable($dir.$file) && preg_match("/^(mod.*)\.class\.php$/i",$file,$reg)) - { - $modulename=$reg[1]; - - // Defined if module is enabled - $enabled=true; - $module=$part=$obj=strtolower(preg_replace('/^mod/i','',$modulename)); - //if ($part == 'propale') $part='propal'; - if ($module == 'societe') { - $obj = 'thirdparty'; - } - if ($module == 'categorie') { - $part = 'categories'; - $obj = 'category'; - } - if ($module == 'facture') { - $part = 'compta/facture'; - $obj = 'facture'; - } - if (empty($conf->$module->enabled)) $enabled=false; - - if ($enabled) - { - /* - * If exists, load the API class for enable module - * - * Search files named api_<object>.class.php into /htdocs/<module>/class directory - * - * @todo : take care of externals module! - * @todo : use getElementProperties() function ? - */ - $dir_part = DOL_DOCUMENT_ROOT.'/'.$part.'/class/'; - - $handle_part=@opendir(dol_osencode($dir_part)); - if (is_resource($handle_part)) - { - while (($file_searched = readdir($handle_part))!==false) - { - if (is_readable($dir_part.$file_searched) && preg_match("/^(api_.*)\.class\.php$/i",$file_searched,$reg)) - { - $classname=$reg[1]; - $classname = str_replace('Api_','',ucwords($reg[1])).'Api'; - $classname = ucfirst($classname); - require_once $dir_part.$file_searched; - if (class_exists($classname)) - { - dol_syslog("Found API classname=".$classname); - $api->r->addAPIClass($classname,''); - - /* - require_once DOL_DOCUMENT_ROOT.'/includes/restler/framework/Luracast/Restler/Routes.php'; - $tmpclass = new ReflectionClass($classname); - try { - $classMetadata = CommentParser::parse($tmpclass->getDocComment()); - } catch (Exception $e) { - throw new RestException(500, "Error while parsing comments of `$classname` class. " . $e->getMessage()); - }*/ - - //$listofapis[]=array('classname'=>$classname, 'fullpath'=>$file_searched); - } - } - } - } - } - } - } - } -} - - -$listofapis=Routes::toArray(); -//var_dump($listofapis); - - -llxHeader(); - -$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>'; -print load_fiche_titre($langs->trans("ApiSetup"),$linkback,'title_setup'); - -// Define $urlwithroot -$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); -$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file -//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - -// Show message -print '<br>'; -$message=''; -$url='<a href="'.$urlwithroot.'/api/index.php/login?login='.urlencode($user->login).'&password=yourpassword" target="_blank">'.$urlwithroot.'/api/index.php/login?login='.urlencode($user->login).'&password=yourpassword[&reset=1]</a>'; -$message.=$langs->trans("UrlToGetKeyToUseAPIs").':<br>'; -$message.=img_picto('','object_globe.png').' '.$url; -print $message; -print '<br>'; -print '<br>'; - -$oldclass=''; - -print $langs->trans("ListOfAvailableAPIs").':<br>'; -foreach($listofapis['v1'] as $key => $val) -{ - if ($key == 'login') continue; - - if ($key) - { - foreach($val as $method => $val2) - { - $newclass=$val2['className']; - - if (preg_match('/restler/i', $newclass)) continue; - - if ($oldclass != $newclass) - { - print "\n<br>\n".$langs->trans("Class").': '.$newclass.'<br>'."\n"; - $oldclass = $newclass; - } - //print $key.' - '.$val['classname'].' - '.$val['fullpath']." - ".DOL_MAIN_URL_ROOT.'/api/index.php/'.strtolower(preg_replace('/Api$/','',$val['classname']))."/xxx<br>\n"; - $url=$urlwithroot.'/api/index.php/'.$key; - $url.='?api_key=token'; - print img_picto('','object_globe.png').' '.$method.' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n"; - } - } -} - -print '<br>'; -print '<br>'; -print $langs->trans("OnlyActiveElementsAreExposed", DOL_URL_ROOT.'/admin/modules.php'); - - -llxFooter(); -$db->close(); - diff --git a/htdocs/api/admin/index.php b/htdocs/api/admin/index.php index 3a69dadaaba62a6906d5248278fe1fcc4899a9ee..08209b03668e081220fb94af002ceb504bb3593c 100644 --- a/htdocs/api/admin/index.php +++ b/htdocs/api/admin/index.php @@ -95,9 +95,23 @@ print '</tr>'; print '</table>'; print '<br><br>'; +// Define $urlwithroot +$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); +$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file +//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current + +// Show message +$message=''; +$url='<a href="'.$urlwithroot.'/api/index.php/login?login='.urlencode($user->login).'&password=yourpassword" target="_blank">'.$urlwithroot.'/api/index.php/login?login='.urlencode($user->login).'&password=yourpassword[&reset=1]</a>'; +$message.=$langs->trans("UrlToGetKeyToUseAPIs").':<br>'; +$message.=img_picto('','object_globe.png').' '.$url; +print $message; +print '<br>'; +print '<br>'; + // Explorer print '<u>'.$langs->trans("ApiExporerIs").':</u><br>'; -$url=DOL_MAIN_URL_ROOT.'/api/admin/explorer.php'; +$url=DOL_MAIN_URL_ROOT.'/api/index.php/explorer'; print img_picto('','object_globe.png').' <a href="'.$url.'" target="_blank">'.$url."</a><br>\n";