Files
myapp-full/utils/useradd.py

60 lines
1.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
__author__ = 'RemiZOffAlex'
__copyright__ = '(c) RemiZOffAlex'
__license__ = 'MIT'
__email__ = 'remizoffalex@mail.ru'
2019-04-26 15:38:41 +03:00
__url__ = 'https://remizoffalex.ru'
import os
import sys
import argparse
import traceback
sys.path.insert(0, '/'.join(os.path.dirname(os.path.abspath(__file__)).split('/')[:-1]))
from myapp import app, lib, models
def main():
2019-04-26 15:38:41 +03:00
parser = argparse.ArgumentParser(
description='Скрипт добавления пользователя',
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser._optionals.title = "Необязательные аргументы"
parser.add_argument("--user", dest="user", required=True, help="Новый пользователь")
parser.add_argument("--password", dest="password", help="Новый пароль")
args = parser.parse_args()
user = models.db_session.query(
models.User
).filter(
models.User.name==args.user
).first()
if user:
app.logger.warning('Пользователь %s уже существует' % args.user)
sys.exit(1)
user = models.User(args.user)
if args.password is None:
args.password = lib.pwgen()
print('Пароль пользователя: {}'.format(args.password))
user.password = lib.get_hash_password(
args.password,
app.config['SECRET_KEY']
)
user.disabled = False
models.db_session.add(user)
models.db_session.commit()
app.logger.info('Пользователь %s успешно добавлен' % args.user)
if __name__ == "__main__":
try:
main()
except Exception as err:
traceback.print_exc(file=sys.stdout)
exit(1)
exit(0)