将Plone用户和组迁移到关系数据

时间:2015-03-03 18:05:16

标签: plone plone-4.x

我有一个Plone 4站点,其中包含许多存储在ZODB中的用户和组。随着时间的推移,我们添加了一些使用关系数据的功能(在PostgreSQL数据库中);某些表包含包含用户或组ID的字段。

但是,目前用户和组是在ZODB而不是RDB中定义的,因此我们在这里没有适当的外键。因此,显而易见的想法是将用户和组数据迁移到RDB--至少是Plone站点使用的那些/;我认为紧急用户需要成为例外(但无论如何,这些都不是任何组的成员)。

这会是一件好事吗?

是否有理由仅部分地执行此操作,还是应该转移包括组成员身份在内的所有内容? (由于成员资格被存储为包含组的用户(和/或组)列表,我可以想象一个反向表,它包含用户所属的所有组,并由触发器函数维护。)

是否有任何特殊工具可供使用?

谢谢!

2 个答案:

答案 0 :(得分:2)

imho它基于你想要达到的目标。在Plone中你有PAS,所以从技术上来说,放置用户,群组和用户组关系并不重要。

您可以将用户/群组存储在:

AUTH还有许多其他插件,如RPX,Goolge +等。

您可以通过PAS启用,禁用和修改每个插件的行为。

不使用Plone用户是否有意义?

当然,如果您想共享用户凭据(示例LDAP),或者您需要其他应用程序中的用户信息等。

<强>移植

如果您使用的PAS插件支持&#34;属性&#34;应该非常简单。和&#34;用户枚举&#34;。

从一个插件中获取数据,并使用简单的python脚本将数据放入另一个插件中。两者都支持相同的API。

答案 1 :(得分:1)

您正在寻找的工具是https://pypi.python.org/pypi/pas.plugins.sqlalchemy/0.3

我在Webportal中使用了这个,用户与新闻稿系统“共享”。 我有200个用户和任何问题。

我认为将用户存储在外部数据库而不是zodb / plone中的唯一“好理由”就像我的用例一样。

你有没有想过“扩展”plone用户(例如https://plone.org/products/collective.examples.userdata)?使用plone.api,您可以轻松地在代码中操纵用户的属性。