跳转到主要内容

使您可以使用电子邮件地址登录。

项目描述

betahaus.emaillogin

内容

什么是betahaus.emaillogin?

电子邮件地址的使用越来越普遍,但Plone没有方便的方法使用用户注册的电子邮件地址进行登录。

betahaus.emaillogin 使您可以使用用户资料中指定的电子邮件地址登录。

Plone有一个非常强大且可修改的认证系统,称为可插拔认证服务 (PAS)。正如其名所示,该系统是可插拔的,因此可以很容易地通过第三方产品(如本产品)进行扩展。

安装

buildout
  • 在适当的buildout配置文件中,向eggs和zcml中添加 betahaus.emaillogin 条目。

  • 重新运行buildout。

  • 通过 portal_quickinstaller 或 plone 中的站点设置进行安装。

它是如何工作的

betahaus.emaillogin 在安装时将首先出现在提取插件的列表中。如果指定了电子邮件地址并且找到了相应的用户,则请求中的电子邮件地址将被替换为用户名,然后模拟失败的提取以继续正常登录流程。

性能

当前的默认实现通过迭代所有PAS用户来查找电子邮件。这对于具有大量用户的大型网站来说是可以的。然而,当用户数量增加时,这种方法在计算上非常昂贵且速度慢。如果您遇到性能问题,可以应用名为 extended 的 GenericSetup 配置文件。此扩展添加了一个自定义的 email->userid 目录,从而可以使用电子邮件地址实现更快的用户标识查找。

通过 portal_setup -> 导入 -> 选择并应用配置文件 Extended performance for EmailLogin Support 来应用扩展配置文件。

如果您想卸载此扩展配置文件,只需从站点根目录中删除 email_catalog,emaillogin 将回退到默认的查找实现。

扩展

您可以编写一个自定义电子邮件查找方法,该方法将用于将电子邮件翻译为一个或多个用户名。考虑的使用案例是基于内容类型的成员实现,电子邮件位于目录中,无论是 portal_catalog 还是自定义目录。两个例子是 betahaus.memberprofileProducts.remember。然后通过重用已存储的目录数据,无需另一个目录。要实现此功能,您需要注册一个实现 IEmailPluginExtension 接口的实用工具。警告:当使用基于内容类型的成员实现时,Plone 默认在第一次登录时创建成员内容类型。这可能导致初始登录时出现问题,因为信息尚未出现在 portal_catalog 中。

实用工具示例

from zope.interface import implements
from betahaus.emaillogin.interfaces import IEmailPluginExtension
class Dummy(object):
    implements(IEmailPluginExtension)

    def getUserNames(self, context, login_email, get_all = False):
        usernames = context.custom_catalog(email = login_email)
        if usernames and get_all == False:
             return usernames[0].username
        return [x.username for x in usernames]

dummy_extension = Dummy()

Zcml 注册示例

<utility
    provides="betahaus.emaillogin.interfaces.IEmailPluginExtension"
    component="betahaus.emaillogin.tests.test_extension.dummy_extension"
    permission="zope.Public"
    />

问题

可以在 plone.org 产品页面上 问题跟踪器 中提交问题。更新到与 Plone 4 兼容性后,可能引入了一些错误。所有针对 Plone 3 的测试都通过,但如果您发现任何错误,请不要犹豫,提交它。

变更历史

0.6.1 (2012-02-16)

  • 删除未使用的导入 - 特别是那些在 Plone 4.1.4 上失败的那个。 [ritz]

0.6 (2011-04-11)

  • 修复了重置密码时格式正确的非存在电子邮件的 bug,感谢 James Whisnant。 [mlundwall]

  • 添加了 zcml 自动缩写。 [mlundwall]

  • 修复了一些导入错误,这些错误导致在有人输入不存在的电子邮件时引发异常。 [robinharms]

  • 支持 Plone 4。 [mlundwall]

0.5 (2009-12-28)

  • 修复了删除用户时的 bug。 [mlundwall]

  • 删除具有重复电子邮件地址的用户时没有警告。 [mlundwall]

  • 编写自定义电子邮件到用户名实用工具的可能性。 [mlundwall]

  • 支持 LDAP。感谢 Tom Switzer 提供的补丁(http://plone.org/products/betahaus.emaillogin/issues/1)[mlundwall]

0.4 (2009-09-17)

  • 添加了对一些无法从 Plone 重新使用的文本的 i18n。 [mlundwall]

  • 修复了无法通过电子邮件检索忘记的密码的问题。感谢 Winn 报告。 [mlundwall]

0.3 (2009-07-27)

  • 当在 prefs_users_overview 中更改电子邮件时,向管理员添加了警告。 [mlundwall]

  • 添加了可选的自定义电子邮件目录,以提高大量用户时的性能。 [mlundwall]

0.2 (2009-05-22)

  • 修复了 personalize_form.vpy 中的 bug,该 bug 阻止了编辑用户资料。 [davisagli]

0.1 (2009-05-11)

  • 添加了自定义 personalize_form.vpy 以防止将现有用户的电子邮件地址更改为已存在的电子邮件地址。 [davisagli]

  • 避免在其他配置文件应用时应用自定义导入步骤。 [davisagli]

  • 安装时重复电子邮件警告 [mlundwall]

  • 在注册时检查,不允许多个用户使用相同的电子邮件 [mlundwall]

  • 已移至集体。 [mlundwall]

  • 使用 ZopeSkel 创建了配方 [Robin Harms Oredsson]。

贡献者

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

betahaus.emaillogin-0.6.1.tar.gz (32.8 kB 查看散列)

上传时间 源代码

由以下机构支持