Select Git revision
analyze-cycle.py
-
Radek Hušek authoredRadek Hušek authored
create-user 1.57 KiB
#!/usr/bin/env python3
import argparse
import sys
import mo.db as db
import mo.email
import mo.users
import mo.util
parser = argparse.ArgumentParser(description='Založí nového uživatele')
parser.add_argument(dest='email', help='e-mailová adresa')
parser.add_argument(dest='first_name', help='křestní jméno (jedno nebo více)')
parser.add_argument(dest='last_name', help='příjmení (jedno nebo více)')
parser.add_argument('--org', default=False, action='store_true', help='přidělí uživateli organizátorská práva')
parser.add_argument('--admin', default=False, action='store_true', help='přidělí uživateli správcovská práva')
parser.add_argument('--passwd', type=str, help='nastaví počáteční heslo (jinak pošle aktivační mail)')
args = parser.parse_args()
email = mo.users.normalize_email(args.email)
mo.util.init_standalone()
session = db.get_session()
user = session.query(db.User).filter_by(email=email).one_or_none()
if user is not None:
print(f'Uživatel s e-mailem {email} již existuje (user_id {user.user_id}).')
sys.exit(0)
user = db.User(
email=email,
first_name=args.first_name,
last_name=args.last_name,
is_org=args.org,
is_admin=args.admin,
)
session.add(user)
session.flush()
mo.util.log(db.LogType.user, user.user_id, {
'action': 'created',
'reason': 'script',
'new': db.row2dict(user),
})
if args.passwd is not None:
mo.users.set_password(user, args.passwd)
token = mo.users.make_activation_token(user)
session.commit()
if args.passwd is not None:
mo.email.send_new_account_email(user, token)