2

当我第一次创建我的 Plone (4.1) 站点时,我制作了一个 mysite.policy 插件以包含一些自定义用户和自定义工作流程。

我需要对工作流程和权限进行一些更正。我更新了 src 以包含这些更改,但是通过 Plone 附加管理器(卸载 - 安装)更新包不起作用。一旦我卸载所有条目的状态就会切换到“本地策略”,所以当我重新安装时我无法恢复细粒度的状态设置。

此外,用户权限似乎没有改变。可能是因为它们已经在站点设置时创建。但是我不知道如何在 rolemap.xml 中编写权限更改与权限设置。我认为该 xml 中的任何内容都是我的克隆世界的规则,但这似乎不起作用。

到目前为止,我在手头的手册和书籍中找不到任何关于此的内容。任何提示如何解决这个问题?也许解决这个问题的唯一方法是通过 ZMI 进行一系列手动更改,但这样做就没有那么优雅了。

4

2 回答 2

5

有很多选择。我将尝试描述其中的几个。

如果您的更改仅包括站点策略的通用设置配置文件(./src/my/site/policy/profile/default/ -files)的更改,并且您不想自动升级,您可以简单地更新配置文件-文件并为您的策略重新运行这些特定的导入步骤:

  1. 为您的站点打开 ZMI( site/manage) 并查找portal_setup.

  2. 打开时选择Import -tab portal_setup

  3. 从 Select Profile或Snapshot -list 中选择您的站点策略的配置文件(您的配置文件的标题由您的策略产品中的registerProfile指令定义)。configure.zcmlprofiles.zcml

  4. 单击以选择角色/权限映射工作流工具的导入步骤。

  5. 从页面底部,取消选择Include dependencies

  6. 单击导入选定的步骤- 按钮。

  7. 如果您的工作流程更新应该修改现有工作流程状态中的权限,请转到portal_workflowZMI 上的 -tool 和更新安全设置。

这些步骤应仅重新导入站点策略产品的通用设置配置文件中选定的导入步骤。以这种方式重新导入单个步骤应该是非常安全的,但要小心:portal_setup屏幕上的意外点击可能会产生不可预知的后果。

这些步骤也可以通过定义一个叫做 Generic Setup Upgrade Step的东西来自动化。

  1. 我希望您的站点策略产品的默认通用设置配置文件包含metadata.xmlline <version>1</version>

  2. 将该行更新为<version>2</version>.

  3. 使用 -directive打开zcml-file registerProfile,然后添加

    <genericsetup:upgradeDepends
        source="1" destination="2" sortkey="1"
        title="Upgrade my.site.policy (1 to 2)"
        description="Upgrades my.site.policy's default profile from version version 1 to 2."
        profile="my.site.policy:default"
        import_steps="rolemap workflow"
        run_deps="false"
        />
    

这些步骤应注册从配置文件版本 1 到 2 的升级步骤,该步骤重新导入步骤角色映射和工作流rolemap.xml工作流.xml)。您应该能够从 Plone Site Setup 的附加组件屏幕运行升级步骤,在您安装的策略产品之后现在应该有一个升级按钮。

正如@toutpt 所提到的,集体开发人员手册有更多关于升级步骤的示例。如果您曾经想知道,为什么建议在 中使用整数metadata.xml,通常独立于产品的发布版本号',这就是原因:)。

于 2012-04-12T17:49:04.527 回答
1

任何需要升级的更改必须通过增加 profile/default/metadata.xml 中的数字来显示(保持整数)。接下来,您必须编写升级步骤。它将在插件控制面板中添加一个升级按钮。

请按照本教程了解如何创建升级步骤:http ://collective-docs.readthedocs.org/en/latest/components/genericsetup.html?highlight=upgradestep#upgrade-steps

于 2012-04-13T09:36:56.603 回答