我有一个Plone实例(4.2.2)正在运行,需要自动创建用户帐户。我真的很想使用外部Python脚本或其他一些基于Linux的命令行实用程序(例如“curl”)来执行此操作。
如果我使用curl,我可以通过身份验证来访问“@@ new_user”页面,但我似乎无法在标题中获得正确的POST设置。
如果我不使用curl并使用Python脚本,那么有没有可以执行此操作的实用程序或库?我已经尝试使用诸如Products.CMFCore.utils.getToolByName
之类的库并获得“portal_registration” - 但我似乎无法在常规脚本(没有请求/上下文的脚本)中使用它。
此脚本需要在服务器上每N分钟运行一次(从外部数据库中获取用户信息)。我还需要没有密码 - 并选择通过电子邮件发送用户设置自己的密码的选项,我需要将此用户添加到预定义的组中。
是否有任何建议 - 可能是另一个更好地满足这些要求的实用程序或内置库?
答案 0 :(得分:2)
有许多脚本可供批量导入用户。一个好的是Tom Lazar的CSV导入http://plone.org/documentation/kb/batch-adding-users。如果你需要从命令行运行它,那么Tom的脚本可以非常容易地适应作为Zope“运行”脚本运行,比如作为一个cron作业。 “运行”脚本是使用Zope或ZEO客户端实例通过“bin / client5 run my_script.py”之类的命令处理的脚本。
然而,这样的策略是单向的。这听起来来自你与Martijn的对话,就像你可以通过创建一个可插入的身份验证系统(PAS)插件来提供与外部数据库源的连接更好。这个策略的优点在于,您可以非常精确地确定哪些用户属性具有哪个源(外部DB或Plone成员资格属性管理器)。文件(如MJ所示)位于http://plone.org/documentation/manual/developer-manual/users-and-security/pluggable-authentication-service/referencemanual-all-pages。
确保查看是否已为您的外部数据源编写了插件。已有许多auth方案和dbs的插件(如LDAP和SQLAlchemy)。