From 519cd26e13b3750c8ddff4e3a114327265bccea3 Mon Sep 17 00:00:00 2001 From: Julian Lobbes Date: Wed, 30 Nov 2022 00:19:04 +0100 Subject: [PATCH] fix(usermanager): create User and Group OUs if necessary --- lumi2/__init__.py | 2 -- lumi2/usermanager.py | 12 ++++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lumi2/__init__.py b/lumi2/__init__.py index 630809b..c2508a6 100644 --- a/lumi2/__init__.py +++ b/lumi2/__init__.py @@ -54,6 +54,4 @@ def create_app(test_config=None): api.add_resource(webapi.GroupMemberResource, '/api/group//member/') api.init_app(app) - # TODO create OUs - return app diff --git a/lumi2/usermanager.py b/lumi2/usermanager.py index 4a314e3..f9c7523 100644 --- a/lumi2/usermanager.py +++ b/lumi2/usermanager.py @@ -33,6 +33,18 @@ def _init_static_images(): +@bp.before_app_first_request +def _initialize_ldap_dit(): + """Creates the OUs for users and groups if they do not exist yet.""" + + conn = ldap.get_connection() + if not ldap.ou_exists(conn, current_app.config['LDAP_USERS_OU']): + ldap.create_ou(conn, current_app.config['LDAP_USERS_OU']) + if not ldap.ou_exists(conn, current_app.config['LDAP_GROUPS_OU']): + ldap.create_ou(conn, current_app.config['LDAP_GROUPS_OU']) + conn.unbind() + + @bp.route('/') def index(): """Home page view."""