2

我正在使用 Plone 4.1 和collective.externaleditor。我希望每当创建新用户时,将他的个人偏好 ext_editor 设置为 True。

我订阅了用户创建事件,但我无法更改该属性:

配置.zcml:

 ...
 <subscriber
      for="Products.PluggableAuthService.interfaces.events.IPrincipalCreatedEvent"
      handler=".events.newUser"
      />

事件.py:

from zope.app.component.hooks import getSite
from Products.CMFCore.utils import getToolByName

def newUser(user):
    '''Sets external editor property to True for new users.'''
    mtool = getToolByName(getSite(), 'portal_membership')
    # what should i put here?
    user.principal.setProperties({'ext_editor': True})

newUser 没有做它的工作。user.principal 的类型是 Ploneuser。它没有 setMemberProperties 方法,所以我不知道该怎么做。

collective.externaleditor 也向控制面板添加了一个属性“ext_editor”,所以我可以通过编程方式对其进行更改。

如何为新创建的用户将 ext_editor 设置为 True?

谢谢。

4

1 回答 1

3

这是我找到的答案。

配置文件/默认/memberdata_properties.xml:

<?xml version="1.0"?>
<object name="portal_memberdata" meta_type="Plone Memberdata Tool">
 <property name="ext_editor" type="boolean">True</property>
</object>
于 2012-07-28T12:50:16.743 回答