Implement delete realm, Close #12

This commit is contained in:
Götz 2019-03-29 16:18:01 +01:00
parent 28a2cbe964
commit 9a18170457
3 changed files with 29 additions and 4 deletions

View File

@ -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/<int:id>/', views.realm_detail, name='realm-detail'),
path('realm/<int:id>/users/', views.realm_user, name='realm-user-list'),
path('realm/<int:id>/groups/', views.realm_groups, name='realm-group-list'),
@ -11,6 +11,8 @@ urlpatterns = [
path('realm/<int:realm_id>/user/', views.user_add, name='realm-user-add'),
path('realm/<int:realm_id>/group/', views.group_add, name='realm-group-add'),
path('realm/<int:realm_id>/delete/', views.realm_delete, name='realm-delete'),
path('user/list/', views.userlist, name='user-list'),
path('user/get/<str:dn>/', views.user_detail, name='user'),

View File

@ -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):

View File

@ -8,6 +8,7 @@
</form>
<h2>Realms</h2>
{% for realm in realms %}
<p><a href="{{ url('realm-detail', args=[realm.id]) }}">{{ realm.name }}</a></p>
<p><a href="{{ url('realm-detail', args=[realm.id]) }}">{{ realm.name }}</a> <a
href="{{ url('realm-delete', args=[realm.id]) }}">Delete</a></p>
{% endfor %}
{% endblock %}