proxstar/proxstar/ldapdb.py
2020-12-22 00:16:33 -05:00

40 lines
983 B
Python

from csh_ldap import CSHLDAP
from flask import current_app as app
from proxstar import logging
def connect_ldap():
try:
ldap = CSHLDAP(app.config['LDAP_BIND_DN'], app.config['LDAP_BIND_PW'])
except Exception as e:
logging.error('unable to connect to LDAP: %s', e)
raise
return ldap
def is_rtp(user):
ldap = connect_ldap()
rtp_group = ldap.get_group('rtp')
return rtp_group.check_member(ldap.get_member(user, uid=True))
def is_active(user):
ldap = connect_ldap()
active_group = ldap.get_group('active')
return active_group.check_member(ldap.get_member(user, uid=True))
def is_current_student(user):
ldap = connect_ldap()
current_student_group = ldap.get_group('current_student')
return current_student_group.check_member(ldap.get_member(user, uid=True))
def is_user(user):
ldap = connect_ldap()
try:
ldap.get_member(user, uid=True)
return True
except:
return False