Plone的用户迁移
项目描述
简介
此产品允许将关联于主ID(用户或组)的各种用户特定数据迁移到另一个主ID。如果需要重命名ID,则特别有用。
目前可以迁移以下用户数据
用户(ZODB用户管理器)
用户属性(ZODB可变属性提供者)
组成员
本地角色
仪表盘
主页文件夹
安装
将 ftw.usermigration 添加到您的 buildout 的 eggs 列表中。然后重新运行 buildout 并重启您的实例。
用法
在浏览器中打开 @@user-migration。
注册主体映射
如果您想以程序化方式提供主体映射而不是通过网页输入,您可以通过注册一个或多个实现 IPrincipalMappingSource 的命名适配器来实现。
示例
class MigrationMapping(object):
def __init__(self, portal, request):
self.portal = portal
self.request = request
def get_mapping(self):
mapping = {'old_user': 'new_user',
'old_group': 'new_group'}
return mapping
ZCML
<adapter
factory="my.package.migration.MigrationMapping"
provides="ftw.usermigration.interfaces.IPrincipalMappingSource"
for="Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot
zope.publisher.interfaces.browser.IBrowserRequest"
name="ad-migration-2015"
/>
这将导致此映射可以在 @@user-migration 表单中以名称 ad-migration-2015 选择为映射源。
注册迁移前和迁移后钩子
如果您想在 ftw.usermigration 中提供的任何内置迁移类型之前或之后运行自己的代码,您可以通过注册实现 IPreMigrationHook 或 IPostMigrationHook 接口的钩子来实现。
示例
class ExamplePreMigrationHook(object):
def __init__(self, portal, request):
self.portal = portal
self.request = request
def execute(self, principal_mapping, mode):
# ...
# your code here
# ...
results = {
'Step 1': {
'moved': [('/foo', 'old', 'new')],
'copied': [],
'deleted': []},
'Step 2': {
'moved': [('/bar', 'old', 'new')],
'copied': [],
'deleted': []},
}
return results
钩子适配器的 execute() 方法接收 principal_mapping 和 mode 作为参数。
其结果预期为字典的字典:外部字典允许钩子将执行的多个步骤分组并分别报告其结果。内部字典遵循与内置迁移结果相同的结构。
ZCML
<adapter
factory=".migrations.ExamplePreMigrationHook"
provides="ftw.usermigration.interfaces.IPreMigrationHook"
for="Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot
zope.publisher.interfaces.browser.IBrowserRequest"
name="example-pre-migration-hook"
/>
链接
版权
此软件包由 4teamwork 版权所有。
ftw.usermigration 根据 GNU 通用公共许可证,版本 2 许可。
变更日志
1.3.0 (2023-01-23)
添加对 Python 3 和 Plone 5.2 的支持。[lgraf]
添加 Plone 5.1 兼容性。[phgross]
删除 Plone 4.2 兼容性。[phgross]
1.2.0 (2017-05-01)
实现登录名迁移步骤。[elioschmutz]
修复迁移用户名是另一个用户名开头的用户。[elioschmutz]
实现群组成员迁移。[elioschmutz]
删除对 Plone 4.1 的支持。[jone]
1.1 (2015-04-17)
添加选项仅显示迁移结果的摘要。[lgraf]
将详细的迁移结果记录到日志文件(可选)。[lgraf]
添加全局角色(portal_role_manager)的迁移。[lgraf]
添加支持迁移前和迁移后钩子。[lgraf]
确保 迁移 字段始终使用 CheckBoxFieldWidget。[lgraf]
使用 transaction.doom() 进行干运行。这确保即使意外调用 commit() 也不会导致数据库写入。[lgraf]
通过注册名为 IPrincipalMappingSource 的适配器来支持以编程方式提供主体映射。[lgraf]
将 user 重命名为 principal(适用于适用的情况):大多数操作对组和用户都有效。因此,映射可以包含主体 ID,而不仅仅是用户 ID。[lgraf]
1.0 (2014-06-16)
初始发布
项目详情
下载文件
下载适用于您平台的自定义文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。
源代码分发
ftw.usermigration-1.3.0.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | ad93ecabb2be92a55901eb6b7d53068086d3c059fe2d900d0f8df3f2073b4742 |
|
MD5 | 0a4824bbd254db9ac763a2d3b6ed1e04 |
|
BLAKE2b-256 | 3b1c023a1cfffb1da05720b3f26f43f1e54110ceb76aee45f11a10cbf0be2073 |