与膜结合的灵巧性内容和行为。

dexterity.membrane的Python项目详细描述


简介

dexterity.membrane允许将dexterity内容项用作plone站点中的用户和组,并与products.membrane集成。

https://travis-ci.org/collective/dexterity.membrane.png

兼容性

该软件包已经过Plone 4.2的测试和开发+ 事实上,由于我们需要uuid支持,它只能在那个版本(或更高版本)上工作。 我们强烈建议使用Python2.7。 它可能在Python2.6上工作,但我们没有使用该版本进行测试(至少测试有一些代码只在2.7上工作)。

我们依赖products.membrane 2.0.2或更高版本,因为它包含一个修复程序,以确保删除的成员也从membrane工具目录中删除。

用户ID

作为用户id,我们使用为内容项生成的uuid。 这只适用于plone 4.1及更高版本。 参见 user.py 行为中 getuserid 的定义。

如果定义了自己的成员内容类型,则应在其上启用 plone.app.referenceable behavior.referenceable.irereferenceable 行为,因为这提供了uuid支持。 这也意味着可以从原型内容中引用成员。

以登录名发送电子邮件

此包包含具有电子邮件字段的成员内容类型。 行为将此用作登录名。 请参见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>

有关更改设置的警告

最好配置一次设置,然后不要再触摸它们。 如果在创建成员后更改设置,则可能需要重新编制索引。 如果只有几个成员,那么编辑和保存所有成员将是最简单的方法。 如果你有几十个或几百个成员,这不是很实际。 未来的版本可能会自动执行此操作。 如果您有兴趣帮忙,a 拉取请求 会很好。

成员内容类型

这个包定义了一个成员内容类型,但这可以看作是一个例子; 请随意创建不同的类型,只使用行为或创建自己的行为适应。

行为

< DL>
灵巧性。膜。行为。用户。imembraneuser
这使得内容表现为膜用户,定义了获取用户id( getuserid )和登录名( get user name )的方法。
灵巧性。膜。行为。密码。iprovidepasswords
将密码和确认字段添加到您的灵巧内容中。 这在身份验证期间使用。
灵巧性。膜。行为。组。膜组
这使得内容表现为一个膜组,定义了获取组id( getgroupid )和组名( get group name )的方法。

膜实施

< DL>
产品、膜、接口、膜
我们使用电子邮件字段和密码字段实现身份验证。
products.membrane.interfaces导入IMembraneUserProperties
我们提供从自己的 imember 模式的first和last name字段到fullname用户属性的只读映射。 我们为 imember 的电子邮件、主页/主页和描述/生物属性/字段提供了读写映射。

本地角色

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

工作流程

我们定义了一个带有挂起/批准状态的简单工作流。 用户只能在"已批准"状态下登录。

加密

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate:合并并删除,而不是从数据库中删除实体对象   java如何在WebFilter中有条件地从Mono返回?   java调用mysql c3p0函数   可执行jar Java jar文件加载错误:无法找到或加载主类。类导致的错误:java。lang.ClassNotFoundException:某些东西。班   java如何减少/更改爬网后的延迟?   从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?   java如何模拟影响对象的void返回方法   当我试图在ubuntu上启动JavaScala时,它抛出了一个异常   java如何正确输出游戏   理解java和C++背景下的JavaScript原型   oracle如何将Java函数转换为postgresql函数   多线程为什么我的java服务器程序在超时后不退出?   java如何使listView中的按钮在单击时工作?   试图将这个嵌套的java forloop转换为python,但我不知道如何转换。有没有一种方法可以像这样为循环执行if语句?   java幂函数在计算器中的应用   如何在java中滚动浏览mysql数据库   在Spring Boot应用程序的JUnit测试中,java没有符合自动连线JPA存储库要求的bean   java如何使用扩展类的JPanel对象?