Generate missing LDAP users
This commit is contained in:
parent
6a3ce847d6
commit
8504b77e57
|
@ -23,6 +23,8 @@ def auth_api(url, data=None, json=None):
|
|||
logger.info('Auth {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||
logger.info('Auth timeout occured, assuming it worked and returning 200.')
|
||||
return 200
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except BaseException as e:
|
||||
logger.error('Auth {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||
return None
|
||||
|
|
|
@ -16,6 +16,8 @@ def ldap_api(route, data):
|
|||
url = secrets.LDAP_API_URL + route
|
||||
r = requests.post(url, data=data, headers=headers, timeout=10)
|
||||
return r.status_code
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except BaseException as e:
|
||||
logger.error('LDAP {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||
return None
|
||||
|
|
43
apiserver/scripts/generate_ldap_users.py
Executable file
43
apiserver/scripts/generate_ldap_users.py
Executable file
|
@ -0,0 +1,43 @@
|
|||
# Generates missing LDAP users from Spaceport members
|
||||
# this fixes an issue when a very old member resets their password
|
||||
# and their LDAP user can't be found in the system.
|
||||
#
|
||||
# Assigns a random password to the user.
|
||||
|
||||
|
||||
import django, sys, os
|
||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'apiserver.settings'
|
||||
django.setup()
|
||||
|
||||
from apiserver.api import models, utils, utils_ldap
|
||||
from uuid import uuid4
|
||||
import re
|
||||
|
||||
random_password = lambda: str(uuid4())[:23]
|
||||
|
||||
members = models.Member.objects.all()
|
||||
|
||||
for member in members:
|
||||
print()
|
||||
|
||||
username = member.user.username
|
||||
print('Checking LDAP for member id:', member.id, 'username:', username)
|
||||
|
||||
if utils_ldap.is_configured():
|
||||
result = utils_ldap.find_user(member.user.username)
|
||||
if result == 200:
|
||||
print(' username found, skipping')
|
||||
continue
|
||||
|
||||
print(' generating LDAP user...')
|
||||
|
||||
data = dict(
|
||||
first_name=member.first_name,
|
||||
last_name=member.last_name,
|
||||
username=username,
|
||||
email=member.user.email,
|
||||
password1=random_password(),
|
||||
)
|
||||
result = utils_ldap.create_user(data)
|
||||
|
||||
print(' result:', result)
|
Loading…
Reference in New Issue
Block a user