用于与膜集成的敏捷内容和行为。
项目描述
简介
dexterity.membrane 允许 dexterity 内容项作为 Plone 网站中的用户和组使用,并与 Products.membrane 集成。
兼容性
该软件包目前经过测试并针对 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: example 为 dexterity.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)
为membranepasswords.IProvidePasswords添加了向后兼容的导入。否则,在编辑内容时,z3c.relationfield可能会出现问题。修复了https://github.com/collective/dexterity.membrane/issues/23。[mikejmets]
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 50e6db6cbdc4c30c1ff37a4eb516f49540fa26afca8ae4af4d1b32aa5239b266 |
|
MD5 | c1fa36f5b0e230534adfe88b09cc87c1 |
|
BLAKE2b-256 | fab04a18f806b3510b1990705a1e2b43cd5ba1e6dc0020ccc226c9c2f16da92e |