0

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

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

这是一件好事吗?

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

有什么特殊的工具可以使用吗?

谢谢!

4

2 回答 2

2

恕我直言,它基于您想要实现的目标。在 Plone 中,您有PAS,因此从技术上讲,将用户、组和用户组关系放在哪里并不重要。

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

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

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

不使用 Plone 用户有意义吗?

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

移民

如果您使用的 PAS 插件支持“属性”和“用户枚举”,应该非常简单。

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

于 2015-03-04T07:24:59.233 回答
1

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

我在一个门户网站中使用了这个,用户可以与一个通讯系统“共享”。我有 200 个用户和任何问题。

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

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

于 2015-03-04T07:13:37.590 回答