netbox-docker/startup_scripts/000_users.py

26 lines
714 B
Python
Raw Normal View History

import sys
2020-12-14 22:09:08 +01:00
from django.contrib.auth.models import User
2021-04-20 23:47:49 +02:00
from startup_script_utils import load_yaml
from users.models import Token
users = load_yaml("/opt/netbox/initializers/users.yml")
if users is None:
sys.exit()
for username, user_details in users.items():
2022-04-05 08:34:08 +02:00
api_token = user_details.pop("api_token", Token.generate_key())
password = user_details.pop("password", User.objects.make_random_password())
user, created = User.objects.get_or_create(username=username, defaults=user_details)
if created:
user.set_password(password)
user.save()
2022-04-05 08:34:08 +02:00
if api_token:
Token.objects.get_or_create(user=user, key=api_token)
print("👤 Created user", username)