繁体   English   中英

生产中的Django LDAP认证

[英]Django LDAP Authentication in Production

我正在使用LDAP身份验证模块登录到django应用程序。 这可以很好地登录,但是我在使用以下功能时遇到了麻烦:

request.user.is_authenticated():

这在我的开发机(也使用ldap)上工作正常,但在生产时不会返回与用户相关的信息。 特别是,我正在基于用户的主键检索一组事件。

eventList = Event.objects.filter(employee_id = request.user.pk)

这些事件存在(它们在另一视图中呈现),我很确定这是一个声明。 值得注意的是,尽管我将User细分为以下类别,但是创建了员工(我已经在管理界面中选中了):

class Employee(models.Model):
    # This field is required.
    user = models.OneToOneField(User)
    manager_id = models.ForeignKey('self', related_name = 'employees', null = True)

    def __unicode__(self):
     return self.user.username

def create_user_profile(sender, **kwargs):
    """When creating a new user, make an employee profile too."""
    u = kwargs["instance"]
    if not Employee.objects.filter(user = u):
        Employee(user=u).save()

post_save.connect(create_user_profile, sender = User)

有人可以帮忙吗?

这取决于我的查询。 基本上,原始查询假设每个Employee和User对象都具有相同的PK。 在开发中这是可以的,但由于密钥不匹配,因此在生产中无法使用。

用以下已解决的问题替换原始查询:

    employee = request.user.employee
    eventList = Event.objects.filter(employee_id = employee.pk)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM