56 lines
1.2 KiB
Python
Executable File
56 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import psycopg2
|
|
from pbkdf2 import crypt
|
|
import argparse
|
|
import os
|
|
|
|
|
|
parser = argparse.ArgumentParser(description='asadduser')
|
|
parser.add_argument('--user', '-u',
|
|
help='Login',
|
|
required=True)
|
|
parser.add_argument('--password', '-p',
|
|
help='Password',
|
|
required=True)
|
|
parser.add_argument('--application', '-a',
|
|
help='Application',
|
|
required=True)
|
|
|
|
args = parser.parse_args()
|
|
user = args.user
|
|
password = args.password
|
|
application = args.application
|
|
|
|
|
|
DB_NAME = "authservice"
|
|
|
|
pwhash = crypt(password, iterations=100000)
|
|
|
|
conn = None
|
|
cur = None
|
|
try:
|
|
conn = psycopg2.connect(database = DB_NAME)
|
|
conn.autocommit = False
|
|
|
|
cur = conn.cursor()
|
|
cur.execute("""
|
|
INSERT INTO user_t (login, pwhash)
|
|
VALUES(%s, %s)
|
|
""", [user, pwhash])
|
|
cur.execute("""
|
|
INSERT INTO user_application_mapping_t (application,"user")
|
|
VALUES(
|
|
(SELECT id FROM application_t WHERE name = %s),
|
|
(SELECT id FROM user_t WHERE login = %s)
|
|
)
|
|
""", [application, user])
|
|
conn.commit()
|
|
finally:
|
|
if cur:
|
|
cur.close()
|
|
if conn:
|
|
conn.rollback()
|
|
conn.close()
|
|
|