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.auth import get_auth
|
||||||
from proxstar.util import gen_password
|
from proxstar.util import gen_password
|
||||||
|
from proxstar.ldapdb import connect_ldap
|
||||||
from proxstar.starrs import check_hostname, renew_ip
|
from proxstar.starrs import check_hostname, renew_ip
|
||||||
from proxstar.proxmox import connect_proxmox, get_isos, get_pools, get_ignored_pools
|
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
|
Base.metadata.bind = engine
|
||||||
DBSession = sessionmaker(bind=engine)
|
DBSession = sessionmaker(bind=engine)
|
||||||
db = DBSession()
|
db = DBSession()
|
||||||
|
ldap_conn = connect_ldap()
|
||||||
|
|
||||||
starrs = psycopg2.connect(
|
starrs = psycopg2.connect(
|
||||||
"dbname='{}' user='{}' host='{}' password='{}'".format(
|
"dbname='{}' user='{}' host='{}' password='{}'".format(
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
|
from functools import lru_cache
|
||||||
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 proxstar import logging
|
from proxstar import logging, ldap_conn
|
||||||
|
|
||||||
|
|
||||||
def connect_ldap():
|
def connect_ldap():
|
||||||
|
@ -13,28 +14,28 @@ def connect_ldap():
|
||||||
return ldap
|
return ldap
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache(maxsize=32)
|
||||||
def is_rtp(user):
|
def is_rtp(user):
|
||||||
ldap = connect_ldap()
|
rtp_group = ldap_conn.get_group('rtp')
|
||||||
rtp_group = ldap.get_group('rtp')
|
return rtp_group.check_member(ldap_conn.get_member(user, uid=True))
|
||||||
return rtp_group.check_member(ldap.get_member(user, uid=True))
|
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache(maxsize=32)
|
||||||
def is_active(user):
|
def is_active(user):
|
||||||
ldap = connect_ldap()
|
active_group = ldap_conn.get_group('active')
|
||||||
active_group = ldap.get_group('active')
|
return active_group.check_member(ldap_conn.get_member(user, uid=True))
|
||||||
return active_group.check_member(ldap.get_member(user, uid=True))
|
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache(maxsize=32)
|
||||||
def is_current_student(user):
|
def is_current_student(user):
|
||||||
ldap = connect_ldap()
|
current_student_group = ldap_conn.get_group('current_student')
|
||||||
current_student_group = ldap.get_group('current_student')
|
return current_student_group.check_member(ldap_conn.get_member(user, uid=True))
|
||||||
return current_student_group.check_member(ldap.get_member(user, uid=True))
|
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache(maxsize=32)
|
||||||
def is_user(user):
|
def is_user(user):
|
||||||
ldap = connect_ldap()
|
|
||||||
try:
|
try:
|
||||||
ldap.get_member(user, uid=True)
|
ldap_conn.get_member(user, uid=True)
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue