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
|
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'),
|
||||||
|
|
||||||
|
|||||||
@ -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):
|
||||||
|
|||||||
@ -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 %}
|
||||||
|
|||||||
Reference in New Issue
Block a user