Plone content is allowed in a specific folder

I created a special type agility in Plone 4.3.9 called PersonalPage, which should only be allowed in the specific Members_folder / userfolder folder . In its FTI by default <property name="global_allow">False</property>. A user folder is created in Member_folder with the uid of the authenticated user, in Plone 4.3.3:

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()

But after running this script, the PersonalPage content type does not appear in the list of valid and valid user folder content types. What's wrong with it? Is there any other way to allow a content type that is added only for a folder?

+4
source share
1 answer

the script does not work due to the global_allow flag.

Plone 2 :

  • - : , ,
  • - TTW, , .

, , ( global_allow true, , ); , PersonalPage global_allow PersonalPage False.

collective.factorymenu, Plone ( , ).

+4

All Articles