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 from . import views
urlpatterns = [ 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>/', views.realm_detail, name='realm-detail'),
path('realm/<int:id>/users/', views.realm_user, name='realm-user-list'), path('realm/<int:id>/users/', views.realm_user, name='realm-user-list'),
path('realm/<int:id>/groups/', views.realm_groups, name='realm-group-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>/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>/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/list/', views.userlist, name='user-list'),
path('user/get/<str:dn>/', views.user_detail, name='user'), 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 .models import LdapGroup, LdapUser
from .forms import AddLDAPUserForm, AddLDAPGroupForm, RealmAddForm, RealmUpdateForm from .forms import AddLDAPUserForm, AddLDAPGroupForm, RealmAddForm, RealmUpdateForm
from account_helper.models import Realm 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 from django.contrib.auth.decorators import login_required
@ -22,7 +22,7 @@ def is_realm_admin(view_func):
@login_required @login_required
def realm(request): def realm_home(request):
user = request.user user = request.user
if not user.is_superuser: if not user.is_superuser:
realms = Realm.objects.filter(admin_group__user__username__contains=user.username) 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}) 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 @login_required
@is_realm_admin @is_realm_admin
def realm_detail(request, id): def realm_detail(request, id):

View File

@ -8,6 +8,7 @@
</form> </form>
<h2>Realms</h2> <h2>Realms</h2>
{% for realm in realms %} {% 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 %} {% endfor %}
{% endblock %} {% endblock %}