Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)