добавил удаление пользователей, немного косметических изменений

This commit is contained in:
2024-01-25 18:16:59 +03:00
parent 1c16ba2889
commit 07f8b967a8
5 changed files with 61 additions and 11 deletions

View File

@@ -25,5 +25,5 @@ urlpatterns = [
path('list', views.view_list, name='accounts-list'),
path('view/<str:username>', views.view_account, name='account-view'),
path('change-password', views.view_change_password, name='change-password'),
path('delete/<str:username>', views.default_view, name='delete-account'),
path('delete/<str:username>', views.view_delete, name='delete-account'),
]

View File

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