diff --git a/tools/addmosquser.py b/tools/addmosquser.py new file mode 100755 index 0000000..b171121 --- /dev/null +++ b/tools/addmosquser.py @@ -0,0 +1,57 @@ +#!/usr/bin/python + +import mariadb +from pbkdf2 import crypt +import argparse +import os + + + +parser = argparse.ArgumentParser(description='addmosquser') +parser.add_argument('--user', '-u', + help='Login', + required=True) +parser.add_argument('--password', '-p', + help='Password', + required=True) + +args = parser.parse_args() +user = args.user +password = args.password +application = args.application + + +DB_USER = os.environ["DB_USER"] +DB_PASS = os.environ["DB_PASS"] +DB_HOST = os.environ["DB_HOST"] +DB_NAME = os.environ["DB_NAME"] + +pwhash = crypt(password, iterations=100000) + +conn = None +cur = None +try: + conn = mariadb.connect(user = DB_USER, password = DB_PASS, + host = DB_HOST, database = DB_NAME) + conn.autocommit = False + + cur = conn.cursor() + cur.execute(""" +INSERT INTO users (login, pwhash) + VALUES(?, ?) +""", [user, pwhash]) + cur.execute(""" +INSERT INTO user_applications_mapping (application, user) + VALUES( + (SELECT id FROM applications WHERE name = ?), + (SELECT id FROM users WHERE login = ?) + ) +""", [application, user]) + conn.commit() +finally: + if cur: + cur.close() + if conn: + conn.rollback() + conn.close() +