From 81077e6cdff187df59cd61fc3f3334a2bb3b5480 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Tue, 1 Aug 2017 11:11:29 +0300 Subject: [PATCH] Allow regular users to be created as well (not only admins) --- README.md | 4 ++-- roles/matrix-server/tasks/register_user.yml | 6 +++++- .../usr-local-bin/matrix-synapse-register-user.j2 | 15 +++++++++++---- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 132244ff8..cb0eaf391 100644 --- a/README.md +++ b/README.md @@ -146,11 +146,11 @@ Run this to create a new user account on your Matrix server. You can do it via this Ansible playbook (make sure to edit the `` and `` part below): - ansible-playbook -i inventory/hosts setup.yml --extra-vars='username= password=' --tags=register-user + ansible-playbook -i inventory/hosts setup.yml --extra-vars='username= password= admin=' --tags=register-user **or** using the command-line after **SSH**-ing to your server (requires that [all services have been started](#Starting-the-services)): - matrix-synapse-register-user + matrix-synapse-register-user **Note**: `` is just a plain username (like `john`), not your full `@:` identifier. diff --git a/roles/matrix-server/tasks/register_user.yml b/roles/matrix-server/tasks/register_user.yml index 38f3a2a9d..cfd768672 100644 --- a/roles/matrix-server/tasks/register_user.yml +++ b/roles/matrix-server/tasks/register_user.yml @@ -8,6 +8,10 @@ fail: msg="The `password` variable needs to be provided to this playbook, via --extra-vars" when: "password is not defined or password == ''" +- name: Fail if playbook called incorrectly + fail: msg="The `admin` variable needs to be provided to this playbook, via --extra-vars" + when: "admin is not defined or admin not in ['yes', 'no']" + - name: Ensure matrix-synapse is started service: name=matrix-synapse state=started daemon_reload=yes register: start_result @@ -17,4 +21,4 @@ when: start_result.changed - name: Register user - shell: "matrix-synapse-register-user {{ username }} {{ password }}" \ No newline at end of file + shell: "matrix-synapse-register-user {{ username }} {{ password }} {{ '1' if admin == 'yes' else '0' }}" \ No newline at end of file diff --git a/roles/matrix-server/templates/usr-local-bin/matrix-synapse-register-user.j2 b/roles/matrix-server/templates/usr-local-bin/matrix-synapse-register-user.j2 index efc6e737d..50341320e 100644 --- a/roles/matrix-server/templates/usr-local-bin/matrix-synapse-register-user.j2 +++ b/roles/matrix-server/templates/usr-local-bin/matrix-synapse-register-user.j2 @@ -1,11 +1,18 @@ #!/bin/bash -if [ $# -ne 2 ]; then - echo "Usage: "$0" " - exit 1 +if [ $# -ne 3 ]; then + echo "Usage: "$0" " + exit 1 fi user=$1 password=$2 +admin=$3 -docker exec matrix-synapse register_new_matrix_user -u $user -p $password -a -c /data/homeserver.yaml https://localhost:8448 \ No newline at end of file +extraFlags="" + +if [ "$admin" -eq "1" ]; then + extraFlags=$extraFlags" -a" +fi + +docker exec matrix-synapse register_new_matrix_user -u $user -p $password $extraFlags -c /data/homeserver.yaml https://localhost:8448 \ No newline at end of file