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():
@classmethod
def from_ldap_dn(cls, dn):
conn = ldap.service_conn()
conn = ldap.get_conn()
conn.search(dn, '(objectClass=groupOfUniqueNames)')
if not len(conn.entries) == 1:
return None
......
from flask import Blueprint, current_app, render_template
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
......@@ -10,7 +10,7 @@ bp = Blueprint("group", __name__, template_folder='templates', url_prefix='/grou
@bp.route("/")
@register_navbar('Groups', icon='layer-group', blueprint=bp)
def group_list():
conn = service_conn()
conn = get_conn()
conn.search(current_app.config["LDAP_BASE_GROUPS"], '(objectclass=groupOfUniqueNames)')
groups = []
for i in conn.entries:
......@@ -19,7 +19,7 @@ def group_list():
@bp.route("/<int: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))))
assert len(conn.entries) == 1
group = Group.from_ldap(conn.entries[0])
......
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]
......@@ -16,11 +16,14 @@ def fix_connection(conn):
def service_conn():
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)
return fix_connection(conn)
def user_conn():
pass
def get_conn():
conn = service_conn()
return fix_connection(conn)
def uid_to_dn(uid):
conn = service_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format(escape_filter_chars(uid)))
......
......@@ -35,14 +35,14 @@ class User():
@classmethod
def from_ldap_dn(cls, dn):
conn = ldap.service_conn()
conn = ldap.get_conn()
conn.search(dn, '(objectClass=person)')
if not len(conn.entries) == 1:
return None
return User.from_ldap(conn.entries[0])
def to_ldap(self, new):
conn = ldap.service_conn()
conn = ldap.get_conn()
if new:
attributes= {
'uidNumber': ldap.get_next_uid(),
......
......@@ -4,14 +4,14 @@ from uffd.navbar import register_navbar
from uffd.csrf import csrf_protect
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.route("/")
@register_navbar('Users', icon='users', blueprint=bp)
def user_list():
conn = service_conn()
conn = get_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(objectclass=person)')
users = []
for i in conn.entries:
......@@ -25,7 +25,7 @@ def user_show(uid=None):
user = User()
ldif = '<none yet>'
else:
conn = service_conn()
conn = get_conn()
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid))))
assert len(conn.entries) == 1
user = User.from_ldap(conn.entries[0])
......@@ -35,7 +35,7 @@ def user_show(uid=None):
@bp.route("/<int:uid>/update", methods=['POST'])
@bp.route("/new", methods=['POST'])
def user_update(uid=False):
conn = service_conn()
conn = get_conn()
if uid:
conn.search(current_app.config["LDAP_BASE_USER"], '(&(objectclass=person)(uidNumber={}))'.format((escape_filter_chars(uid))))
assert len(conn.entries) == 1
......@@ -62,7 +62,7 @@ def user_update(uid=False):
@csrf_protect
@bp.route("/<int:uid>/del")
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))))
assert len(conn.entries) == 1
if conn.delete(conn.entries[0].entry_dn):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment