Adding some basic ldap cache

This commit is contained in:
Devin Matte 2020-12-21 17:14:11 -05:00
parent d93c413983
commit 53faa084c2
2 changed files with 6 additions and 1 deletions

View file

@ -1,5 +1,6 @@
from csh_ldap import CSHLDAP from csh_ldap import CSHLDAP
from flask import current_app as app from flask import current_app as app
from functools import lru_cache
from proxstar import logging from proxstar import logging
@ -13,24 +14,28 @@ def connect_ldap():
return ldap return ldap
@lru_cache(maxsize=64)
def is_rtp(user): def is_rtp(user):
ldap = connect_ldap() ldap = connect_ldap()
rtp_group = ldap.get_group('rtp') rtp_group = ldap.get_group('rtp')
return rtp_group.check_member(ldap.get_member(user, uid=True)) return rtp_group.check_member(ldap.get_member(user, uid=True))
@lru_cache(maxsize=256)
def is_active(user): def is_active(user):
ldap = connect_ldap() ldap = connect_ldap()
active_group = ldap.get_group('active') active_group = ldap.get_group('active')
return active_group.check_member(ldap.get_member(user, uid=True)) return active_group.check_member(ldap.get_member(user, uid=True))
@lru_cache(maxsize=256)
def is_current_student(user): def is_current_student(user):
ldap = connect_ldap() ldap = connect_ldap()
current_student_group = ldap.get_group('current_student') current_student_group = ldap.get_group('current_student')
return current_student_group.check_member(ldap.get_member(user, uid=True)) return current_student_group.check_member(ldap.get_member(user, uid=True))
@lru_cache(maxsize=256)
def is_user(user): def is_user(user):
ldap = connect_ldap() ldap = connect_ldap()
try: try:

View file

@ -1,5 +1,5 @@
black~=20.8b1 black~=20.8b1
csh-ldap~=2.2.0 csh-ldap~=2.3.0
flask==1.0.2 flask==1.0.2
flask-pyoidc==1.3.0 flask-pyoidc==1.3.0
gunicorn==19.9.0 gunicorn==19.9.0