aboutsummaryrefslogtreecommitdiffstats
path: root/ws.php
diff options
context:
space:
mode:
authormistic100 <mistic@piwigo.org>2013-10-24 13:38:12 +0000
committermistic100 <mistic@piwigo.org>2013-10-24 13:38:12 +0000
commit757fe9a8215d7a9746b76668ea81d03d774d9f17 (patch)
treeb61f436fc8c6f775b19d9dbd69cc87495f07f2c3 /ws.php
parent2d2a2e2813b3f709ad907aad77e0af24e276103a (diff)
feature 2976: API methods for users and groups management
TODO : methods to manage albums permissions git-svn-id: http://piwigo.org/svn/trunk@25117 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r--ws.php163
1 files changed, 160 insertions, 3 deletions
diff --git a/ws.php b/ws.php
index e04c19f44..01b2ecf02 100644
--- a/ws.php
+++ b/ws.php
@@ -675,7 +675,7 @@ function ws_addDefaultMethods( $arr )
'<b>Webmaster only.</b>',
null,
array('admin_only'=>true)
- );
+ );
$service->addMethod(
'pwg.extensions.ignoreUpdate',
@@ -692,7 +692,7 @@ function ws_addDefaultMethods( $arr )
'<b>Webmaster only.</b> Ignores an extension if it needs update.',
null,
array('admin_only'=>true)
- );
+ );
$service->addMethod(
'pwg.extensions.checkUpdates',
@@ -701,7 +701,164 @@ function ws_addDefaultMethods( $arr )
'<b>Admin only.</b> Checks if piwigo or extensions are up to date.',
null,
array('admin_only'=>true)
- );
+ );
+
+ $service->addMethod(
+ 'pwg.groups.getList',
+ 'ws_groups_getList',
+ array(
+ 'group_id' => array('default'=>null,
+ 'flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ 'name' => array('default'=>null,
+ 'info'=>'Use "%" as wildcard.'),
+ 'per_page' => array('default'=>100,
+ 'maxValue'=>$conf['ws_max_users_per_page'],
+ 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
+ 'page' => array('default'=>0,
+ 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
+ 'order' => array('default'=>'name',
+ 'info'=>'id, name, nb_users, is_default'),
+ ),
+ '<b>Admin only.</b> Retrieves a list of all groups. The list can be filtered.',
+ null,
+ array('admin_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.groups.add',
+ 'ws_groups_add',
+ array(
+ 'name' => array(),
+ 'is_default' => array('default'=>false,
+ 'type'=>WS_TYPE_BOOL),
+ ),
+ '<b>Admin & POST only.</b> Creates a group and returns the new group record.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.groups.delete',
+ 'ws_groups_delete',
+ array(
+ 'group_id' => array('flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ ),
+ '<b>Admin & POST only.</b> Deletes a or more groups. Users and photos are not deleted.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.groups.setInfo',
+ 'ws_groups_setInfo',
+ array(
+ 'group_id' => array('type'=>WS_TYPE_ID),
+ 'name' => array('default'=>null),
+ 'is_default' => array('default'=>null,
+ 'type'=>WS_TYPE_BOOL),
+ ),
+ '<b>Admin & POST only.</b> Updates a group. Leave a field blank to keep the current value.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.groups.addUser',
+ 'ws_groups_addUser',
+ array(
+ 'group_id' => array('type'=>WS_TYPE_ID),
+ 'user_id' => array('flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ ),
+ '<b>Admin only.</b> Adds one or more users to a group.',
+ null,
+ array('admin_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.groups.deleteUser',
+ 'ws_groups_deleteUser',
+ array(
+ 'group_id' => array('type'=>WS_TYPE_ID),
+ 'user_id' => array('flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ ),
+ '<b>Admin & POST only.</b> Removes one or more users from a group.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.users.getList',
+ 'ws_users_getList',
+ array(
+ 'user_id' => array('default'=>null,
+ 'flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ 'username' => array('default'=>null,
+ 'info'=>'Use "%" as wildcard.'),
+ 'status' => array('default'=>null,
+ 'flags'=>WS_PARAM_FORCE_ARRAY,
+ 'info'=>'guest,generic,normal,admin,webmaster'),
+ 'min_level' => array('default'=>0,
+ 'maxValue'=>max($conf['available_permission_levels']),
+ 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
+ 'group_id' => array('default'=>null,
+ 'flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ 'per_page' => array('default'=>100,
+ 'maxValue'=>$conf['ws_max_users_per_page'],
+ 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
+ 'page' => array('default'=>0,
+ 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
+ 'order' => array('default'=>'id',
+ 'info'=>'id, username, level, email'),
+ ),
+ '<b>Admin only.</b> Retrieves a list of all the users.',
+ null,
+ array('admin_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.users.add',
+ 'ws_users_add',
+ array(
+ 'username' => array(),
+ 'password' => array('default'=>null),
+ 'email' => array('default'=>null),
+ ),
+ '<b>Admin & POST only.</b> Registers a new user.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.users.delete',
+ 'ws_users_delete',
+ array(
+ 'user_id' => array('flags'=>WS_PARAM_FORCE_ARRAY,
+ 'type'=>WS_TYPE_ID),
+ ),
+ '<b>Admin & POST only.</b> Deletes on or more users. Photos owned by this user are not deleted.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
+
+ $service->addMethod(
+ 'pwg.users.setInfo',
+ 'ws_users_setInfo',
+ array(
+ 'user_id' => array('type'=>WS_TYPE_ID),
+ 'username' => array('default'=>null),
+ 'password' => array('default'=>null),
+ 'email' => array('default'=>null),
+ ),
+ '<b>Admin & POST only.</b> Updates a user. Leave a field blank to keep the current value.',
+ null,
+ array('admin_only'=>true, 'post_only'=>true)
+ );
}
?> \ No newline at end of file