aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/main.py b/main.py
index 1c810a1..fc12755 100644
--- a/main.py
+++ b/main.py
@@ -1,5 +1,8 @@
"""Main entry point for project"""
+import sys
+import uuid
import json
+import click
from math import ceil
from datetime import datetime
@@ -84,6 +87,26 @@ def init_dev_clients():
with db.connection(app.config["AUTH_DB"]) as conn, db.cursor(conn) as cursor:
cursor.executemany(dev_clients_query, dev_clients)
+
+@app.cli.command()
+@click.argument("user_id", type=click.UUID)
+def assign_system_admin(user_id: uuid.UUID):
+ dburi = app.config["AUTH_DB"]
+ with db.connection(dburi) as conn, db.cursor(conn) as cursor:
+ cursor.execute("SELECT * FROM users WHERE user_id=?",
+ (str(user_id),))
+ row = cursor.fetchone()
+ if row:
+ cursor.execute(
+ "SELECT * FROM roles WHERE role_name='system-administrator'")
+ admin_role = cursor.fetchone()
+ cursor.execute("INSERT INTO user_roles VALUES (?,?)",
+ (str(user_id), admin_role["role_id"]))
+ return 0
+ print(f"ERROR: Could not find user with ID {user_id}",
+ file=sys.stderr)
+ sys.exit(1)
+
##### END: CLI Commands #####
if __name__ == '__main__':