跳转到主要内容

允许使用电子邮件地址而不是登录名进行登录。

项目描述

collective.emaillogin 包 Readme

概述

此包允许使用电子邮件地址而不是登录名进行登录。它对 Plone 的成员工具和 memberdata 类进行了一些(相当巧妙的)修补,之后在保存时将电子邮件地址保存为成员的登录名。这使得成员可以使用他们的电子邮件地址而不是某些额外的 ID 进行登录,当电子邮件地址更改时,登录名也会随之更改。

从版本 1.0 开始,我们明确将电子邮件地址转换为小写。您应该可以使用任何大小写混合的字母进行登录。

安装

将其添加到您的 Plone 3 构建系统的 eggs 中。对于 Plone 3.2.x 或更早版本,还请将其添加到实例的 zcml 选项中。在您的 Plone 站点的“附加组件”(额外包)控制面板中安装它。安装只是添加了一个名为“emaillogin”的新皮肤层。

最好在全新的Plone网站上安装此程序。当前用户的登录名不会被更改。Plone 4的核心代码中已经包含了这项功能,所以如果需要,可以查看那里。

升级

从版本0.8升级时,将运行一个升级步骤,将所有登录名改为小写,对于已经是电子邮件地址的登录名。

需要注意的问题

不,这些不是错误。或者,如果它们是错误,那么它们是太难修复而没有引入其他错误的错误。虽然它们可能是意料之外的,所以我们称它们为需要注意的问题。

  • 从版本1.0开始,每次设置电子邮件地址时,我们会自动将其转换为小写。您不能设置大写或混合大小写的电子邮件地址。在登录或重置密码时,大小写不需要匹配:我们既寻找给定的登录名,也寻找小写后的登录名。

  • 作为管理员,当您在ZMI中更改用户的登录名时,这不会更新电子邮件地址。

  • 当您使用original@example.org注册并将此地址更改为new@example.org时,您将无法使用原始地址登录。尽管大小写(大写、小写、混合)现在应该不再重要,但您只能使用当前的电子邮件地址登录。

  • 初始电子邮件地址用作用户ID。此ID永远不会更改。在显示用户ID的地方,显示此原始用户ID,这通常是正常的,直到电子邮件地址被覆盖——一旦这样做,就会显示原始电子邮件地址而不是新的电子邮件地址。(Plone 4在核心中修复了此问题。)Plone中可能还有其他一些位置,例如,仅通过ID搜索用户,所以当您使用该ID搜索登录名时,可能会失败。此外,Plone、CMF或Zope代码中的某些位置将用户ID作为输入,但将其用作登录名或相反,所以在您开始自己修改代码时要小心。

  • 如果您使用one@example.org注册,然后将其更改为two@example.org,则没有人可以注册具有one@example.org的新用户或更改现有用户的电子邮件地址为one@example.org。这是因为它将永远用作用户ID。请注意,当您现在将地址更改为three@example.org时,您中间的地址two@example.org现在是可用的。

  • 当您更改电子邮件地址时,您不会收到确认电子邮件以检查您是否没有犯任何错误,并且这是一个真实的地址。这意味着如果您不记得这个错误,您将无法登录;密码重置也将无法工作。这可能是Plone的一般问题,而不仅仅是此附加组件的问题,尽管我们受到的影响更大。可能是一个很好的PLIP(Plone改进提案)的候选人,或者首先是一个额外的附加组件。

未来

