Implement delete realm, Close #12
This commit is contained in:
parent
28a2cbe964
commit
9a18170457
@ -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'),
|
||||
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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 %}
|
||||
|
||||
Reference in New Issue
Block a user