扩展django-cms工具栏登录

时间:2015-06-30 15:28:29

标签: django django-cms django-authentication

我正在使用django / django-cms开发一个网站,并希望通过其他一些自定义验证(LDAP)扩展工具栏登录。问题是我不太确定如何扩展此表单的验证。我在django-cms包中找到了文件toolbar.py

class CMSToolbarLoginForm(AuthenticationForm):
    username = forms.CharField(label=_("Username"), max_length=100)

    def __init__(self, *args, **kwargs):
        kwargs['prefix'] = kwargs.get('prefix', 'cms')
        super(CMSToolbarLoginForm, self).__init__(*args, **kwargs)

根据我的理解,此表单从django扩展AuthenticationForm并添加自己的自定义用户名字段。这是对的吗?

另外,如何在失败时将此表单重定向到另一个视图?就像用户在db和user / pass匹配然后登录一样,但如果用户不在db中重定向到另一个视图,那么我可以从我的ldap目录中检索用户?

1 个答案:

答案 0 :(得分:0)

通常,您需要启用自定义登录后端,以便进行身份验证。没有必要覆盖任何形式。

您可以使用django-auth-ldap并添加您的设置:

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)

您可以在https://pythonhosted.org/django-auth-ldap/install.html

了解详情