add new admin user delete api #122

Merged
xoliqberdiyev merged 1 commits from behruz into main 2026-04-28 12:48:46 +00:00
2 changed files with 18 additions and 0 deletions
Showing only changes of commit 172ddf4da4 - Show all commits

View File

@@ -9,6 +9,7 @@ from .views import RegisterView, ResetPasswordView, MeView, ChangePasswordView,
from rest_framework.routers import DefaultRouter
from .views.permission import PermissionToActionViewSet, PermissionToTabViewSet, PermissionViewSet, RoleViewSet
from core.apps.accounts.views.user import DeleteAdminUserApiView
router = DefaultRouter()
router.register("auth", RegisterView, basename="auth")
@@ -31,4 +32,5 @@ urlpatterns = [
path("admin-user/list/", AdminUserListApiView.as_view(), name="admin-user-list"),
path("admin/create/", AdminCreateAPIView.as_view(), name="user-create"),
path("admin/update/<int:pk>/", AdminUpdateAPIView.as_view(), name="user-update"),
path('user/admin/<int:pk>/delete/', DeleteAdminUserApiView.as_view(), name='user-delete')
]

View File

@@ -79,3 +79,19 @@ class AdminUpdateAPIView(generics.GenericAPIView):
serializer.save()
return Response(serializer.data, status=200)
class DeleteAdminUserApiView(APIView):
permission_classes = [IsAuthenticated]
def delete(self, request, pk):
if request.user.role != RoleChoice.SUPERUSER:
return Response({'detail': 'Forbidden'}, status=403)
user = get_object_or_404(User, pk=pk)
if user.role != RoleChoice.ADMIN:
return Response({'detail': 'This user is not an admin'}, status=400)
user.delete()
return Response(status=204)