mirror of
https://github.com/ComputerScienceHouse/proxstar.git
synced 2025-03-09 15:40:09 +00:00
Merge pull request #63 from ComputerScienceHouse/ldap_cache
Simple ldap cache
This commit is contained in:
commit
e5a7033386
3 changed files with 16 additions and 13 deletions
|
@ -44,6 +44,7 @@ from proxstar.vnc import (
|
|||
)
|
||||
from proxstar.auth import get_auth
|
||||
from proxstar.util import gen_password
|
||||
from proxstar.ldapdb import connect_ldap
|
||||
from proxstar.starrs import check_hostname, renew_ip
|
||||
from proxstar.proxmox import connect_proxmox, get_isos, get_pools, get_ignored_pools
|
||||
|
||||
|
@ -82,6 +83,7 @@ engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
|
|||
Base.metadata.bind = engine
|
||||
DBSession = sessionmaker(bind=engine)
|
||||
db = DBSession()
|
||||
ldap_conn = connect_ldap()
|
||||
|
||||
starrs = psycopg2.connect(
|
||||
"dbname='{}' user='{}' host='{}' password='{}'".format(
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
from functools import lru_cache
|
||||
from csh_ldap import CSHLDAP
|
||||
from flask import current_app as app
|
||||
|
||||
from proxstar import logging
|
||||
from proxstar import logging, ldap_conn
|
||||
|
||||
|
||||
def connect_ldap():
|
||||
|
@ -13,28 +14,28 @@ def connect_ldap():
|
|||
return ldap
|
||||
|
||||
|
||||
@lru_cache(maxsize=32)
|
||||
def is_rtp(user):
|
||||
ldap = connect_ldap()
|
||||
rtp_group = ldap.get_group('rtp')
|
||||
return rtp_group.check_member(ldap.get_member(user, uid=True))
|
||||
rtp_group = ldap_conn.get_group('rtp')
|
||||
return rtp_group.check_member(ldap_conn.get_member(user, uid=True))
|
||||
|
||||
|
||||
@lru_cache(maxsize=32)
|
||||
def is_active(user):
|
||||
ldap = connect_ldap()
|
||||
active_group = ldap.get_group('active')
|
||||
return active_group.check_member(ldap.get_member(user, uid=True))
|
||||
active_group = ldap_conn.get_group('active')
|
||||
return active_group.check_member(ldap_conn.get_member(user, uid=True))
|
||||
|
||||
|
||||
@lru_cache(maxsize=32)
|
||||
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))
|
||||
current_student_group = ldap_conn.get_group('current_student')
|
||||
return current_student_group.check_member(ldap_conn.get_member(user, uid=True))
|
||||
|
||||
|
||||
@lru_cache(maxsize=32)
|
||||
def is_user(user):
|
||||
ldap = connect_ldap()
|
||||
try:
|
||||
ldap.get_member(user, uid=True)
|
||||
ldap_conn.get_member(user, uid=True)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue