#!/usr/bin/env python3 __author__ = 'RemiZOffAlex' __copyright__ = '(c) RemiZOffAlex' __license__ = 'MIT' __email__ = 'remizoffalex@mail.ru' __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(): 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)