在Plone 4中,此软件包已被弃用,因为Plone 4已经支持使用电子邮件地址作为登录选项:[http://dev.plone.org/plone/ticket/9214](http://dev.plone.org/plone/ticket/9214)

我们强烈建议不要在Plone 4上使用此软件包。但您的实例仍然可以启动(已在Plone 4.0a4上测试过)并且您可以通过用户界面卸载该软件包。您可能需要手动从ZMI中 portal_skins 属性的皮肤选择中删除 emaillogin。由于该软件包在启动时进行了一些补丁,因此您仍然应从实例的 eggs 和 zcml 选项中删除它,重新运行 buildout 并重新启动您的实例。

collective.emaillogin 更新日志

1.3 (2012-09-24)

1.2 (2012-02-14)

  • 修补 RegistrationTool.isMemberIdAllowed。当传入的 ID 已经作为登录名使用时,我们不将其作为用户 ID 接受。此外,在调用 isMemberIdAllowed 的各个位置,ID 实际上指的是登录名。这个修复可能只需针对 Plone 3.1 及更早版本,因为我确信我在 Plone 3.3.6 上测试过。[maurits]

  • 修补 Products.PlonePAS.plugins.cookie_handler.ExtendedCookieAuthHelper 中的登录方法。这是 Plone 3.3.6 中的代码;它包含在此处是因为 Plone 3.1.7 在这里做了错误的事情。[maurits]

1.1 (2011-12-13)

  • 修补 CMFPlone.MembershipTool.testCurrentPassword 以使用登录名进行身份验证。Plone 3.3.5 中的代码本身已经工作(并且只是简单地复制到这里),但 Plone 3.1.7 存在一个错误,当用户 ID 不总是与登录名相同时,会触发该错误。[maurits]

1.0 (2011-11-23)

  • 在 mailPassword 方法中明确不允许在给定忘记的用户 ID 是电子邮件地址时查找成员。我们只搜索以该电子邮件地址作为登录名的用户。这仅在您将电子邮件地址更改为真正不同的地址(而不仅仅是大小写变化)时才有效。如果没有此更改,您可以使用旧地址重置密码,但不能使用该地址登录。[maurits]

  • 重构 authenticateCredentials。这避免了在实际上未登录时收到您已登录的消息。[maurits]

  • 添加了升级步骤以将所有现有用户迁移为具有小写登录名(当使用电子邮件地址作为登录名时)。[maurits]

  • 修补 PloneTool.setMemberProperties 以始终将电子邮件地址设置为小写,并在电子邮件地址更改时更新登录名。[maurits]

  • 在 validate_personalize.vpy 中将电子邮件地址转换为小写。[maurits]

  • 修补 Products.PlonePAS.tools.membership.MembershipTool.addMember 以始终以小写添加成员,即使不是从 registered.cpy 调用也是如此。[maurits]

  • 在 join_form_validate.vpy 中将电子邮件地址转换为小写。[maurits]

  • 更改了 getMemberByLoginName 和 ZODBUserManager.authenticateCredentials,以显式搜索小写登录名,如果初始的文本搜索不成功。[maurits]

  • 在 setup.py 中添加了针对 Plone 3.2 和 3.3 的分类器。[maurits]

0.8 (2010-05-18)

  • 从 join_form 中删除了 mail_me 功能,因为这似乎是在发送密码,而 Plone 已经很长时间没有这样做,如果曾经做过的话。此功能的后端处理已经从 Plone 本身中删除。[maurits]

  • 修复了错误的条件和双重定义,其中 allowEnterPassword 实际上是 不允许 输入密码。它工作得很好,但错误地说明了相反的情况。[maurits]

0.7 (2010-02-23)

  • 添加了德语翻译 [deichi]

0.6 (2009-05-13)

  • 修补了 PasswordResetTool 和 RegistrationTool 中的某些方法,以确保您实际上可以在更改电子邮件地址后重置密码。[maurits]

  • 在更多位置使用电子邮件地址而不是登录名/用户名,例如登录表单和验证。[maurits]

0.5 (2009-05-06)

  • 修复了重新安装时的错误,默认皮肤会设置为不再存在的 emaillogin 皮肤。[maurits]

  • 添加了 profiles/default/metadata.xml: version = 1. [maurits]

  • 在成功编辑个性化表单后,不要导航到 personalize_form,而要将其重定向。这解决了在更改电子邮件地址(即登录名)并第二次保存表单时出现的“禁止:表单验证器无效”的错误。[maurits]

  • 将 validate_personalize.vpy 修改为允许再次更改您的偏好设置。[maurits]

  • 修改了 validate_personalize.vpy。与默认 Plone 相比的变化:检查电子邮件地址作为登录名的有效性。[maurits]

  • 添加了 i18n。[maurits]

0.4 (2009-05-05)

  • 当电子邮件地址不是一个有效的用户名时,也会显示错误。[maurits+mike]

0.3 (2009-05-05)

  • 删除了 personalize_form.cpt(.metadata),因为与默认 Plone 的没有重要区别。[maurits+mike]

  • 将默认 Plone 中的 personalize.cpy 的一些小修改继承过来。

  • 通过使用 @@authenticator 提供者来保护此注册表单,使它也能在较新的 Plones 中工作。在 Plone 3.0 中也能正常工作(它不使用 plone.protect)。[maurits+mike]

0.2 (2009-05-05)

  • 不再注册我们自己的皮肤路径(皮肤选择),而是仅将我们的 emaillogin 皮肤层添加到现有的皮肤选择中。[maurits+mike]

0.1 (2008-01-15)

  • 初始发布。[maurits, guido]

项目详情


下载文件

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

源分布

collective.emaillogin-1.3.zip (61.3 kB 查看哈希值)

上传时间

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面