diff --git a/account_manager/urls.py b/account_manager/urls.py index f2df5b8..0dab401 100644 --- a/account_manager/urls.py +++ b/account_manager/urls.py @@ -2,7 +2,7 @@ from django.urls import path from . import views urlpatterns = [ - path('realm/', views.realm, name='realm-home'), + path('realm/', views.realm_home, name='realm-home'), path('realm//', views.realm_detail, name='realm-detail'), path('realm//users/', views.realm_user, name='realm-user-list'), path('realm//groups/', views.realm_groups, name='realm-group-list'), @@ -11,6 +11,8 @@ urlpatterns = [ path('realm//user/', views.user_add, name='realm-user-add'), path('realm//group/', views.group_add, name='realm-group-add'), + path('realm//delete/', views.realm_delete, name='realm-delete'), + path('user/list/', views.userlist, name='user-list'), path('user/get//', views.user_detail, name='user'), diff --git a/account_manager/views.py b/account_manager/views.py index cbd0b79..e7e521a 100644 --- a/account_manager/views.py +++ b/account_manager/views.py @@ -2,7 +2,7 @@ from django.shortcuts import render, redirect from .models import LdapGroup, LdapUser from .forms import AddLDAPUserForm, AddLDAPGroupForm, RealmAddForm, RealmUpdateForm from account_helper.models import Realm -from django.contrib.auth.models import Group +from django.contrib.auth.models import Group, User from django.contrib.auth.decorators import login_required @@ -22,7 +22,7 @@ def is_realm_admin(view_func): @login_required -def realm(request): +def realm_home(request): user = request.user if not user.is_superuser: realms = Realm.objects.filter(admin_group__user__username__contains=user.username) @@ -47,6 +47,28 @@ def realm(request): return render(request, 'realm/realm_home.jinja2', {'realms': realms, 'form': form}) +def realm_delete(request, realm_id): + realm = Realm.objects.get(id=realm_id) + LdapUser.base_dn = realm.ldap_base_dn + LdapGroup.base_dn = realm.ldap_base_dn + ldap_users = LdapUser.objects.all() + ldap_usernames = [user.username for user in ldap_users] + ldap_groups = LdapGroup.objects.all() + ldap_groupnames = [group.name for group in ldap_groups] + django_user = User.objects.filter(username__contains=ldap_usernames) + django_groups = Group.objects.filter(name__contains=ldap_groupnames) + for user in django_user: + user.delete() + for group in django_groups: + group.delete() + for user in ldap_users: + user.delete() + for group in ldap_groups: + group.delete() + realm.delete() + return redirect('realm-home') + + @login_required @is_realm_admin def realm_detail(request, id): diff --git a/templates/realm/realm_home.jinja2 b/templates/realm/realm_home.jinja2 index 4bfdfaa..0acb8ee 100644 --- a/templates/realm/realm_home.jinja2 +++ b/templates/realm/realm_home.jinja2 @@ -8,6 +8,7 @@

Realms

{% for realm in realms %} -

{{ realm.name }}

+

{{ realm.name }} Delete

{% endfor %} {% endblock %}