跳转到主要内容

PlonePAS修改了PluggableAuthService以供Plone使用。

项目描述

概述

本产品扩展了PluggableAuthService (PAS),用于Plone。

它增加了

  • 组支持

  • 自动组分配

  • 可变属性支持

  • 基于cookie的登录

  • 本地角色支持

  • 密码策略支持

  • 增强用户对象

  • 增强cmf工具(组、成员)

  • 简单的密码策略

  • 用户首次登录时的新事件

PlonePAS还将旧GroupUserFolder (GRUF) 的API添加到PAS。GRUF在Plone 2.5.x及更早版本中用作默认用户文件夹。

许多这些更改都是通过对PAS本身进行猴子补丁来完成的。这并非理想,但在过去是这样做的,即使我们现在会做得更好。

PlonePAS不依赖于Plone本身,只依赖于Zope2、PAS、CMF和一些底层库。

常见问题解答

为什么我在ZMI中设置的组标题没有显示出来?

组的标题来自属性插件。组插件中的信息(除名称外)不被使用。

portal_groupdataportal_memberdata tools本身上title属性的值(与它们内部的组或成员数据记录相对)不会用作组或成员标题的默认值。这是为了避免在未意识到其影响的情况下设置标题时产生UI混淆。要移除这个特殊情况,请参阅plugins.property._getDefaultValues

为什么我的模式更改被忽略?

如果PAS缓存已启用(请参阅Cache选项卡)且缓存管理器没有cleanup方法(RAMCacheManager有一个),则对成员数据模式的更改不会影响已缓存的用户。在这种情况下,重新启动服务器或清除缓存(如果可能)以使更改生效。

类似地,对成员数据模式的更改不会传播到已使用的成员对象。如果您有一个成员数据对象并且更改了成员数据属性,您必须通过再次调用portal_membership.getMemberById来重新构造成员。有关示例,请参阅tests.test_properties.test_user_properties

为什么我无法注销?

默认情况下,通过HTTP基本认证登录的用户无法注销。如果您为HTTP基本插件启用了Credentials Reset插件,则基于cookie的注销将不再起作用。但是,如果您不使用cookie,这不会成为问题。

作者

初始创建:PAS CIGNEX Sprint Team [Anders, Bob, Ben, Chad, Gautham, Joel, Kapil, Michel, Micheal]

赛后工作:J Cameron Cooper, Leo, Sidnei, Mark at Enfold Systems

基本集AuthCookie支持(模仿CookieCrumbler):Rocky Burt at ServerZen Software

与Plone同步登录过程:Dorneles Tremea at PloneSolutions

错误修复、各种开发和与Plone合并:Wichert Akkerman at Simplon

错误修复、改进会员和属性查找:Eric Steele and Erik Rose

审查、清理、代码现代化,解决Plone 5问题:Jens Klein, BlueDynamics Alliance - Klein & Partner KG

源代码

贡献者请阅读文档Plone核心开发流程

源代码在GitHub上托管的Plone代码仓库

变更日志

8.0.4 (2024-06-26)

