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."""