跳转到主要内容

用于与膜集成的敏捷内容和行为。

项目描述

简介

dexterity.membrane 允许 dexterity 内容项作为 Plone 网站中的用户和组使用,并与 Products.membrane 集成。

https://github.com/collective/dexterity.membrane/workflows/tests/badge.svg

兼容性

该软件包目前经过测试并针对 Plone 5.2+ 和 python>=3.7 进行开发。

使用 Plone 5.2+ 需要 Products.membrane 5 或更高版本。

使用 Plone 6.0+,我们建议 Products.membrane >= 6.0。

用户 id

作为用户 id,我们使用为内容项生成的 uuid。请参阅 user.py 行为中 getUserId 的定义。

电子邮件作为登录名

该软件包包含一个具有电子邮件字段的成员内容类型。该行为将其用作登录名。请参阅 getUserName。其他实现也是可能的,因此我们不强迫您在您的网站上使用电子邮件地址作为登录名。

默认情况下,这是开启的,但您可以在我们的控制面板中将其关闭。该设置保存在 Plone 注册表中。

除此之外,还建议同时开启 Plone 本身的 use_email_as_login 属性。就本软件包而言,这的唯一影响是更改登录表单中的某些文本:您看到的是 电子邮件地址 作为标签,而不是 登录名。要启用此功能,您可以将以下内容放入 propertiestool.xml(Plone 4),可能是在您的项目的自定义软件包中。

<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
  <object name="site_properties" meta_type="Plone Property Sheet">
    <property name="use_email_as_login" type="boolean">True</property>
  </object>
</object>

关于更改设置的警告

最好是配置一次设置,然后不再更改。如果您在已创建成员时更改设置,可能需要进行一些重新索引。如果您只有少数成员,编辑并保存它们将是最简单的方法。如果您有数十个或数百个成员,这不太实用。未来的版本可能会自动化此过程。如果您有兴趣帮助,一个 pull request 将会很受欢迎。

成员内容类型

该软件包定义了一个成员内容类型,但这可能被视为一个示例;请随意创建不同的类型,只使用行为或创建它们自己的改编。

行为

dexterity.membrane.user

这使得内容表现得像膜用户,定义了获取用户 id(getUserId)和登录名(getUserName)的方法。

dexterity.membrane.provide_password

为您的 dexterity 内容添加密码和确认字段。这用于身份验证过程中。

dexterity.membrane.group

这使得内容表现得像膜组,定义了获取组 id(getGroupId)和组名(getGroupName)的方法。

dexterity.membrane.name_from_fullname

使用成员全名来制作对象 id

膜实现

Products.membrane.interfaces.IMembraneUserAuth

我们使用电子邮件字段和密码字段实现身份验证。

Products.membrane.interfaces 导入 IMembraneUserProperties

我们提供了一个从我们自己的 IMember 架构的第一和姓氏字段到全名用户属性的只读映射。我们为 IMember 的电子邮件、主页/主页和描述/个人简介属性/字段提供了读写映射。

本地角色

该软件包定义了一个本地角色提供程序。它确保登录用户在属于该用户的膜对象上获得本地阅读者、编辑器和创建者角色。

工作流

我们定义了一个简单的具有待处理/批准状态的工作流。用户只有在批准状态下才能登录。

加密

从1.1.0b3版本开始,dexterity.membrane使用bcrypt加密新的密码。此更改保持了现有SSHA密码的支持。

变更日志

3.0.2 (2023-06-07)

  • 移除弃用警告。[ale-rt]

3.0.1 (2023-03-24)

  • 修复了AuthEncoding >= 5.0的问题。[petschki]

  • 重命名配置文件 dexterity.membrane: exampledexterity.membrane: content 并为其添加了卸载配置文件。[petschki]

  • 移除了对py2.7和Plone < 5.2的支持。[petschki]

  • 警告:该软件包不再在Plone 5.2和Python 3.6上测试,因为Plone 5.2在该Python版本上也没有经过测试。

3.0.0 (2021-12-06)

  • 移除 <includeDependencies />。[petschki]

3.0.0a2 (2020-11-30)

  • 性能改进:缓存昂贵的bcrypt操作。[ale-rt]

3.0.0a1 (2020-02-19)

  • Plone5.2移植:不需要Archetypes。[ale-rt]

  • ZCML命名空间清理。[thet]

  • 添加了卸载配置文件。[agitator]

