From 20d36e5df8dd1a99ba328650b3bc17d5f6d590e8 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Mon, 9 Dec 2013 16:26:10 -0500 Subject: [PATCH] Add admin API endpoint for creating users. (imported from commit a8b919c7d21b28dfd75b6b95736a375874ead15f) --- examples/create-user | 54 ++++++++++++++++++++++++++++++++++++++++++++ zulip/__init__.py | 1 + 2 files changed, 55 insertions(+) create mode 100755 examples/create-user diff --git a/examples/create-user b/examples/create-user new file mode 100755 index 0000000..bacfb76 --- /dev/null +++ b/examples/create-user @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright © 2012-2013 Zulip, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +import sys +from os import path +import optparse + +usage = """create-user --new-email= --new-password= --new-full-name= --new-short-name= [options] + +Create a user. You must be a realm admin to use this API, and the user +will be created in your realm. + +Example: create-user --site=http://localhost:9991 --user=rwbarton@zulip.com --new-email=jarthur@zulip.com --new-password=random17 --new-full-name 'J. Arthur Random' --new-short-name='jarthur' +""" + +sys.path.append(path.join(path.dirname(__file__), '..')) +import zulip + +parser = optparse.OptionParser(usage=usage) +parser.add_option_group(zulip.generate_option_group(parser)) +parser.add_option('--new-email') +parser.add_option('--new-password') +parser.add_option('--new-full-name') +parser.add_option('--new-short-name') +(options, args) = parser.parse_args() + +client = zulip.init_from_options(options) + +print client.create_user({ + 'email': options.new_email, + 'password': options.new_password, + 'full_name': options.new_full_name, + 'short_name': options.new_short_name + }) diff --git a/zulip/__init__.py b/zulip/__init__.py index e2e4529..c79e84f 100644 --- a/zulip/__init__.py +++ b/zulip/__init__.py @@ -360,3 +360,4 @@ Client._register('list_subscriptions', method='GET', url='users/me/subscriptions Client._register('add_subscriptions', url='users/me/subscriptions', make_request=_mk_subs) Client._register('remove_subscriptions', method='PATCH', url='users/me/subscriptions', make_request=_mk_rm_subs) Client._register('render_message', method='GET', url='messages/render') +Client._register('create_user', method='POST', url='users')