diff --git a/templates/account/delete.html b/templates/account/delete.html
new file mode 100644
index 0000000..43e2680
--- /dev/null
+++ b/templates/account/delete.html
@@ -0,0 +1,37 @@
+{% extends 'base.html' %}
+{% load static %}
+
+{% block title %} Удаление пользователя {{ target_user.login }} {% endblock %}
+
+{% block header-title %} Удаление пользователя {{ target_user.login }} {% endblock %}
+
+{% block styles %}
+
+{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/templates/account/list.html b/templates/account/list.html
index 95f9ee4..f181536 100644
--- a/templates/account/list.html
+++ b/templates/account/list.html
@@ -23,12 +23,9 @@
{% endblock %}
-{% block header %}
- Просмотр аккаунтов
-{% endblock %}
+{% block header-title %} Просмотр аккаунтов {% endblock %}
{% block content %}
-
Добавить нового пользователя можно тут.
diff --git a/templates/base.html b/templates/base.html
index e4616bb..da22d4e 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -15,7 +15,8 @@
{% block header-title %} Мониторинг водозаборного узла {% endblock %}
{% if user.is_authenticated %}
{% endif %}
diff --git a/users/urls.py b/users/urls.py
index 71a77b1..c3e006b 100644
--- a/users/urls.py
+++ b/users/urls.py
@@ -25,5 +25,5 @@ urlpatterns = [
path('list', views.view_list, name='accounts-list'),
path('view/', views.view_account, name='account-view'),
path('change-password', views.view_change_password, name='change-password'),
- path('delete/', views.default_view, name='delete-account'),
+ path('delete/', views.view_delete, name='delete-account'),
]
diff --git a/users/views.py b/users/views.py
index 337fc06..f0701a1 100644
--- a/users/views.py
+++ b/users/views.py
@@ -10,10 +10,6 @@ from .models import User
from .forms import UserRegisterForm
-def default_view(request, *args, **kwargs):
- return HttpResponse('Not implemented!')
-
-
def view_logout(request):
logout(request)
# перенаправляем на страницу авторизации
@@ -68,7 +64,7 @@ def view_account(request, username=None):
except:
return Http404()
else:
- raise PermissionError()
+ return HttpResponseForbidden()
return render(request, 'account/view.html', {'view_user': view_user})
@@ -147,3 +143,22 @@ def view_change_password(request):
@permission_required(perm='users.view_user', raise_exception=True)
def view_list(request):
return render(request, 'account/list.html', {'users': User.objects.order_by('login')})
+
+
+@login_required
+@permission_required(perm='users.delete_user', raise_exception=True)
+def view_delete(request, username):
+ if username != request.user.login:
+ try:
+ target_user = User.objects.get_by_natural_key(username)
+ if request.method == 'GET':
+ return render(request, 'account/delete.html', {'target_user': target_user})
+ elif request.method == 'POST':
+ target_user.delete()
+ return HttpResponseRedirect('/account/list')
+ else:
+ return HttpResponseBadRequest()
+ except:
+ return Http404()
+ else:
+ return HttpResponseForbidden()