Update for public https://habr.com/post/421887/
This commit is contained in:
58
utils/useradd.py
Executable file
58
utils/useradd.py
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'http://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)
|
||||
Reference in New Issue
Block a user