gpt4 book ai didi

特定文件夹中允许的 Plone 内容

转载 作者:行者123 更新时间:2023-12-01 00:41:21 35 4
gpt4 key购买 nike

我在 Plone 4.3.9 中创建了一个自定义类型的灵巧性,称为 PersonalPage,必须只允许在特定文件夹中使用 成员文件夹/用户文件夹 .
在他的 FTI 中,默认情况下 <property name="global_allow">False</property> .
在 Plone 4.3.3 中,用户文件夹是在 Members_folder 中使用经过身份验证的用户的 uid 创建的:

if homefolder is None:
# create userfolder in members_folder
members_folder.invokeFactory('Folder', user_id)
userfolder = members_folder[user_id]
utils = userfolder.plone_utils
utils.changeOwnershipOf(userfolder, user_id,
1, None)
userfolder.setCreators([user_id])
roles = list(userfolder.get_local_roles_for_userid(user_id))
if 'Owner' not in roles:
roles.append('Owner')
userfolder.manage_setLocalRoles(user_id, roles)

if shasattr(userfolder, 'canSetConstrainTypes'):
userfolder.setConstrainTypesMode(1)
defaultAllowedTypes = userfolder.getLocallyAllowedTypes()
userfolder.setLocallyAllowedTypes(defaultAllowedTypes + ('personalpage',))
defaultAddableTypes = userfolder.getImmediatelyAddableTypes()
userfolder.setImmediatelyAddableTypes(defaultAddableTypes + ('personalpage',))
userfolder.reindexObjectSecurity()
userfolder.reindexObject()

但是在运行此脚本后,内容类型 PersonalPage 不会出现在用户文件夹的可添加和允许的内容类型列表中。
这有什么问题?是否有另一种方法允许仅对文件夹添加内容类型?

最佳答案

由于 global_allow 标志,脚本不起作用。

Plone 有 2 个级别的内容类型添加限制:

  • 第一个是全局设置:如果一个内容类型不是全局允许的,那么它不能被添加到任何地方,直到一个内容类型明确地将它列为可能的子类型
  • 另一种是TTW可添加类型,它只是限制了上面定义的内容集

  • 如果您需要限制单个文件夹的可添加类型,您可以将您的文件夹定义为一种新的特殊类型,仅在站点中使用一次(因此保持 global_allow 为真,创建一个文件夹,然后禁用它);最后将 PersonalPage 指定为其中的 allowed_types 之一,并将 PersonalPage 的 global_allow 设置保持为 False。

    或者,您可以使用 collective.factorymenu , 通过网络修改Plone添加菜单(尚未发布但正在工作)。

    关于特定文件夹中允许的 Plone 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520992/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com