如何更新plone自定义策略(例如mysite.policy)加载项

FvD*_*FvD 2 plone

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

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

此外,用户权限似乎没有改变.可能是因为它们已经在网站设置时创建.但我无法弄清楚如何编写对权限的更改以及rolemap.xml中的权限设置.我认为xml中的任何内容都是我的plone世界的规则,但这似乎并不起作用.

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

Ask*_*kka 5

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

如果你的变化包括在网站政策的通用安装配置文件(仅改变./src/my/site/policy/profile/default/ -files),你不想自动升级,你可以简单地更新所述轮廓文件并重新运行策略的特定导入步骤:

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

  2. 启用时选择Import -tab portal_setup.

  3. 选择从您的网站策略的配置文件选择配置文件或快照 -list(您的个人资料的标题被定义registerProfile在-directive configure.zcmlprofiles.zcml您的保单产品).

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

  5. 从页面底部,取消选择" 包含依赖项".

  6. 单击" 导入所选步骤 -按钮".

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

这些步骤应仅重新导入站点策略产品的Generic Setup -profile的选定导入步骤.以这种方式重新导入单个步骤应该是非常安全的,但要小心:portal_setup屏幕上的意外点击可能会产生不可预测的后果.

通过定义名为Generic Setup Upgrade Step的内容,也可以自动执行这些步骤.

  1. 我希望您的站点策略产品的默认Generic Setup -profile包含metadata.xmlline <version>1</version>.

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

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

    <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"
        />
    
    Run Code Online (Sandbox Code Playgroud)

这些步骤应该从概要文件版本1到2注册这样的升级步骤,该步骤重新导入步骤角色图工作流(rolemap.xmlworkflows.xml).您应该能够从Plone站点设置的附加组件屏幕运行升级步骤,现在应该在安装的策略产品之后有一个升级按钮.

正如@toutpt所述,Collective Developer Manual有更多关于升级步骤的例子.如果您曾经想过,为什么建议使用整数metadata.xml,通常独立于产品的发布版本号',这就是原因:).