Batch add/remove users support

This commit is contained in:
Juan Ignacio Sánchez Lara
2015-09-07 10:35:04 +02:00
parent 428a2391ad
commit 59d144d91d
3 changed files with 33 additions and 24 deletions

View File

@@ -45,27 +45,28 @@ $$
$$ LANGUAGE 'plpythonu' VOLATILE SECURITY DEFINER;
CREATE OR REPLACE
FUNCTION cartodb._CDB_Group_AddUser_API(group_name text, username text)
FUNCTION cartodb._CDB_Group_AddUsers_API(group_name text, usernames text)
RETURNS VOID AS
$$
import string
import urllib
url = '/api/v1/databases/{0}/groups/%s/users' % (urllib.pathname2url(group_name))
body = '{ "username": "%s" }' % username
body = "{ \"users\": [\"%s\"] }" % "\",\"".join(usernames.split(','))
query = "select cartodb._CDB_Group_API_Request('POST', '%s', '%s', '{200, 409}') as response_status" % (url, body)
plpy.execute(query)
$$ LANGUAGE 'plpythonu' VOLATILE SECURITY DEFINER;
CREATE OR REPLACE
FUNCTION cartodb._CDB_Group_RemoveUser_API(group_name text, username text)
FUNCTION cartodb._CDB_Group_RemoveUsers_API(group_name text, usernames text)
RETURNS VOID AS
$$
import string
import urllib
url = '/api/v1/databases/{0}/groups/%s/users/%s' % (urllib.pathname2url(group_name), username)
query = "select cartodb._CDB_Group_API_Request('DELETE', '%s', '', '{200, 404}') as response_status" % url
url = '/api/v1/databases/{0}/groups/%s/users' % (urllib.pathname2url(group_name))
body = "{ \"users\": [\"%s\"] }" % "\",\"".join(usernames.split(','))
query = "select cartodb._CDB_Group_API_Request('DELETE', '%s', '%s', '{200, 404}') as response_status" % (url, body)
plpy.execute(query)
$$ LANGUAGE 'plpythonu' VOLATILE SECURITY DEFINER;