[Zope-CMF] adding two types with different permissions
Florent Guillaume
fg@nuxeo.com
Wed, 31 Jul 2002 13:42:53 +0000 (UTC)
kapil thangavelu <kthangavelu@earthlink.net> wrote:
> On Monday 29 July 2002 12:53 pm, Karl Anderson wrote:
> > I'm trying to add two types from the same Zope product. Because I
> > want separate permissions for each's constructors, I'm using two
> > ContentInit calls. However, this isn't working.
>
> short answer, as far as i can tell, it isn't possible. the long answer, is
> infinitely more ugly.
>
> if you do try it as below, you should get the results and registration
> of the last ContentInit, assuming everything else is working.
Why wouldn't it work ? The classes, constructors and fti are all
different. I don't see the problem.
Florent
> > The Post ContentInit call below seems to wreck everything. Starting
> > Zope with the code below in the shared __init__.py causes neither type
> > to show up in the types tool. If I comment out the Post ContentInit,
> > the forum type gets added. If I use only the commented-out
> > ContentInit that inits both, it works as well, but I can't use a
> > separate permission in that case.
> >
> > I'm not getting a startup error or any indication of failure in the
> > console that starts Zope.
> >
> > Seems like Post is wrecking it, of course, but then why is the double
> > init working?
> >
> > factory_type_informations from both products appended.
> >
> >
> > from __init__.py:
> >
> > def initialize( context ):
> >
> > #utils.ContentInit( 'CMF Forum Content My',
> > # content_types = (Forum.ForumMy, Post.PostMy),
> > # permission = 'Add portal content',
> > # extra_constructors = (Forum.addForum,
> > Post.addPost), # fti = (Forum.factory_type_information,
> > # Post.factory_type_information)
> > # ).initialize( context )
> > utils.ContentInit( 'CMF Forum My',
> > content_types = (Forum.ForumMy,),
> > permission = 'Add portal content',
> > extra_constructors = (Forum.addForum,),
> > fti = (Forum.factory_type_information,)
> > ).initialize( context )
> > utils.ContentInit( 'CMF Post My',
> > content_types = (Post.PostMy,),
> > permission = 'Add portal content',
> > extra_constructors = (Post.addPost,),
> > fti = (Post.factory_type_information,)
> > ).initialize( context )
> >
> >
> >
> >
> >
> >
> > from Post.py:
> >
> > factory_type_information = { 'id' : 'PostMy'
> > , 'portal_type' : 'PostMy'
> > , 'meta_type' : 'PostMy'
> > , 'description' : """\
> > Posts are like Discussion items but they just can be added into Forums."""
> > , 'icon' : 'icon_post.gif'
> > , 'product' : 'CMFForumMy'
> > , 'factory' : 'addPost'
> > , 'filter_content_types' : 1
> > , 'allowed_content_types' : ('PostMy', )
> > #, 'immediate_view' : 'metadata_edit_form'
> > , 'immediate_view' : 'cwip_metadata_edit_form'
> > , 'global_allow' : 0
> > , 'actions' :
> > ( { 'id' : 'view'
> > , 'name' : 'View'
> > , 'action' : 'post_view'
> > , 'permissions' : (
> > View, )
> > }
> > , { 'id' : 'post_reply'
> > , 'name' : 'Reply'
> > , 'action' : 'forum_post_message'
> > , 'permissions' : (
> > AddPortalContent, )
> > }
> > , { 'id' : 'metadata'
> > , 'name' : 'Metadata'
> > , 'action' :
> > 'cwip_metadata_edit_form' , 'permissions' : (ModifyPortalContent, ) }
> > )
> > }
> >
> >
> > from Forum.py:
> >
> >
> > factory_type_information = { 'id' : 'ForumMy'
> > , 'portal_type' : 'ForumMy'
> > , 'meta_type' : 'ForumMy'
> > , 'description' : \
> > "Forums hold threaded discussions."
> > , 'icon' : 'forum_icon.gif'
> > , 'product' : 'CMFForumMy'
> > , 'factory' : 'addForum'
> > , 'filter_content_types' : 1
> > , 'allowed_content_types' : ('PostMy', )
> > , 'immediate_view' : 'cwip_metadata_edit_form'
> > #, 'immediate_view' : 'forum_edit_form'
> > , 'actions' :
> > ( { 'id' : 'view'
> > , 'name' : 'View'
> > , 'action' : 'forum_listing'
> > , 'permissions' : (View,)
> > , 'category' : 'folder'
> > }
> > , { 'id' : 'edit'
> > , 'name' : 'Edit'
> > , 'action' : 'forum_edit_form'
> > , 'permissions' : (ManageProperties,)
> > , 'category' : 'folder'
> > }
> > , { 'id' : 'localroles'
> > , 'name' : 'Local Roles'
> > , 'action' :
> > 'folder_localrole_form' , 'permissions' : (ManageProperties,) ,
> > 'category' : 'folder'
> > }
> > , { 'id' : 'forum_post_message'
> > , 'name' : 'Post Message'
> > , 'action' : 'forum_post_message'
> > , 'permissions' : (AddPortalContent, )
> > , 'category' : 'folder'
> > }
> > , { 'id' : 'metadata'
> > , 'name' : 'Metadata'
> > , 'action' :
> > 'cwip_metadata_edit_form' , 'permissions' : (ModifyPortalContent, ) }
> > )
> > }
--
Florent Guillaume, Nuxeo (Paris, France)
+33 1 40 33 79 87 http://nuxeo.com mailto:fg@nuxeo.com