2.1.0 (2019-06-01)

  • 依赖plone.api。[ale-rt]

  • 修复了一些文档字符串。[ale-rt]

  • 传记:plone.app.textfield RichText字段用于Plone 5。[ksuess]

  • 修复了AttributeError: 'tuple'对象没有属性'strip'。[b4oshany]

2.0.1 (2018-01-18)

  • 性能改进:缓存昂贵的bcrypt操作。[ale-rt]

2.0 (2017-10-21)

  • 移除了collective.indexing依赖。collective.indexing已被合并到Plone 5.1中。如果您使用的是Plone版本 < 5.1,请手动添加collective.indexing并将其Products.membrane锁定在 < 4。[agitator]

  • 停止对Plone < 4.3的官方支持,使用1.2.x版本用于Plone的旧版本。[agitator]

1.2 (2017-01-11)

  • 不再官方支持Python 2.6。请参阅readme中的兼容性信息。[maurits]

  • 启用use_email_as_username而无需使用use_uuid_as_userid。这修复了getUserId,修复了索引的用户值,修复了enumerateUsers。警告:如果您已经有成员并且更改了设置,这可能需要进行重新索引或手动编辑和保存所有用户。[gyst]

1.1.2 (2016-08-05)

1.1.1 (2016-07-06)

  • 一个组可能会意外地显示为用户。portal_membership.listMembers然后说:AttributeError: 'NoneType'对象没有属性'__of__'。我们通过在组上实现getUserId和getUserName来防止这种情况,返回组ID和组名称。[maurits]

1.1.0 (2015-10-07)

  • 切换到bcrypt密码加密(包括对现有SSHA密码的向后兼容)[mgrbyte]

1.1.0b2 (2015-03-03)

  • 为IMembraneGroup、IProvidePasswordsSchema和IMembraneUser添加了BBB类。[agitator]

1.1.0b1 (2015-03-02)

  • 修复发布

1.1.0b0 (2015-03-02)

  • 支持密码中的特殊字符/变音符号。[agitator]

  • 使用bbb导入进行重命名:从所有dexterity.membrane.behavior.membrane*中移除最后的membrane。[jensens]

  • 修复:使PasswordProvider工作。激活后,整个系统都处于非活动状态并损坏。[jensens]

  • 移除弃用的plone.directives并使用plone核心功能来实现相同的目标。同时,对buildout进行了一些现代化。[jensens]

  • 声明plone.directives.form依赖。[vincentfretin]

1.0 (2014-10-16)

  • 使用工具添加一个密码检查器,以便在自定义代码中使用钩子。我们可能想提供一个默认值,但尚不清楚它应该是什么样子。[jensens]

  • 使继承密码更容易。[jensens]

  • 移除grok依赖,对单个模块进行一些重构以降低复杂性。注意:与密码相关的行为现在在单独的模块中。在升级后,需要更新自定义代码。[jensens]

  • 清理,pep8,plone-code-style,使测试再次通过。[jensens]

  • 使get_full_name成为MembraneUser的方法,以便可以轻松地进行自定义。[cedricmessiant, vincentfretin]

  • 添加了法语翻译。[cedricmessiant]

0.4 (2013-07-18)

  • 添加更新行为配置文件的升级步骤。如果您已安装示例内容配置文件,将在插件控制面板中看到一个警告,提示Plone不知道如何更新此配置文件。我们建议您先禁用它,然后再重新激活它。问题编号#7 [maurits]

  • 将内容配置文件重命名为example,将行为配置文件重命名为default。问题编号#7。[maurits]

  • 添加西班牙语和巴西葡萄牙语翻译。[hvelarde]

0.3 (2013-05-15)

  • 修复操作系统不支持符号链接时的安装问题。已将README.txt重命名为README.rst,并更新了setup.py以指向该文件。这修复了#5。[saily]

  • 修复getPropertiesForUser中的getattr以具有默认值。[datakurre]

0.2 (2013-02-19)

  • 与plone的电子邮件登录保持一致(#12187),因此不要将电子邮件地址转换为小写。[saily]

  • 添加基本膜组行为。[saily]

0.1 (2012-09-20)

  • 初始alpha版本

项目详情


下载文件

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

源分布

dexterity.membrane-3.0.2.tar.gz (38.6 kB 查看哈希值

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页