diff options
author | vdigital <vdigital@piwigo.org> | 2007-02-23 23:25:34 +0000 |
---|---|---|
committer | vdigital <vdigital@piwigo.org> | 2007-02-23 23:25:34 +0000 |
commit | f800d4fb40468fbf255ac78ccd2da82544f8d557 (patch) | |
tree | 1498f742bf9667bf3e8e76e875f2a5b1028eee84 /admin/ws_checker.php | |
parent | cb2408a82c9bc93bef177dc33a8981bc36800839 (diff) |
New / Web Services:
- ws_checker.php makes its own web service request to control availability
- config_default.inc.php : comment for cURL support needed for checker
- ws_function authorize session and getVersion for any partner
- help review
New Admin Menu: review.
git-svn-id: http://piwigo.org/svn/trunk@1853 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | admin/ws_checker.php | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/admin/ws_checker.php b/admin/ws_checker.php index 411b3cad9..cec12d4e9 100644 --- a/admin/ws_checker.php +++ b/admin/ws_checker.php @@ -49,13 +49,15 @@ function official_req() { $official = array( /* Requests are limited to */ 'categories.' /* all categories. methods */ - , 'categories.getImages' /* <= see */ - , 'categories.getList' /* <= see */ + , 'categories.getImages' + , 'categories.getList' , 'images.' /* all images. methods */ - , 'images.getInfo' /* <= see */ + , 'images.getInfo' + , 'images.addComment' + , 'images.search' , 'tags.' /* all tags. methods */ - , 'tags.getImages' /* <= see */ - , 'tags.getList' /* <= see */ + , 'tags.getImages' + , 'tags.getList' ); if (function_exists('local_req')) { $local = local_req(); @@ -125,7 +127,7 @@ check_status(ACCESS_ADMINISTRATOR); $req_type_list = official_req(); //--------------------------------------------------------- update informations - +$chk_partner = ''; // Is a new access required? if (isset($_POST['wsa_submit'])) @@ -150,6 +152,7 @@ VALUES (' . " '$add_request', '$add_limit', '$add_comment' );"; pwg_query($query); + $chk_partner = $add_partner; $template->assign_block_vars( 'update_result', @@ -261,6 +264,7 @@ if ( $acc_list > 0 ) while ($row = mysql_fetch_array($result)) { $num++; + $chk_partner = ( $chk_partner == '' ) ? $row['name'] : $chk_partner; $template->assign_block_vars( 'acc_list.access', array( @@ -345,6 +349,51 @@ foreach ($conf['ws_durations'] as $value) { ); } } +if ( $chk_partner !== '' ) +{ + $request = get_absolute_root_url().'ws.php?method=pwg.getVersion&format=rest&' + . "partner=$chk_partner" ; + $session = curl_init($request); + curl_setopt ($session, CURLOPT_POST, true); + curl_setopt($session, CURLOPT_HEADER, true); + curl_setopt($session, CURLOPT_RETURNTRANSFER, true); + $response = curl_exec($session); + curl_close($session); + $status_code = array(); + preg_match('/\d\d\d/', $response, $status_code); + switch( $status_code[0] ) { + case 200: + $ws_status = l10n('Web Services under control'); + break; + case 503: + $ws_status = 'PhpWebGallery Web Services failed and returned an ' + . 'HTTP status of 503. Service is unavailable. An internal ' + . 'problem prevented us from returning data to you.'; + break; + case 403: + $ws_status = 'PhpWebGallery Web Services failed and returned an ' + . 'HTTP status of 403. Access is forbidden. You do not have ' + . 'permission to access this resource, or are over ' + . 'your rate limit.'; + break; + case 400: + // You may want to fall through here and read the specific XML error + $ws_status = 'PhpWebGallery Web Services failed and returned an ' + . 'HTTP status of 400. Bad request. The parameters passed ' + . 'to the service did not match as expected. The exact ' + . 'error is returned in the XML response.'; + break; + default: + $ws_status = 'PhpWebGallery Web Services returned an unexpected HTTP ' + . 'status of:' . $status_code[0]; + } + $template->assign_block_vars( + 'acc_list.ws_status', + array( + 'VALUE'=> $ws_status, + ) + ); +} //----------------------------------------------------------- sending html code |