Python LDAP验证的DRF模型权限失败';d用户

Python LDAP验证的DRF模型权限失败';d用户,python,django,django-rest-framework,django-auth-ldap,Python,Django,Django Rest Framework,Django Auth Ldap,我正在开发一个基于DRF的应用程序,需要LDAP身份验证。我遇到了一个问题,通过这个问题,我看到了直接通过DRF API登录的用户和从外部应用程序(即Curl/Postman)访问它的用户的不同行为 在应用程序中,一旦登录,我将提供一系列用户可以访问的视图/url,即下面查看“示例”的url: http://:8000/api/samples 我已使用自定义权限类将DjangoModelPermissions应用于我的示例视图,该视图需要模型权限才能查看模型,即: class HasModelP

我正在开发一个基于DRF的应用程序,需要LDAP身份验证。我遇到了一个问题,通过这个问题,我看到了直接通过DRF API登录的用户和从外部应用程序(即Curl/Postman)访问它的用户的不同行为

在应用程序中,一旦登录,我将提供一系列用户可以访问的视图/url,即下面查看“示例”的url:

http://:8000/api/samples

我已使用自定义权限类将DjangoModelPermissions应用于我的示例视图,该视图需要模型权限才能查看模型,即:

class HasModelPermission(permissions.DjangoModelPermissions):
    perms_map = {
        'GET': ['%(app_label)s.read_%(model_name)s'],
        'OPTIONS': ['%(app_label)s.read_%(model_name)s'],
        'HEAD': ['%(app_label)s.read_%(model_name)s'],
        'POST': ['%(app_label)s.add_%(model_name)s'],
        'PUT': ['%(app_label)s.change_%(model_name)s'],
        'PATCH': ['%(app_label)s.change_%(model_name)s'],
        'DELETE': ['%(app_label)s.delete_%(model_name)s'],
    }

class SampleView(generics.ListAPIView):
    queryset = Sample.objects.all()
    serializer_class = SampleSerializer
    permission_classes = [HasModelPermission]
根据,我已经用AUTH_ldap_FIND_GROUP_PERMS=true配置了我的ldap设置,并为我关心的ldap组创建了匹配的DJANGO组,并且我已经为这些组分配了模型权限。这正如我所期望的那样工作-只有拥有查看列表权限的组成员用户才能看到它

我看到的关键问题是,虽然内部DRFAPI正确地确定了用户权限,但外部登录然后提交GET请求的用户被确定没有查看权限

我已经通过一些调试确定了原因是以下代码中的测试失败,这些代码来自django_auth_ldap.backend.py,它是从DRF中的视图调度程序调用的,基本上,当我从内置的DRF API访问url时,“hasattr(用户,'ldap_用户'):“当我通过邮递员或curl等连接时,返回true,”hasattr(用户,'ldap_user'):“返回false-显然意味着没有确定存在任何用户权限

def get_group_permissions(self, user, obj=None):
    if not hasattr(user, 'ldap_user') and self.settings.AUTHORIZE_ALL_USERS:
        _LDAPUser(self, user=user)  # This sets user.ldap_user

    if hasattr(user, 'ldap_user'):
        permissions = user.ldap_user.get_group_permissions()
    else:
        permissions = set()

    return permissions
因此,我想最终我的问题是,我应该如何在来自远程端点的HTTP操作之间填充/维护user.ldap_user属性。(注意,我使用的是会话和令牌身份验证ATM).我猜我的问题更多的是在操作之间维护用户lda_用户属性数据,或者在每个后续操作中检索它