From 61364658210b18177ef5fe7061681ef4580d1e58 Mon Sep 17 00:00:00 2001 From: nd <git@notandy.de> Date: Fri, 7 Aug 2020 13:05:00 +0200 Subject: [PATCH] deleting a user removes the user from roles as well, closes #6 --- uffd/user/views_user.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/uffd/user/views_user.py b/uffd/user/views_user.py index 87923829..98931017 100644 --- a/uffd/user/views_user.py +++ b/uffd/user/views_user.py @@ -105,8 +105,18 @@ def delete(uid): 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]) + + session = db.session + roles = Role.query.all() + for role in roles: + if user.dn in role.member_dns(): + role.del_member(user) + if conn.delete(conn.entries[0].entry_dn): flash('Deleted user') + session.commit() else: flash('Could not delete user: {}'.format(conn.result['message'])) + session.rollback() return redirect(url_for('user.index')) -- GitLab