适用于Zope内容管理框架的Uid产品
项目描述
Products.CMFUid
CMFUid 引入了一个简单的唯一ID实现。
实现
提供的工具将唯一ID附加到对象上。对象不需要知道唯一ID。
当前的实现依赖于门户目录以找到给定唯一ID的对象。接口不暗示使用目录(除了 IUniqueIdBrainQuery)。
哪些工具做什么?
“portal_uidgenerator”工具的职责是生成唯一ID。“portal_uidannotation”工具负责将唯一ID附加到内容对象上,并强制执行对象移动/创建/删除时的规则。“portal_uidhandler”管理注册和访问唯一ID。
选择这种设计是为了允许用户仅替换功能的一部分,而无需理解整个系统。
唯一ID API
实现“IUniqueIdHandler”的“portal_uidhandler”是操作唯一ID的主要API。
用法
“portal_uidhandler”完全实现了 IUniqueIdHandler(IUniqueIdSet 用于注册/注销唯一ID,IUniqueIdQuery 用于查询,IUniqueIdBrainQuery 通过返回目录脑而不是对象来进行更有效的查询)。
当前实现 get/queryBrain 和 get/queryObject 不返回不可见对象(以及不可见对象的脑)。不可见对象是指由于过期/生效日期和/或用户角色而被 portal_catalog.searchResults 过滤掉的对象。
在应用程序中通常需要避免这种过滤。为此,请使用 unrestrictedGet/QueryBrain 和 unrestrictedGet/QueryObject,这将避免“None”结果。
查看接口。
CMFUid 的功能被 CMFDefault 的收藏内容类型用于跟踪链接对象。如果未安装 CMFUid,收藏内容类型将像以前一样工作。
更新 2007-03-30
注释代码已更新,以使用事件进行分配/删除 uids。这些设置的 live 在 portal_uidannotation 工具中。
默认行为是
创建对象时不会分配 uids(假定其他代码负责此操作)
当对象移动时,UID 不会更改
当对象导入时,任何现有的 UID 都将被删除(这可以通过“remove_on_add”属性进行控制)
当对象复制时,任何现有的 UID 都将被删除(这可以通过“remove_on_clone”属性进行控制)
更自然的行为是在创建时自动分配 UIDs。要启用此功能
勾选“在添加时分配 UIDs”复选框(当内容添加或导入时将分配 uids,任何现有的 uid 将被替换)
勾选“在复制时分配 UIDs”复选框(当复制对象时,它们将获得一个新的 uid,这将替换任何现有的 uid)
为了保留工具的原始行为,自动分配 UIDs 不是默认启用的 - 必须在 uidannotation 工具中将其打开。
基于对象创建/删除/移动事件,基于任何 IContentish 对象的行为。事件处理程序位于 UniqueIdAnnotation 工具中。
Products.CMFUid 变更日志
4.2 (2024-01-23)
修正 DeprecationWarning: 从 zope.lifecycleevent 导入 IObjectAddedEvent。
4.1 (2023-10-02)
修改了 handleUidAnnotationEvent 的代码,以在使用它们之前检查注释工具和 UID 工具是否存在。此更改确保除非两个工具都可用,否则代码不会运行。
4.0 (2023-02-01)
停止支持 Python 2.7、3.5、3.6。
3.5 (2022-12-16)
修复针对 Zope 4 的测试中隐秘的构建配置错误。
添加对 Python 3.11 的支持。
3.4 (2022-07-21)
当一个对象的 UID 被设置后重新索引,只重新索引 cmf_uid 索引,而不是所有索引。
3.3 (2022-07-13)
添加对 Python 3.10 的支持。
3.2.0 (2021-03-15)
添加对 Python 3.9 的支持。
改变包结构,将包代码移动到 src 子文件夹。
3.1.0 (2020-09-28)
修复了 zope.component.interfaces.IObjectEvent 的弃用警告。
取消对 python setup.py test 的支持,该命令在 Python 3.7+ 中已损坏。
3.0.2 (2020-06-24)
清理和净化包以及测试配置。
移除 DeprecationWarning: “InitializeClass 已弃用。请从 AccessControl.class_init 导入。” 现在与 Zope 5 兼容。
3.0.1 (2018-11-07)
修复测试隔离问题 [petschki]
3.0 (2018-07-05)
要求 Zope >= 4。
添加对 Python 3.5 和 3.6 的支持。
适应新的索引操作排队。作为 PLIP 1343 的一部分:https://github.com/plone/Products.CMFPlone/issues/1343 [gforcada]
2.3.0-beta (2012-03-21)
确保转换的工具作为工具使用。
至少要求 Zope 2.13.12。
2.2.1 (2010-07-04)
处理 Zope 2.13 的弃用警告。
修复标记错误(Chameleon 兼容性)
2.2.0 (2010-01-04)
自 2.2.0-beta 版本以来没有变化
2.2.0-beta (2009-12-06)
自 2.2.0-alpha 版本以来没有变化
2.2.0-alpha (2009-11-13)
将 Zope 依赖项移至版本 2.12.0b3dev
清理并规范化导入
o 不要从 Globals 导入;而是使用真实的位置。
- o 使其他导入使用实际的源模块,而不是中间(例如,优先从 'AccessControl.SecurityInfo' 导入 'ClassSecurityInfo' 而不是从 'AccessControl' 导入)。
添加缺失的 IUniqueIdHandler 工具注册。请参阅 https://bugs.launchpad.net/bugs/299058 .
UniqueIdHandlerTool:调用获取 UID 的对象的 reindexObject 属性,而不是 portal_catalog 的 reindexObject。这对于像门户网站这样的对象是必要的,这些对象永远不会被编目。
移除了自动创建 UID 处理工具的索引和列的冗余和意外的代码。索引和列已经由默认的 CMFUid GenericSetup 配置文件创建。(http://www.zope.org/Collectors/CMF/472)
自 2.1.2-beta 版本以来没有变化
2.1.2 (2008-09-13)
将 Zope 依赖项移至版本 2.10.4
2.1.2-beta (2008-08-26)
完成从单体 CMF 包分解为其组件产品,这些产品作为 PyPI 上的 eggs 分发。
测试:基于 ZopeTestCase.layer.ZopeLite 的 Base UidEventZCMLLayer。
UniqueIdHandlerTool:在错误消息中使用 %r 而不是 %s,这样我们就不会遇到非 ASCII 表示(例如文件和图像)。
2.1.1 (2008-01-06)
没有变化
2.1.1-beta(2007-12/29)
测试:如果有可用,从 ZopeLite 层派生测试层。
2.1.0 (2007-08-08)
修复所有 componentregistry.xml 文件,以使用普通对象路径并删除和斜杠。GenericSetup 只支持注册位于站点根部的对象。
2.1.0-beta2 (2007-07-12)
将 Zope 依赖项移至版本 2.10.4
移除对标记属性的陈旧使用,改用接口,并保留 BBB 以防止可能影响第三方代码的地方。(http://www.zope.org/Collectors/CMF/440)
向安全关键方法添加仅 POST 保护。http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0240)
UniqueIdAnnotationTool:将注释处理从通过旧式 manage_*-方法触发切换到使用事件。UID 分配行为变得更加灵活。请查阅 CMFUid/README.txt 以了解当前行为和新功能。(http://www.zope.org/Collectors/CMF/474)
2.1.0-beta (2007-03-09)
将 Zope 依赖项移至版本 2.10.2
工具查找和注册现在以 Zope 3 方式作为实用程序执行,请参阅 http://svn.zope.org/CMF/branches/2.1/docs/ToolsAreUtilities.stx?view=auto
UniqueIdHandlerTool: 在内容项上触碰内部UID值不会再导致所有索引重新索引,只会触碰特定的UID索引。(http://www.zope.org/Collectors/CMF/469)
2.1.0-alpha2 (2006-11-23)
将Zope依赖项升级到版本2.10.1
修复了由于在Zope 2.10+中使用Z3页面模板而导致的测试中断。
浏览器视图:添加了一些基于zope.formlib的表单。
测试:添加了用于设置ZCML的测试层。
2.1.0-alpha (2006-10-09)
皮肤:更改了翻译后的portal_status_messages的编码。现在使用getBrowserCharset与Five表单友好地交互。必须更新自定义的setRedirect和getMainGlobals脚本。
配置文件:所有配置文件现在都通过ZCML进行注册。
ZClasses:移除了对ZClasses的不维护支持。将‘initializeBases*’方法标记为已弃用。
内容:为所有内容类添加了IFactory实用工具。现在默认使用它们而不是旧的构造函数方法。
内容:现在所有内容类都通过ZCML进行注册。ContentInit仍然用于注册旧式构造函数。
设置处理器:移除了对CMF 1.5 CMFSetup配置文件的支持。
早期版本
关于2.1.0-alpha版本之前的完整更改列表,请参阅CMF-2.1分支上的HISTORY.txt文件:http://svn.zope.org/CMF/branches/2.1/HISTORY.txt?view=auto
项目详情
下载文件
下载适用于您平台的自定义文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
构建发行版
Products.CMFUid-4.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 74bb13a8189a4308cdd07ab6b63a6132f8e08c9810d69df936c94bfd57d2f942 |
|
MD5 | 50b41c9719534d382749361cc9624303 |
|
BLAKE2b-256 | 77f59bd554fd5adfc29ab2d49eb027b9852ff9277ef657cf627d1db396c33083 |
Products.CMFUid-4.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | efb46b10dd55d0c2f207c25c4534df20b70492eb2e4a5b75d0f168961d4560fe |
|
MD5 | 73842552a92f162488912cd840ee9377 |
|
BLAKE2b-256 | baf75a022443b99fc39772d3c953726f27d0006561e217632f00344298466c04 |