def put(self, request, *args, **kwargs): """ 修改密码 """ form = BusinessUserNoAuthResetPasswordForm(request.data) if not form.is_valid(): return Response({'Detail': form.errors}, status=status.HTTP_400_BAD_REQUEST) cld = form.cleaned_data if not self.is_valid_identifying_code(cld['username'], cld['identifying_code']): return Response( {'Detail': 'Identifying code is incorrect or expired'}, status=status.HTTP_400_BAD_REQUEST) user = self.get_user(cld['username']) if isinstance(user, Exception): return Response({'Detail': user.args}, status=status.HTTP_400_BAD_REQUEST) serializer = UserSerializer() try: serializer.update_password(user, cld) except Exception as e: return Response({'Detail': e.args}, status=status.HTTP_400_BAD_REQUEST) serializer_response = UserInstanceSerializer(user) return Response(serializer_response.data, status=status.HTTP_206_PARTIAL_CONTENT)
def put(self, request, *args, **kwargs): """ 忘记密码 """ form = SetPasswordForm(request.data) if not form.is_valid(): return Response({'Detail': form.errors}, status=status.HTTP_400_BAD_REQUEST) cld = form.cleaned_data is_valid, error_message = verify_identifying_code(cld) if not is_valid: return Response({'Detail': error_message}, status=status.HTTP_400_BAD_REQUEST) instance = self.get_object_by_username(cld['username_type'], cld['username']) if isinstance(instance, Exception): return Response({'Detail': instance.args}, status=status.HTTP_400_BAD_REQUEST) serializer = UserSerializer(instance) try: serializer.update_password(request, instance, cld) except Exception as e: return Response({'Detail': e.args}, status=status.HTTP_400_BAD_REQUEST) # serializer_response = UserInstanceSerializer(instance) return Response(serializer.data, status=status.HTTP_206_PARTIAL_CONTENT)
def patch(self, request, *args, **kwargs): """ 更改用户密码 """ form = UpdateUserPasswordWithLoginForm(request.data) if not form.is_valid(): return Response({'Detail': form.errors}, status=status.HTTP_400_BAD_REQUEST) cld = form.cleaned_data result = False error_message = None for username in [request.user.phone, request.user.email]: params_dict = { 'username': username, 'identifying_code': cld['identifying_code'] } is_valid, error_message = verify_identifying_code(params_dict) if is_valid: result = is_valid break if not result: return Response({'Detail': error_message}, status=status.HTTP_400_BAD_REQUEST) serializer = UserSerializer(request.user) try: serializer.update_password(request, request.user, cld) except Exception as e: return Response({'Detail': e.args}, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.data, status=status.HTTP_206_PARTIAL_CONTENT)
def put(self, request, *args, **kwargs): """ 修改密码 """ form = ChangePasswordForm(request.data) if not form.is_valid(): return Response(form.errors, status=status.HTTP_400_BAD_REQUEST) obj = BusinessUser.get_object(**{'pk': request.user.id}) serializer = UserSerializer(obj) try: serializer.update_password(obj, form.cleaned_data) except Exception as e: return Response({'Error': e.args}, status=status.HTTP_400_BAD_REQUEST) serializer_response = UserInstanceSerializer(obj) return Response(serializer_response.data, status=status.HTTP_206_PARTIAL_CONTENT)
def patch(self, request, *args, **kwargs): """ 更新密码 """ form = UpdatePasswordForm(request.data) if not form.is_valid(): return Response({'Detail': form.errors}, status=status.HTTP_400_BAD_REQUEST) cld = form.cleaned_data verify_params = {'username': request.user.phone, 'identifying_code': cld['identifying_code']} is_valid, error_message = verify_identifying_code(**verify_params) if not is_valid: return Response({'Detail': error_message}, status=status.HTTP_400_BAD_REQUEST) serializer = UserSerializer(request.user) try: serializer.update_password(request, request.user, cld['password']) except Exception as e: return Response({'Detail': e.args}, status=status.HTTP_400_BAD_REQUEST) return Response({'Detail': serializer.data}, status=status.HTTP_206_PARTIAL_CONTENT)