From 53faa084c29e094451e380de98b277e4149c7f7c Mon Sep 17 00:00:00 2001 From: Devin Matte Date: Mon, 21 Dec 2020 17:14:11 -0500 Subject: [PATCH] Adding some basic ldap cache --- proxstar/ldapdb.py | 5 +++++ requirements.txt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/proxstar/ldapdb.py b/proxstar/ldapdb.py index c737310..1f71f59 100644 --- a/proxstar/ldapdb.py +++ b/proxstar/ldapdb.py @@ -1,5 +1,6 @@ from csh_ldap import CSHLDAP from flask import current_app as app +from functools import lru_cache from proxstar import logging @@ -13,24 +14,28 @@ def connect_ldap(): return ldap +@lru_cache(maxsize=64) def is_rtp(user): ldap = connect_ldap() rtp_group = ldap.get_group('rtp') return rtp_group.check_member(ldap.get_member(user, uid=True)) +@lru_cache(maxsize=256) def is_active(user): ldap = connect_ldap() active_group = ldap.get_group('active') return active_group.check_member(ldap.get_member(user, uid=True)) +@lru_cache(maxsize=256) 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)) +@lru_cache(maxsize=256) def is_user(user): ldap = connect_ldap() try: diff --git a/requirements.txt b/requirements.txt index 7eaa98d..6fdbea7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ black~=20.8b1 -csh-ldap~=2.2.0 +csh-ldap~=2.3.0 flask==1.0.2 flask-pyoidc==1.3.0 gunicorn==19.9.0