From f16ea84f1dd87ebb60e5f87f0d83bd4be4d13b30 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Wed, 27 May 2015 20:44:36 -0400 Subject: [PATCH] users: Delete LDAP user. --- actions/delete-ldap-user | 30 ++++++++++++++++++++++++++++++ plinth/modules/users/views.py | 6 ++++++ 2 files changed, 36 insertions(+) create mode 100755 actions/delete-ldap-user diff --git a/actions/delete-ldap-user b/actions/delete-ldap-user new file mode 100755 index 000000000..8bc3a7cf3 --- /dev/null +++ b/actions/delete-ldap-user @@ -0,0 +1,30 @@ +#!/bin/sh +# +# This file is part of Plinth. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +# Must be run as root. + +username="$1" + +ldapdelete -x -D 'cn=admin,dc=thisbox' -w $(cat /var/lib/plinth/ldap-admin) "uid=$username,ou=users,dc=thisbox" + +if [ $? -eq 0 ]; then + echo "Success: user deleted" +else + echo "Failed: user delete failed" + exit 1 +fi diff --git a/plinth/modules/users/views.py b/plinth/modules/users/views.py index edb8360c1..4687c3c51 100644 --- a/plinth/modules/users/views.py +++ b/plinth/modules/users/views.py @@ -135,6 +135,12 @@ class UserDelete(ContextMixin, DeleteView): messages.error(self.request, _('Deleting POSIX system user failed.')) + try: + actions.superuser_run('delete-ldap-user', [self.kwargs['slug']]) + except ActionError: + messages.error(self.request, + _('Deleting LDAP user failed.')) + return output