@@ -824,13 +824,13 @@ def get_queryset(self, **kwargs):
824824 return self .model .objects .filter (is_active = True , is_superuser = True )
825825
826826 def create (self , request , ** kwargs ):
827- user = get_object_or_404 (User , username = request .data ['username' ])
827+ user = get_object_or_404 (self . model , username = request .data ['username' ])
828828 user .is_superuser = user .is_staff = True
829829 user .save (update_fields = ['is_superuser' , 'is_staff' ])
830830 return Response (status = status .HTTP_201_CREATED )
831831
832832 def destroy (self , request , ** kwargs ):
833- user = get_object_or_404 (User , username = kwargs ['username' ])
833+ user = get_object_or_404 (self . model , username = kwargs ['username' ])
834834 user .is_superuser = user .is_staff = False
835835 user .save (update_fields = ['is_superuser' , 'is_staff' ])
836836 return Response (status = status .HTTP_204_NO_CONTENT )
@@ -844,3 +844,19 @@ class UserView(BaseDryccViewSet):
844844
845845 def get_queryset (self ):
846846 return self .model .objects .exclude (username = 'AnonymousUser' )
847+
848+ def enable (self , request , ** kwargs ):
849+ if request .user .username == kwargs ['username' ]:
850+ return Response (status = status .HTTP_423_LOCKED )
851+ user = get_object_or_404 (self .model , username = kwargs ['username' ])
852+ user .is_active = True
853+ user .save (update_fields = ['is_active' , ])
854+ return Response (status = status .HTTP_204_NO_CONTENT )
855+
856+ def disable (self , request , ** kwargs ):
857+ if request .user .username == kwargs ['username' ]:
858+ return Response (status = status .HTTP_423_LOCKED )
859+ user = get_object_or_404 (self .model , username = kwargs ['username' ])
860+ user .is_active = False
861+ user .save (update_fields = ['is_active' , ])
862+ return Response (status = status .HTTP_204_NO_CONTENT )
0 commit comments