From 5adad7565c9c169dd623bac6704121f7d6aba151 Mon Sep 17 00:00:00 2001 From: plegall Date: Wed, 24 Sep 2008 21:30:33 +0000 Subject: new: WebService method pwg.tags.getAdminList was added. The difference with pwg.tags.getList is that this new method doesn't take permissions into account, and so is available only for administrator connected users. git-svn-id: http://piwigo.org/svn/trunk@2584 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/ws_functions.inc.php | 27 +++++++++++++++++++++++++++ tools/piwigo_remote.pl | 20 ++++++++++++++++++++ ws.php | 7 +++++++ 3 files changed, 54 insertions(+) diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php index 203367356..0e4b1a8c2 100644 --- a/include/ws_functions.inc.php +++ b/include/ws_functions.inc.php @@ -1192,6 +1192,33 @@ function ws_tags_getList($params, &$service) return array('tags' => new PwgNamedArray($tags, 'tag', array('id','url_name','url', 'counter' )) ); } +/** + * returns the list of tags as you can see them in administration (web + * service method). + * + * Only admin can run this method and permissions are not taken into + * account. + */ +function ws_tags_getAdminList($params, &$service) +{ + if (!is_admin()) + { + return new PwgError(401, 'Access denied'); + } + + $tags = get_all_tags(); + return array( + 'tags' => new PwgNamedArray( + $tags, + 'tag', + array( + 'name', + 'id', + 'url_name', + ) + ) + ); +} /** * returns a list of images for tags (web service method) diff --git a/tools/piwigo_remote.pl b/tools/piwigo_remote.pl index 3c611fed0..02e447eab 100644 --- a/tools/piwigo_remote.pl +++ b/tools/piwigo_remote.pl @@ -116,6 +116,26 @@ if ($opt{action} eq 'pwg.tags.list') { print $t; } +if ($opt{action} eq 'pwg.tags.getAdminList') { + $query = pwg_ws_get_query( + method => 'pwg.tags.getAdminList' + ); + + $result = $ua->get($query); + my $tags = from_json($result->content)->{result}{tags}; + + foreach my $tag (@{$tags}) { + # print join(',', keys %{$tag}), "\n"; exit(); + printf( + '{%u} %s ', + $tag->{id}, + $tag->{name} + ); + } + + print "\n"; +} + if ($opt{action} eq 'pwg.categories.add') { $form = { method => 'pwg.categories.add', diff --git a/ws.php b/ws.php index 5fdccff3a..b98d21e65 100644 --- a/ws.php +++ b/ws.php @@ -211,6 +211,13 @@ function ws_addDefaultMethods( $arr ) ), 'administration method only' ); + + $service->addMethod( + 'pwg.tags.getAdminList', + 'ws_tags_getAdminList', + array(), + 'administration method only' + ); } add_event_handler('ws_add_methods', 'ws_addDefaultMethods'); -- cgit v1.2.3