Integrate LDAP API on user signup
This commit is contained in:
41
apiserver/apiserver/api/utils_ldap.py
Normal file
41
apiserver/apiserver/api/utils_ldap.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import requests
|
||||
|
||||
from apiserver import secrets
|
||||
|
||||
def is_configured():
|
||||
return bool(secrets.LDAP_API_URL and secrets.LDAP_API_KEY)
|
||||
|
||||
if not is_configured:
|
||||
print('LDAP connection not configured.')
|
||||
|
||||
|
||||
def ldap_api(route, data):
|
||||
try:
|
||||
headers = {'Authorization': 'Token ' + secrets.LDAP_API_KEY}
|
||||
url = secrets.LDAP_API_URL + route
|
||||
r = requests.post(url, data=data, headers=headers, timeout=3)
|
||||
return r.status_code
|
||||
except BaseException as e:
|
||||
print('Problem GETting {}: {} - {}'.format(url, e.__class__.__name__, str(e)))
|
||||
return None
|
||||
|
||||
def find_user(username):
|
||||
ldap_data = dict(username=username)
|
||||
return ldap_api('find-user', ldap_data)
|
||||
|
||||
def create_user(data):
|
||||
ldap_data = dict(
|
||||
first=data['first_name'],
|
||||
last=data['last_name'],
|
||||
username=data['username'],
|
||||
email=data['email'],
|
||||
password=data['password1'],
|
||||
)
|
||||
return ldap_api('create-user', ldap_data)
|
||||
|
||||
def set_password(data):
|
||||
ldap_data = dict(
|
||||
username=data['username'],
|
||||
password=data['password1'],
|
||||
)
|
||||
return ldap_api('set-password', ldap_data)
|
Reference in New Issue
Block a user