Skip to content
Snippets Groups Projects
Verified Commit 026bc0dc authored by nd's avatar nd
Browse files

moved to generic ldap connection instead of service/user connection

parent 5a5fa95b
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,7 @@ class Group(): ...@@ -25,7 +25,7 @@ class Group():
@classmethod @classmethod
def from_ldap_dn(cls, dn): def from_ldap_dn(cls, dn):
conn = ldap.service_conn() conn = ldap.get_conn()
conn.search(dn, '(objectClass=groupOfUniqueNames)') conn.search(dn, '(objectClass=groupOfUniqueNames)')
if not len(conn.entries) == 1: if not len(conn.entries) == 1:
return None return None
......
from flask import Blueprint, current_app, render_template from flask import Blueprint, current_app, render_template
from uffd.navbar import register_navbar from uffd.navbar import register_navbar
from uffd.ldap import service_conn, escape_filter_chars from uffd.ldap import get_conn, escape_filter_chars
from .models import Group from .models import Group
...@@ -10,7 +10,7 @@ bp = Blueprint("group", __name__, template_folder='templates', url_prefix='/grou ...@@ -10,7 +10,7 @@ bp = Blueprint("group", __name__, template_folder='templates', url_prefix='/grou
@bp.route("/") @bp.route("/")
@register_navbar('Groups', icon='layer-group', blueprint=bp) @register_navbar('Groups', icon='layer-group', blueprint=bp)
def group_list(): def group_list():
conn = service_conn() conn = get_conn()
conn.search(current_app.config["LDAP_BASE_GROUPS"], '(objectclass=groupOfUniqueNames)') conn.search(current_app.config["LDAP_BASE_GROUPS"], '(objectclass=groupOfUniqueNames)')
groups = [] groups = []
for i in conn.entries: for i in conn.entries:
...@@ -19,7 +19,7 @@ def group_list(): ...@@ -19,7 +19,7 @@ def group_list():
@bp.route("/<int:gid>") @bp.route("/<int:gid>")
def group_show(gid): def group_show(gid):
conn = service_conn() conn = get_conn()
conn.search(current_app.config["LDAP_BASE_GROUPS"], '(&(objectclass=groupOfUniqueNames)(gidNumber={}))'.format((escape_filter_chars(gid)))) conn.search(current_app.config["LDAP_BASE_GROUPS"], '(&(objectclass=groupOfUniqueNames)(gidNumber={}))'.format((escape_filter_chars(gid))))
assert len(conn.entries) == 1 assert len(conn.entries) == 1
group = Group.from_ldap(conn.entries[0]) group = Group.from_ldap(conn.entries[0])
......
from .ldap import bp as ldap_bp from .ldap import bp as ldap_bp
from .ldap import service_conn, user_conn, escape_filter_chars, uid_to_dn, loginname_to_dn, get_next_uid from .ldap import get_conn, escape_filter_chars, uid_to_dn, loginname_to_dn, get_next_uid
bp = [ldap_bp] bp = [ldap_bp]
...@@ -16,11 +16,14 @@ def fix_connection(conn): ...@@ -16,11 +16,14 @@ def fix_connection(conn):
def service_conn(): def service_conn():
server = Server(current_app.config["LDAP_SERVICE_URL"], get_info=ALL) server = Server(current_app.config["LDAP_SERVICE_URL"], get_info=ALL)
conn = Connection(server, current_app.config["LDAP_SERVICE_BIND_DN"], current_app.config["LDAP_SERVICE_BIND_PASSWORD"], auto_bind=True) conn = Connection(server, current_app.config["LDAP_SERVICE_BIND_DN"], current_app.config["LDAP_SERVICE_BIND_PASSWORD"], auto_bind=True)
return fix_connection(conn)
def user_conn(): def user_conn():
pass pass
def get_conn():
conn = service_conn()
return fix_connection(conn)
def uid_to_dn(uid): def uid_to_dn(uid):
conn = service_conn() conn = service_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format(escape_filter_chars(uid))) conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format(escape_filter_chars(uid)))
......
...@@ -35,14 +35,14 @@ class User(): ...@@ -35,14 +35,14 @@ class User():
@classmethod @classmethod
def from_ldap_dn(cls, dn): def from_ldap_dn(cls, dn):
conn = ldap.service_conn() conn = ldap.get_conn()
conn.search(dn, '(objectClass=person)') conn.search(dn, '(objectClass=person)')
if not len(conn.entries) == 1: if not len(conn.entries) == 1:
return None return None
return User.from_ldap(conn.entries[0]) return User.from_ldap(conn.entries[0])
def to_ldap(self, new): def to_ldap(self, new):
conn = ldap.service_conn() conn = ldap.get_conn()
if new: if new:
attributes= { attributes= {
'uidNumber': ldap.get_next_uid(), 'uidNumber': ldap.get_next_uid(),
......
...@@ -4,14 +4,14 @@ from uffd.navbar import register_navbar ...@@ -4,14 +4,14 @@ from uffd.navbar import register_navbar
from uffd.csrf import csrf_protect from uffd.csrf import csrf_protect
from .models import User from .models import User
from uffd.ldap import service_conn, escape_filter_chars from uffd.ldap import get_conn, escape_filter_chars
bp = Blueprint("user", __name__, template_folder='templates', url_prefix='/user/') bp = Blueprint("user", __name__, template_folder='templates', url_prefix='/user/')
@bp.route("/") @bp.route("/")
@register_navbar('Users', icon='users', blueprint=bp) @register_navbar('Users', icon='users', blueprint=bp)
def user_list(): def user_list():
conn = service_conn() conn = get_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(objectclass=person)') conn.search(current_app.config["LDAP_BASE_USER"], '(objectclass=person)')
users = [] users = []
for i in conn.entries: for i in conn.entries:
...@@ -25,7 +25,7 @@ def user_show(uid=None): ...@@ -25,7 +25,7 @@ def user_show(uid=None):
user = User() user = User()
ldif = '<none yet>' ldif = '<none yet>'
else: else:
conn = service_conn() conn = get_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid)))) conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid))))
assert len(conn.entries) == 1 assert len(conn.entries) == 1
user = User.from_ldap(conn.entries[0]) user = User.from_ldap(conn.entries[0])
...@@ -35,7 +35,7 @@ def user_show(uid=None): ...@@ -35,7 +35,7 @@ def user_show(uid=None):
@bp.route("/<int:uid>/update", methods=['POST']) @bp.route("/<int:uid>/update", methods=['POST'])
@bp.route("/new", methods=['POST']) @bp.route("/new", methods=['POST'])
def user_update(uid=False): def user_update(uid=False):
conn = service_conn() conn = get_conn()
if uid: if uid:
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid)))) conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid))))
assert len(conn.entries) == 1 assert len(conn.entries) == 1
...@@ -62,7 +62,7 @@ def user_update(uid=False): ...@@ -62,7 +62,7 @@ def user_update(uid=False):
@csrf_protect @csrf_protect
@bp.route("/<int:uid>/del") @bp.route("/<int:uid>/del")
def user_delete(uid): def user_delete(uid):
conn = service_conn() conn = get_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid)))) conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid))))
assert len(conn.entries) == 1 assert len(conn.entries) == 1
if conn.delete(conn.entries[0].entry_dn): if conn.delete(conn.entries[0].entry_dn):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment