2

我有一个 Plone 实例(4.2.2)正在运行,需要自动创建用户帐户。我真的很想使用外部 Python 脚本或其他一些基于 Linux 的命令行实用程序(例如“curl”)来执行此操作。

如果我使用 curl,我可以进行身份​​验证以访问“@@new_user”页面,但我似乎无法在标题中获得正确的 POST 设置。

如果我不使用 curl 而是使用 Python 脚本,是否有任何实用程序或库可以做到这一点?我尝试过使用诸如Products.CMFCore.utils.getToolByName“portal_registration”之类的库 - 但我似乎无法让它在常规脚本(没有请求/上下文的脚本)中工作。

该脚本需要在服务器上每 N 分钟运行一次(用户信息是从外部数据库中获取的)。我还需要没有密码 - 并选择向用户发送电子邮件以设置他们自己的密码的选项,并且我需要将此用户添加到预定义的组中。

有什么建议——也许是另一个更能满足这些要求的实用程序或内置库?

4

1 回答 1

2

有许多脚本用于批量导入用户。一个很好的是 Tom Lazar 的 CSV 导入http://plone.org/documentation/kb/batch-adding-users。如果您需要从命令行运行 Tom 的脚本,例如作为 cron 作业,可以很容易地将 Tom 的脚本调整为作为 Zope“运行”脚本运行。“运行”脚本是使用 Zope 或 ZEO 客户端实例通过“bin/client5 run my_script.py”等命令处理的脚本。

然而,这样的策略是单向的。这听起来像是您与 Martijn 的对话,您可能会通过创建一个可插入的身份验证系统 (PAS) 插件来提供与外部数据库源的连接来获得更好的效果。这种策略的好处是您可以非常精确地确定哪些用户属性具有哪些来源(外部数据库或 Plone 成员属性管理器)。文档(如 MJ 所示)位于http://plone.org/documentation/manual/developer-manual/users-and-security/pluggable-authentication-service/referencemanual-all-pages

确保查看是否已经为您的外部数据源编写了插件。已经有许多身份验证方案和数据库的插件(如 LDAP 和 SQLAlchemy)。

于 2013-01-08T15:48:59.347 回答