diff --git a/dusken/api/member.py b/dusken/api/member.py index 939ee6d..d6a4363 100644 --- a/dusken/api/member.py +++ b/dusken/api/member.py @@ -17,7 +17,7 @@ class MemberResource(ModelResource): queryset = Member.objects.all() resource_name = 'member' list_allowed_methods = [ 'get', 'post' ] - detail_allowed_methods = [ 'get', 'patch' ] + detail_allowed_methods = [ 'get', 'patch', 'delete' ] authorization = Authorization() # TODO: for dev (VERY INSECURE) excludes = [ 'date_joined', 'password', 'is_active', 'is_staff', 'is_superuser', 'last_login' ] filtering = { @@ -61,5 +61,15 @@ class MemberResource(ModelResource): # We can't change username. raise ImmediateHttpResponse(HttpForbidden("You can't change your username.")) elif key == 'password': - bundle.obj.set_password(value) + bundle.obj.set_password(value) #TODO Set password only once we know that we can trust the request. return bundle + + def post(self, request, **kwargs): + pass #TODO Activate user or... + return super(MemberResource, self).post(request, **kwargs) + + def delete_detail(self, request, **kwargs): + member = Member.objects.get(kwargs['pk']) + member.is_active = False + member.save() + return 204 diff --git a/dusken/tests/member.py b/dusken/tests/member.py index bbf310a..2c666dc 100644 --- a/dusken/tests/member.py +++ b/dusken/tests/member.py @@ -41,24 +41,6 @@ class MemberTest(ResourceTestCase): self.all_members_url = '/api/v1/member/' self.member_url = self.all_members_url + '{}/'.format(self.member.pk) - def test_check_request_types(self): - """ - Tests that the endpoint responds to correct types of requests. - """ - # /api/v1/member/ - self.assertHttpOK(self.api_client.get(self.all_members_url)) - self.assertHttpCreated(self.api_client.post(self.all_members_url)) - self.assertHttpMethodNotAllowed(self.api_client.patch(self.all_members_url, data={})) - self.assertHttpMethodNotAllowed(self.api_client.put(self.all_members_url)) - self.assertHttpMethodNotAllowed(self.api_client.delete(self.all_members_url)) - - # /api/v1/member// - self.assertHttpOK(self.api_client.get(self.member_url)) - self.assertHttpMethodNotAllowed(self.api_client.post(self.member_url)) - self.assertHttpAccepted(self.api_client.patch(self.member_url, data={})) - self.assertHttpMethodNotAllowed(self.api_client.put(self.member_url)) - self.assertHttpMethodNotAllowed(self.api_client.delete(self.member_url)) - def test_get_member(self): """ Tests that we can get a premade user correctly.