From 2751a8e8487462513ca960a0ec403451d0c6b078 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sun, 16 Nov 2014 08:58:03 -0500 Subject: [PATCH] Convert xmpp-register action to python. --- actions/xmpp | 26 ++++++++++++++++++++++++++ actions/xmpp-register | 19 ------------------- plinth/modules/xmpp/xmpp.py | 5 ++++- 3 files changed, 30 insertions(+), 20 deletions(-) delete mode 100755 actions/xmpp-register diff --git a/actions/xmpp b/actions/xmpp index e7ea14743..1a5a5783a 100755 --- a/actions/xmpp +++ b/actions/xmpp @@ -34,6 +34,14 @@ def parse_arguments(): subparsers.add_parser('get-installed', help='Get whether ejabberd is installed') + # Register a new user account + register = subparsers.add_parser('register', + help='Register a new user account') + register.add_argument('--username', + help='Username for the new user account') + register.add_argument('--password', + help='Password for the new user account') + return parser.parse_args() @@ -42,6 +50,24 @@ def subcommand_get_installed(_): print('installed' if get_installed() else 'not installed') +def subcommand_register(arguments): + """Register a new user account""" + if not get_installed(): + print('Failed to register XMPP account: ejabberd is not installed.') + return + + username = arguments.username + password = arguments.password + hostname = subprocess.check_output(['hostname']) + + try: + output = subprocess.check_output(['ejabberdctl', 'register', + username, hostname, password]) + print(output.decode()) + except subprocess.CalledProcessError as e: + print('Failed to register XMPP account:', e.output.decode()) + + def get_installed(): """Check if ejabberd is installed""" with open('/dev/null', 'w') as file_handle: diff --git a/actions/xmpp-register b/actions/xmpp-register deleted file mode 100755 index 5662a88f5..000000000 --- a/actions/xmpp-register +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# -# This file is part of Plinth. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# - -ejabberdctl register "$1" `hostname` "$2" || echo "Failed to register XMPP account." diff --git a/plinth/modules/xmpp/xmpp.py b/plinth/modules/xmpp/xmpp.py index d389d699c..d9f09cad4 100644 --- a/plinth/modules/xmpp/xmpp.py +++ b/plinth/modules/xmpp/xmpp.py @@ -183,7 +183,10 @@ def register(request): def _register_user(request, data): """Register a new XMPP user""" output = actions.superuser_run( - 'xmpp-register', [data['username'], data['password']]) + 'xmpp', + ['register', + '--username', data['username'], + '--password', data['password']]) if 'successfully registered' in output: messages.success(request, _('Registered account for %s') %