企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 后端 `django_auth_ldap.backend.populate_user` 这是客户端应该执行用户对象的额外定制时发送的`Django`信号。 它是在用户通过身份验证并且后端完成填充之后发送的,并且在它被保存之前发送。 客户可以借此机会填充其他模型字段,可能基于`ldap_user.attrs`。 该信号有两个关键字参数:`user`是`User`对象,`ldap_user`与`user.ldap_user`相同。 发件人是`LDAPBackend`类。 `django_auth_ldap.backend.ldap_error` 这是我们收到`ldap.LDAPError`异常时发送的`Django`信号。 信号有三个关键字参数: 上下文:“`authenticate`”,“`get_group_permissions`”或“`populate_user`”之一,指示捕获异常时调用哪个`API`。 用户:正在处理的`Django`用户(如果可用)。 异常:`LDAPError`对象本身。 发件人是`LDAPBackend`类(或子类)。 类`django_auth_ldap.backend.LDAPBackend` LDAPBackend有一个可以直接调用的方法,有几个可以在子类中重写。 `settings_prefix` 我们所有的`Django`设置的前缀。默认情况下,这是`'AUTH_LDAP`_',但子类可以覆盖这个。当不同的子类使用不同的前缀时,它们都可以独立安装和运行。 默认设置 一个默认设置的字典。在`LDAPBackend`中这是空的,但子类可以使用将覆盖内置的默认值的值来填充它。请注意,这些键应该省略“`AUTH_LDAP_`”前缀。 `populate_user(username)` 为给定的`LDAP`用户名填充`Django`用户。这将使用默认凭据连接到`LDAP`目录,并尝试填充指定的`Django`用户,就像他们刚刚登录一样。`AUTH_LDAP_ALWAYS_UPDATE_USER`被忽略(假定为`True`)。 `get_user_model(self)` 返回`get_or_build_user()`将实例化的用户模型。默认情况下,自定义用户模型将被尊重。为了替代代理模型,子类很可能会覆盖这个。 `authenticate_ldap_user(self, ldap_user, password)` 给定一个`LDAP`用户对象和密码,认证用户并返回一个`Django`用户对象。请参阅定制认证。 `get_or_build_user(self, username, ldap_user)` 给定一个用户名和一个`LDAP`用户对象,这必须返回一个有效的`Django`用户模型实例。 `username`参数已经通过`ldap_to_django_username()`传递。 您可以通过`ldap_user.dn`和`ldap_user.attrs`获取有关`LDAP`用户的信息。 返回值必须与`get_or_create()`相同 - 一个(实例,创建的)二元组 - 虽然实例不需要保存。 默认的实现是用大小写不敏感的查询来查找用户名。 如果找不到,`get_user_model()`返回的模型将使用小写的用户名创建。 直到发送了`django_auth_ldap.backend.populate_user`信号之后,新用户才会被保存到数据库中。 一个子类可以重写这个以使`LDAP`用户以任何喜欢的方式关联到`Django`用户。 `get_or_create_user(self, username, ldap_user)` 警告 已过时。 这是支持向后兼容,但将在未来版本中删除。 像`get_or_build_user()`一样,但始终返回保存的模型实例。 如果你重写这个,请转换为新的方法。 `ldap_to_django_username(username)` 根据给定的LDAP用户名(这是用户输入的内容)返回一个有效的Django用户名。 默认情况下,用户名将保持不变。 这可以被子类覆盖。 `django_to_ldap_username(username)` `ldap_to_django_username()`的逆函数。 如果这与`ldap_to_django_username()`不对称,则行为是未定义的。