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 {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||||
logger.info('Auth timeout occured, assuming it worked and returning 200.')
|
logger.info('Auth timeout occured, assuming it worked and returning 200.')
|
||||||
return 200
|
return 200
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
raise
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
logger.error('Auth {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
logger.error('Auth {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -16,6 +16,8 @@ def ldap_api(route, data):
|
||||||
url = secrets.LDAP_API_URL + route
|
url = secrets.LDAP_API_URL + route
|
||||||
r = requests.post(url, data=data, headers=headers, timeout=10)
|
r = requests.post(url, data=data, headers=headers, timeout=10)
|
||||||
return r.status_code
|
return r.status_code
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
raise
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
logger.error('LDAP {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
logger.error('LDAP {} - {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||||
return None
|
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