使您可以使用电子邮件地址登录。
项目描述
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.memberprofile 和 Products.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]。
贡献者
Robin Harms Oredsson,此产品的想法。
David Glick,GenericSetup 内容以及更改电子邮件的限制。
Tom Switzer,<http://plone.org/products/betahaus.emaillogin/issues/1>`_,LDAP 补丁
项目详情
betahaus.emaillogin-0.6.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3ac60d69138382a2b1e9e4d012dd016f401a862c1cda7db92151a0b6f968f4bc |
|
MD5 | b89b4ff9fdb9690eeed158092752a4bc |
|
BLAKE2b-256 | f6c1566e4922312a2fcc7ea8fc07663b0d85aadcfabcc446c0f70018107fb1ad |