错误修复

  • 当查询使用字节而不是文本时,恢复对成员的搜索。[maurits] (#125)

  • searchForMembers: 始终使用utf-8编码而不是检查默认字符集。这段代码仍然在使用 IPropertiesTool 工具。 [maurits] (#125)

8.0.3 (2024-06-07)

测试

  • 不要使用 visible_ids 布尔属性进行测试,因为这个属性可能会被移除。 [maurits] (#125)

8.0.2 (2023-07-13)

内部

  • 更新配置文件。 [plone 开发者] (cfffba8c)

8.0.1 (2023-05-25)

错误修复

  • 翻译错误消息,简化错误处理。 [tschorr] (#75)

8.0.0 (2023-04-06)

破坏性更改

内部

  • 更新配置文件。 [plone 开发者] (80cf330f)

7.0.0 (2022-12-02)

错误修复

  • Plone 6.0.0 的最终版本 (#600)

7.0.0b3 (2022-10-11)

错误修复

  • 修复测试中使用的管理员密码。 [davisagli] (#70)

7.0.0b2 (2022-10-03)

新功能

  • 将最小密码长度增加到 8 个字符。 [davisagli] (#69)

7.0.0b1 (2022-08-31)

错误修复

  • 应用 isortblackpyupgrade 和手动移除六个遗留代码。修复 PIL 废弃警告,假设 PIL 总是存在。让 mypy 再次满意。 [jensens] (#68)

7.0.0a3 (2022-03-09)

新功能

  • 添加独立的 GenericSetup 配置文件,以将 Zope 根 /acl_users 转换为使用简单的 cookie 登录表单。当需要将 Zope 根登录和注销与多个插件之间的身份验证状态同步时,这很有用,而 HTTP Basic … 身份验证则无法实现。 [rpatterson] (#65) (zope-root-cookie)

7.0.0a2 (2021-12-29)

错误修复

  • 修复了 AccessControl.AuthEncoding 的废弃警告。 [maurits] (#64)

  • 修复了在 PlonePAS 安装过程中损坏的 Zope 根 /acl_users cookie 插件。 [rpatterson] (#65)

7.0.0a1 (2021-07-28)

破坏性更改

  • 停止支持 Plone 5.2 和 Python 2.7。 [maurits] (#61)

错误修复

  • 支持 Pillow 8。 [jensens] (#61)

  • 修复了 cookie 身份验证测试,使其也能与 zope.interface 5.3.0 一起工作。这使用了接口的更简单表示。测试现在可以通过早期和后期版本。 [maurits] (#237)

6.0.7 (2021-02-16)

错误修复

  • 修复了废弃消息:“AccessControl.User 已移动到 AccessControl.users”。 [jensens] (#59)

6.0.6 (2020-04-23)

错误修复

  • 较小的打包更新。 (#1)

6.0.5 (2019-12-10)

错误修复

    • 当密码更改时,通知 CredentialsUpdated 事件。 [ezvirtual] (#33)

6.0.4 (2019-12-02)

错误修复

    • 当成员属性更改时,通知 PropertiesUpdated 事件 [ezvirtual]

    • 添加 PropertiesUpdated 事件的简单测试 [ezvirtual] (#27)

6.0.3 (2019-11-25)

错误修复

  • 记录 PAS logout() 中的异常,而不是吞没它们 [ajung] (#50)

  • 修复废弃导入。修复 Plone 5.2 的 buildout 基础设施。 [thet] (#51)

  • 从适配器创建 MemberData 对象,而不是直接实例化它,如 Products.CMFCore.MemberDataTool 所打算的。这允许更好的扩展性。 [thet] (#52)

6.0.2 (2019-04-29)

错误修复

  • 避免 ResourceWarning 消息。 [gforcada] (#47)

6.0.1 (2018-12-11)

错误修复

  • im_self 更改为 __self__ [vangheem] (#43)

6.0.0 (2018-11-05)

破坏性更改

新功能

  • 使其在 Python 3 中工作:使导入工作。修复启动。修复设置 auth-cookie。修复启动期间 MemberData 函数的分配。用户属性是文本。修复用户配置文件的缩放。将所有测试从 PloneTestCasei 迁移出来。修复其他测试。 [pbauer]

错误修复

  • InitializeClass 已移动到 AccessControl.class_init [jensens]

  • setDefaultRoles 已废弃。使用 AccessControl.Permission 的 addPermission。 [jensens]

  • 移除了只包含向后兼容导入的 Extensions/Install.py。 [maurits]

  • 当主页包含可疑内容(例如,可能包含 JavaScript)时,将其报告为空。这是 PloneHotfix20171128 的一部分。 [maurits]

  • 移除 setAuthCookie 脚本。 #1801 这个脚本曾经是一个钩子,允许覆盖凭证更新。默认覆盖已被用作新的实现。 [tlotze]

5.0.14 (2017-05-09)

错误修复

  • 移除 WarningInterceptor (CMFCore) - 它在新版本中已不存在。 [jensens]

5.0.13 (2016-11-09)

错误修复

  • 在 getMemberInfo 中,如果一个属性不存在,现在它将返回一个空字符串,而不是引发异常。这修复了已移除位置的网站的登录。 [MatthewWilkes]

5.0.12 (2016-09-09)

错误修复

5.0.11 (2016-05-20)

错误修复

  • 使用CMFCore的_marker来获取MemberDataTool.getProperty,这确保我们永远不会从PlonePAS返回_marker,而是返回错误。[pcdummy]

  • 如果ZOPE用户不存在属性,不要引发ValueError。[pcdummy]

5.0.10 (2016-05-02)

修复

  • 通过使用safe_unicode修复searchForMembers中的UnicodeDecodeError。[pbauer]

5.0.9 (2016-03-03)

新功能

  • 在删除组时通知新的IGroupDeletedEvent。[DieKatze]

5.0.8 (2016-02-24)

修复

  • cleanId在获取unicode时返回一个字符串。[maurits]

  • 修复了在读取setup.py时使用Python 2.6时的AttributeError。[maurits]

5.0.7 (2016-01-08)

修复

  • 修复了文档中的错误。[gforcada]

5.0.6 (2015-12-16)

修复

  • 恢复Python 2.6支持(在2.6中依赖于orderedict)并使用条件导入和回退。[gforcada, jensens]

5.0.5 (2015-12-08)

修复

  • 应用了2015-12-08的热补丁。

5.0.4 (2015-09-20)

  • 删除了对非utf-8编码的测试。[esteele]

5.0.3 (2015-07-18)

  • 允许将属性设置为None。[ebrehault]

5.0.2 (2015-05-04)

  • 防止由于Zope2的写后读问题在注销时发生CRSF保护错误。[vangheem]

  • 在修补过程中将日志级别从info降低到debug。[jensens]

5.0.1 (2015-03-21)

  • 添加了一个集成的测试设置,包括codeanalysis和travis。为此,将Products文件夹移动到src文件夹中,以遵循buildout.plonetest的qa.cfg所期望的包结构。[jensens]

  • 明确地修补LDAPMultiPlugin。使用这些代码的应用程序必须调用Products.PlonePAS.ldapmp.patch_ldapmp(不带参数)以激活修补程序。[jensens]

  • 删除了(可选的)Archetypes Storage(以前与CMFMember一起使用,它本身已被Membrane长期取代)。可能是废弃的代码。如果有人在Plone 5中需要它,请从git/Plone4复制代码到您的插件/项目。[jensens]

  • Extensions/Install.py函数移动到setuphandlers,保留了BBB导入activatePluginInterfaces,因为它由borg.localrole导入。[jensens]

  • 期望Python 2.7和collections.OrderedDict。[jensens]

  • 删除了讨厌的依赖关系Products.CMFDefault。[jensens]

  • 清理补丁,使用wrap_method进行反射,使用wrap_method添加角色,添加弃用并合并gruf_support.pypas,py中,以便更好地了解修补的内容。[jensens]

  • 清理:PEP8等,zca装饰器,粗略的代码审查[jensens]

  • 在searchForMembers中,确保请求参数被正确解码为unicode[do3cc]

5.0 (2014-04-05)

  • 在读取时不要写入成员数据[vangheem]

  • 允许将properties传递给PloneUser.setProperties。这之前被忽略,因为setProperties仅使用关键字参数[davidjb]

4.1.2 (2014-01-27)

  • 如果门户网站没有父级,则不要尝试迁移根用户文件夹[davisagli]

  • 使用内置的odict实现而不是自制的odict实现[tomgross]

  • 使用正确的方法从id或名称获取用户[tomgross]

  • 将测试迁移到plone.app.testing[tomgross]

4.1.1 (2013-03-05)

  • 修复了setSecurityProfile中的错误,登录名被传递而不是用户id[davisagli]

  • 在ZODBMutablePropertyProvider中添加了空的updateUser和updateEveryLoginName方法,以满足IUserEnumerationPlugin的新标准[maurits]

4.1 (2013-01-01)

  • 修复了assignRoleToPrincipal以与新的Products.PluggableAuthService 1.10.0一起工作[maurits]

  • 修复了保存、获取和删除非标准用户id(如‘bob-jones’或‘bob-jones+test@example.org’)的用户肖像的问题[maurits]

  • 修复了如果用户id与登录名不同,当前密码测试的问题[maurits]

4.1a2 (2012-08-29)

  • 错误修复:使用电子邮件登录的用户在尝试删除自己的头像时收到“权限不足”的错误。修复了http://dev.plone.org/ticket/12819。[由kagesenshi修复,kleist应用]

  • MembershipTool.searchForMembers()现在保留排序顺序。修复了http://dev.plone.org/ticket/11716。[由neaj修复,kleist应用]

  • 将已弃用的getSiteEncoding更改为硬编码的utf-8 [tom_gross]

4.1a1 (2012-06-29)

  • 允许用户名包含特殊字符(如使用电子邮件登录时使用的@)的成员设置自己的成员头像 [erral]

  • PEP8清理 [pbdiode]

  • 添加默认密码验证策略作为PAS插件,请参阅http://dev.plone.org/ticket/10959

  • Extensions/Install.py: 不要将列表用作activatePluginInterfaces()的默认参数值 [由rossp修复,kleist应用]

4.0.13 (2012-05-07)

  • 要求ListPortalMembers权限以搜索ForMembers,这样匿名用户就不能获取站点的用户列表。 [vangheem]

4.0.12 (2012-04-09)

4.0.11 (2012-02-08)

  • 在更改或删除成员头像时进行更多检查。修复了http://dev.plone.org/ticket/5432 [maurits]

  • 将请求传递给getGroupsForPrincipal以进行缓存目的。 [esteele]

4.0.10 (2012-01-04)

  • 在方法名称中修复了错误typo hasOpenIDExtractor,保留了旧名称(hasOpenIDdExtractor)以保持向后兼容。修复了http://dev.plone.org/ticket/11040 [maurits]

4.0.9 (2011-11-24)

  • 避免在尝试将角色添加到由其他插件管理的主体时出现错误。 [thomasdesvenain]

  • 清理并减少依赖。新的额外atstorage用于罕见的情况,即有人在没有Plone但使用Archetypes的情况下使用PlonePAS(如果这是可能的)。 [jensens]

4.0.8 - 2011-06-30

  • 当删除用户时触发IPrincipalDeleted。 [stefan, ggozad]

4.0.7 - 2011-05-12

  • 将CleanupTemp从CMFCore复制过来,因为它已从CMFCore 2.3中删除。 [elro]

  • 将导入步骤移动到ZCML中注册,而不是XML。删除对plonepas-content的非存在依赖。 [kiorky]

4.0.6 - 2011-02-25

  • 修复缺失和损坏的安全声明。 [davisagli]

4.0.5 - 2011-02-14

  • 避免在启动时如果PIL不存在而中断。 [davisagli]

  • 使用“defaultUser.png”作为默认用户头像,因为.gif版本已被弃用很长时间。参见http://dev.plone.org/plone/changeset/36350 [mj]

4.0.4 - 2011-01-03

  • 在setup.py中删除对plone.openid的依赖,导入错误已在PASInfoView中捕获。 [elro]

  • 在mutable_properties.enumerateUsers中按id搜索的代码根本不起作用,始终抛出异常,实际上这是好事。我们曾尝试在3.10中实现它,我们在Plone UI中有奇怪的列表。然后我们在下一个版本中回滚,以便行为与之前版本向后兼容。如果我们允许按id搜索,我们可能会破坏代码的其他部分。例如,acl_users/portal_role_manager/manage_roles将中断,因为Products.PluggableAuthService.plugins.ZODBRoleManager.listAssignedPrincipals引发MultiplePrincipalError,也许它还会在其他地方中断。4.0.4和3.13现在使用相同的算法。参考http://dev.plone.org/plone/ticket/9361 [vincenfretin]

  • 在调用editGroup方法时,避免在尝试删除动态“AuthenticatedUsers”组时出错。 [thomasdesvenain]

  • 在Plone 4.1+中,创建一个具有新站点管理员角色的站点管理员组。 [davisagli]

  • 修复了groupprefs页面上的关键错误,当某些组标题包含非ascii字符时。按标题规范化排序组。这修复了http://dev.plone.org/plone/ticket/11301 [thomasdesvenain]

  • 修复接口错误:doChangeUser接受用户id作为参数,而不是登录名。 [wichert]

4.0.3 - 2010-09-09

  • 在getRolesForPrincipal中访问它之前检查是否有REQUEST属性。 [vincentfretin]

  • 使用safe_unicode正确地查找具有非ascii属性的用户,无论sys.defaultencoding如何。这修复了http://dev.plone.org/plone/ticket/10898 [mr_savage]

4.0.2 - 2010-08-08

  • 使 last_login_time 逻辑与 DateTime 2.12.5 兼容。[hannosch]

4.0.1 - 2010-07-31

  • 清理一些未使用的导入和变量赋值。[esteele]

  • 停止通过 GRUF 检查是否可以编辑组属性。[esteele]

4.0 - 2010-07-18

  • 避免 credentialsChanged 方法出现弃用警告。[hannosch]

  • 修复了缺少用户缓存失效的问题。这关闭了 http://dev.plone.org/plone/ticket/10715。[fafhrd, hannosch]

  • 让 VirtualGroup 从 PropertiedUser 继承,以便正确包装。让 getGroupsForPrincipal 不将其自身作为成员返回 AutoGroup。关闭 http://dev.plone.org/plone/ticket/10568。[cah190]

  • PluggableAuthService 期望从 getGroups 获取组 ID 列表,不要传递包装组列表。[cah190, esteele]

  • 为 PlonePAS 添加了自定义的 IMembershipTool 接口,该接口扩展了来自 CMFCore 的基本接口。它添加了 getMemberInfo 方法。这关闭了 http://dev.plone.org/plone/ticket/10240。[hannosch]

4.0b9 - 2010-06-03

  • 修复了一个测试,不再使用已删除的大型 Plone 文件夹类型。[davisagli]

4.0b8 - 2010-05-01

  • 在底层问题在 Zope2 中修复后,删除了特殊的未授权视图解决方案。[davisagli, hannosch]

4.0b7 - 2010-04-07

4.0b6 - 2010-03-05

  • 撤销错误的 PIL 导入更改。[hannosch]

4.0b5 - 2010-03-03

  • 在新站点中默认安装 recursive_groups。将其设置为最后安装的 IGroupsPlugin。[esteele]

  • 删除 utils.py 的 getGroupsForPrincipal 方法的缓存,因为它过于热情。[esteele, cah190]

  • 使用集合而不是 util.py 的 'unique' 方法。[esteele]

4.0b4 - 2010-02-18

  • 正确导入 PIL 1.1.7。[tom_gross]

  • 按 principal id 和请求缓存 getGroupsForPrincipal(当可用时)。[esteele]

4.0b3 - 2010-01-31

  • 角色插件测试不再子类化(并运行所有)ZODBRoleManagerTests,因为它们无法正确处理插件对找到具有 IGroupsPlugin 的 PluginRegistry 的期望。[erikrose, esteele]

  • 撤销对 ZODBMutablePropertyProvider 的 enumerateUsers 方法的更改,该方法阻止通过 id 查找用户。一些重构。参考 http://dev.plone.org/plone/ticket/9361。[erikrose, esteele]

  • GroupAwareRoleManager 现在正确计算深层嵌套主体的角色。[erikrose, esteele]

  • 提取 getGroupsForPrincipal 调用。[erikrose, esteele]

  • AutoGroup 现在实现了 IPropertiesPlugin,以返回组标题和描述。[erikrose, esteele]

  • GroupsTool 的 getGroupsForPrincipal 和 getGroupMembers 现在返回由所有响应插件组成的列表,而不仅仅是第一个响应者。[erikrose, esteele]

  • 删除 GroupData 的 _gruf_getProperty 方法,将剩余功能移动到 getProperty 中。getProperty 现在在以下位置搜索属性:组对象上的属性表单、PAS IPropertyProviders、portal_groupdata 属性和其 GroupData 条目的属性。它返回找到的第一个数据。关闭 http://dev.plone.org/plone/ticket/9828。[erikrose, esteele]

  • 为 getRolesForPrincipal() 添加 __ignore_direct_roles__ 请求标志,以允许检索仅由组提供的(继承的)角色。[cah190]

  • getGroupsForPrincipal 是 PAS 的 IGroupsPlugin 的一个方法,相应地调整组工具的插件查找。[esteele]

  • 重新设计 ZODBMutablePropertyProvider 的组检测,以便 enumerateUsers 只返回用户。[esteele]

  • 在安装时添加但未激活递归组插件。[esteele]

  • 设置默认组的适当标题。[esteele]

  • 避免使用 PAS 的 classImplements 辅助函数。它处理现在已消失的 Zope2 接口变体,不再需要。[hannosch]

  • 修复 autogroup 插件中命名的 kwarg。[cah190]

  • 允许组工具的 searchForGroups 处理空搜索字符串作为“查找所有”。[esteele, cah190]

  • 允许 PASSearchView 的 searchGroups 方法接受排序选项。[esteele]

  • 将迪特尔的补丁从 http://dev.plone.org/plone/ticket/9460 应用到 GroupManager 的 'getGroupById' 方法中,以防止它返回由其他群组管理器管理的群组。[esteele]

  • GroupsTool.editGroup() 现在除了 Plone 特定工具外,还存储了标题和描述在 PAS 属性表中。这有助于我们不覆盖群组标题以 ID。[erikrose]

  • 查询群组描述的正确关键字变量。[esteele]

  • 修复了不正确的 setdefault 语法。解决了 http://dev.plone.org/plone/ticket/7345。[esteele]

4.0b2 - 2010-01-02

  • 不要指定 PIL 作为直接依赖项。它不是在所有平台上作为 egg 安装的。[hannosch]

4.0b1 - 2009-12-27

  • 修复了包依赖声明。[hannosch]

4.0a2 - 2009-12-16

  • 为 PloneTool 添加了向后兼容的别名,以支持从 Plone 2.5 升级。[hannosch]

  • 在 getMemberInfo 返回的信息中添加了 'has_email'。参见 http://dev.plone.org/plone/ticket/8707。[maurits]

4.0a1 - 2009-11-14

  • 简化了 pas_member 视图。如果没有找到请求的 ID 的成员,也会返回信息,因此可以安全地用于获取“成员信息”以用于已删除的成员。[maurits]

  • 添加了新的 pas_member 视图,该视图提供了对 membership tools getMemberInfo 方法的简单访问,但会在请求上缓存结果。[hannosch]

  • 将 membership 工具的 memberareaCreationFlag 的默认值更改为 False,因为到目前为止,在创建 Plone 网站时一直是这样做。[hannosch]

  • 移除了由于 PluggableAuthService 1.5 之前缺失的版本而引入的 ZODBUserManager.enumerateUsers 的补丁。这个现在不再需要的补丁也降低了被修复方法的性能,并引入了与例如在 LDAPMultiPlugins 上的类似方法相比不同的行为。关于以前补丁的详细信息,请参阅:http://dev.plone.org/collective/changeset/41512/PlonePAS/trunk/pas.py。[jensens]

  • 将一些从 CMFPlone 中遗漏的 DTML 文件移到这里。[davisagli]

  • 添加了一个 Unauthorized 异常视图,该视图重新抛出该异常,以确保它触发 PAS 的 challenge 插件而不是渲染 standard_error_message。[davisagli]

  • 删除了各种方法的弃用警告。这些从未发生过。[hannosch]

  • 删除了用户和组的一半完成的 ZCacheable 缓存。[hannosch]

  • 删除了 membership 工具对 CMFDefault 的依赖。我们只需要 CMFCore 功能。[hannosch]

  • PlonePAS.gruf_support.authenticate 方法在 authenticateCredentials 成功时没有退出循环。[runyaga]

  • 将 objectIds 和 objectValues 调用更改为使用 IContainer API。[hannosch]

  • 删除了过时 Extensions.Install 代码的部分。[hannosch]

  • 删除了对 CMFPlone 的 _createObjectByType 方法的依赖。[hannosch]

  • 删除了用于初始成员区域内容的神奇 homePageText 查找。您可以使用 notifyMemberAreaCreated 钩子进行任何类型的自定义行为。[hannosch]

  • 将 CMFPlone.utils 中的 scale_image 函数移动到我们的 own utils 模块,因为我们是我们唯一的用户。还使测试不依赖于任何 CMFPlone 代码。[hannosch]

  • 清理了包元数据。[hannosch]

  • 在额外的地方声明测试依赖项,并修复了使用 Globals 的弃用警告。[hannosch]

  • 将安装进度报告切换到日志框架。[hannosch]

  • 清理了所有文件中烦人的许可证头。我们有一个中心位置可以声明许可证。[hannosch]

  • 开始清理弃用的方法和注释。[hannosch]

  • 删除了对群组工作空间的支持。这个来自 GRUF 的部分已经很多版本不再受支持。[hannosch]

  • 将 GRUF 中的所有群组工具代码合并到这个包中,我们现在正式没有 GRUF 依赖。[hannosch]

  • 将 GRUF 中的所有群组数据工具代码合并到这个包中。[hannosch]

  • 删除了 GRUFBridge 插件。GRUF 中的 PAS 不再受支持。[hannosch]

  • 将合并的测试从CMFPlone移动到与现有测试相同的模块,并标准化了文件名。[hannosch]

  • 更新了测试并引入了适当的基测试用例和层。[hannosch]

  • 删除了cookie认证测试,这些测试不再与plone.session兼容。[hannosch]

  • 将CMFPlone中四个工具的所有测试移动过来。[hannosch]

  • 删除了用户文件夹迁移代码并清理了测试。[hannosch]

  • 将CMFPlone中的四个工具的所有代码移动到这个包中。[hannosch]

  • 从遵循Plone的许多搜索函数中删除了对“listed”成员属性的支持。[hannosch]

  • 从CMFPlone迁移中复制了setLoginFormInCookieAuth。[hannosch]

  • 清除旧Zope 2接口接口以实现Zope 2.12兼容性。(在这种情况下仅有一个测试)[elro]

3.12 - 2009-10-16

  • 再次修复性能问题。可变属性插件中的enumerateUsers如果kw为空,应返回所有用户。如果使用登录或id参数,则返回空元组。[vincentfretin]

3.11 - 2009-10-05

  • 撤销了在3.10中引入的性能修复。enumerateUsers不应在id或login不为None时返回结果,就像在3.9中一样(数据字典不包含id或login键,因此testMemberData始终返回False)。搜索仅在kw参数不为空时执行。这是新的优化修复。[vincentfretin]

3.10 - 2009-09-06

  • 对可变属性插件中的搜索进行性能修复:当只搜索用户id时,不要遍历所有属性,只需测试用户id是否已知。这修复了http://dev.plone.org/plone/ticket/9361 [toutpt]

  • 嵌套组现在在prefs_group_members中可见。这关闭了http://dev.plone.org/plone/ticket/8557 [vincentfretin]

  • 添加对PASSearchView接口的排序和合并,以防止代码重复。[csenger]

3.9 - 2009-04-21

3.8 - 2009-02-13

  • 更新角色管理器的assignRoleToPrincipal方法以延迟更新缓存的门户角色列表。这修复了使用GenericSetup创建的角色添加用户的问题。[wichert]

  • 修复了我们的OrderedDict,使其在pickle协议2中不可序列化。在反序列化时,__init__方法不会被调用,并且在协议2中的优化会调用__setitem__而不初始化_list。即使使用__getstate__ / __setstate__组合也无法解决这个问题。这个更改是在使用membrane和MemcachedManager时发现的。[hannosch, tesdal]

3.7 - 2008-09-28

  • 删除了PluggableAuthService组件的弃用zcml语句:这些现在在PluggableAuthService本身中。[wichert]

  • 调整了弃用警告,使其指向Plone 4.0而不是Plone 3.5,因为我们再次更改了版本编号。[hannosch]

3.6 - 2008-06-25

  • 修改PloneGroup.getMemberIds以使用所有IGroupIntrospection插件获取组成员。这使得在LDAP组中列出成员成为可能。[wichert]

3.5 - 2008-06-25

  • 使PASSearchView.merge实际上合并搜索结果。它以前的行为相当糟糕:它优先考虑具有最低优先级的枚举插件搜索结果![wichert]

3.4 - 2008-03-26

  • 为更改的setLoginFormInCookieAuth升级方法添加了BBB代码。[hannosch]

  • 在从pre-PAS迁移期间忽略并记录没有密码的用户,因为这些用户不能添加到任何标准用户源。[hannosch]

  • 修复了角色插件上的listRoleInfo以延迟更新门户角色列表。[wichert]

3.3 - 2007-03-07

  • 将metadata.xml文件添加到配置文件中。[hannosch]

  • 将全局角色查找从本地角色插件中移除。这是Plone 3.1 PLIP 127合并的一部分。[alecm]

3.2 - 2008-02-15

  • 修复了ZODBMutablePropertyProvider初始化的架构处理。[maurits]

  • 从安装逻辑中移除一些异常抑制,以便错误不会隐藏。[hannosch]

  • 当修改组时正确处理空角色列表。这解决了http://dev.plone.org/plone/ticket/6994 [rsantos]

3.1 - 2007-10-08

  • 改进搜索的排序处理。[csenger]

  • 更新组的角色时没有使_findGroup缓存失效。[wichert]

  • 修正了一些工具图标,使其指向现有图标。[hannosch]

3.0 - 2007-08-16

  • 修复了authenticateCredentials返回值的检查。[rossp]

3.0rc2 - 2007-07-27

  • 在我们的搜索视图中伪造getPhysicalPath,以便ZCacheing在所有地方都能正常工作。[wichert]

  • 添加了已登录和未登录事件的类。[wichert]

3.0rc1 - 2007-07-08

  • 在MemberData能力方法中纠正逻辑:任何插件都可以(重新)设置密码、删除用户或添加角色。[wichert]

  • 在组插件中使用适当的API获取包含的PAS。[wichert]

  • 修复了在用户对象上设置用户属性。[wichert]

3.0b7 - 2007-05-05

  • 再次删除了五:registerPackage语句。它在ZEO环境中引起问题。[hannosch]

  • 从ToolInit中删除了我们版本的Plone工具。它将不再获得图标,并且无法添加它,但现有实例仍然工作。无论如何,我们还是将所有实例迁移回常规工具。[hannosch]

3.0b6 - 2007-05-05

  • 修复了两个与迁移相关的测试失败。[hannosch]

  • 春季大扫除,移除了一些冗余,pyflaked并纠正了一些未定义的名称。[hannosch]

  • 新的包布局,遵循标准的Python包约定。[hannosch]

  • 在ToolInit中修正了工具名称,以便权限具有正确的名称。这关闭了http://dev.plone.org/plone/ticket/6525。[hannosch]

3.0-beta5 - 2007-05-02

  • 修改角色插件以从门户惰性更新其角色列表。[wichert]

  • 过滤重复的搜索结果。[laz, wichert]

  • 向搜索方法添加sort_by选项,允许根据属性对结果进行排序。[laz, wichert]

  • 修改cookie插件的登录方法,使其在用户的PAS而不是插件的PAS中执行凭据更新。这有助于确保用户将只对其自己的用户文件夹进行身份验证,因此我们可以正确地获取所有他们的角色、属性等。[wichert]

  • 更新安装逻辑以使用plone.session进行cookie。[wichert]

  • 添加pas_info和pas_search浏览器视图。[wichert]

  • 弃用PlonePAS PloneTool;其更改已合并到标准Plone版本中。[wichert]

  • 使用getUtility获取门户对象。[wichert]

  • 弃用通过CMF成员和组工具进行用户和组搜索,以支持PAS枚举。[wichert]

  • 重构会员工具中的用户搜索,以使用标准的PAS搜索。[wichert]

  • 向可变属性插件添加用户枚举功能。[wichert]

  • 添加一个新的自动组插件,将所有用户放入一个虚拟组。这对于权限处理很有用:由于无法向具有认证角色的用户添加角色,因此可以使用虚拟组代替。[wichert]

  • 添加了对导入PloneUserFactory的支持,并为ZODBMutableProperties添加了存根。注意:后者需要一个真正的导出和导入!目前它不导出属性表。这是一个待办事项。至少通过这两个添加,PlonePAS导入可以运行。此外,我还需要对PluginRegistry和PluggableAuthService进行一些修改。[jensens]

  • 添加HISTORY.txt并更新版本信息。[hannosch]

2.4 - 2007-04-15

  • 优化本地角色插件,以处理local_roles为空的情况。[dreamcatcher]

  • plone用户假设属性插件和用户属性表之间存在一对一的映射,并在检索有序表时删除额外的属性表,而现在是将所有属性表存储在有序字典中,因此不需要这个假设。[k_vertigo]

  • 更多postonly安全更改。[alecm, ramon]

2.3 - 2007-05-30

  • 使用本地postonly装饰器,以便PlonePAS可以与Plone 2.5、2.5.1和2.5.2兼容。[wichert]

  • 使用postonly安全修饰符保护工具。[mj]

  • 更新GRUF兼容性函数,使其使用与GRUF本身相同的安全检查。[mj]

  • 修复迁移以处理选择或多选类型的属性。[reinout]

  • 正确创建默认组管理员的组。[dreamcatcher]

  • 修复从GRUF站点迁移的问题:在迁移中也包含成员属性。[tesdal]

  • 修复创建具有与用户相同ID的组的测试:搜索精确ID,而不是子字符串。[tesdal]

  • 修复不良的表单操作,这使得无法通过ZMI添加plone用户工厂插件。已从主干分支回滚。[wichert]

项目详情


发布历史 发布通知 | RSS订阅

下载文件

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

源分发

products_plonepas-8.0.4.tar.gz (127.8 kB 查看哈希值)

上传时间

构建分发

Products.PlonePAS-8.0.4-py3-none-any.whl (120.2 kB 查看哈希值)

上传时间 Python 3

支持