summary refs log tree commit diff
path: root/scripts
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-07-05 17:30:22 +0100
committerErik Johnston <erik@matrix.org>2016-07-05 17:30:22 +0100
commit651faee698d5ff4806d1e0e7f5cd4c438bf434f1 (patch)
treee78a06f28f9a907f74a2e5d2e954eb5e8e33cfaf /scripts
parentProtect password when registering using shared secret (diff)
downloadsynapse-651faee698d5ff4806d1e0e7f5cd4c438bf434f1.tar.xz
Add an admin option to shared secret registration
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/register_new_matrix_user19
1 files changed, 16 insertions, 3 deletions
diff --git a/scripts/register_new_matrix_user b/scripts/register_new_matrix_user
index 6d055fd012..987bf32d1c 100755
--- a/scripts/register_new_matrix_user
+++ b/scripts/register_new_matrix_user
@@ -42,6 +42,7 @@ def request_registration(user, password, server_location, shared_secret, admin=F
         "password": password,
         "mac": mac,
         "type": "org.matrix.login.shared_secret",
+        "admin": admin,
     }
 
     server_location = server_location.rstrip("/")
@@ -73,7 +74,7 @@ def request_registration(user, password, server_location, shared_secret, admin=F
         sys.exit(1)
 
 
-def register_new_user(user, password, server_location, shared_secret):
+def register_new_user(user, password, server_location, shared_secret, admin):
     if not user:
         try:
             default_user = getpass.getuser()
@@ -104,7 +105,14 @@ def register_new_user(user, password, server_location, shared_secret):
             print "Passwords do not match"
             sys.exit(1)
 
-    request_registration(user, password, server_location, shared_secret)
+    if not admin:
+        admin = raw_input("Make admin [no]: ")
+        if admin in ("y", "yes", "true"):
+            admin = True
+        else:
+            admin = False
+
+    request_registration(user, password, server_location, shared_secret, bool(admin))
 
 
 if __name__ == "__main__":
@@ -124,6 +132,11 @@ if __name__ == "__main__":
         default=None,
         help="New password for user. Will prompt if omitted.",
     )
+    parser.add_argument(
+        "-a", "--admin",
+        action="store_true",
+        help="Register new user as an admin. Will prompt if omitted.",
+    )
 
     group = parser.add_mutually_exclusive_group(required=True)
     group.add_argument(
@@ -156,4 +169,4 @@ if __name__ == "__main__":
     else:
         secret = args.shared_secret
 
-    register_new_user(args.user, args.password, args.server_url, secret)
+    register_new_user(args.user, args.password, args.server_url, secret, args.admin)