Re: Contents Tab
<VasudevaService-K9y3B4ipJAZZAIG4hdpdiNBPR1lH4CV8@public.gmane.org> (Medur) Wed, 28 Apr 2004 17:50:20 +0000
| Newsgroups | gmane.org.misc.vasudeva-server.web |
|---|---|
| Message-ID | <[email protected]> |
v 0.1.1 has been committed to the Repository Medur On Wed, 28 Apr 2004 17:23:09 +0000 <VasudevaService-K9y3B4ipJAZZAIG4hdpdiNBPR1lH4CV8@public.gmane.org> (Medur) wrote: >Hi Everyone. > >I have some news that may be pertinent to this discussion. > >First some background: >I have been working on the vsaRace product. This started out >as a verbatim copy of Archexample with a new content type: >vsaRace: RaceArticle. I got the new type to show up in the >add new item dropdown and was eventuallly able to >install/create an instance of a RaceArticle in a folder. > Then I started working on controlling the behaviour of the >global_contentviews macro. This I believe is the subject of >the current thread. I wanted to control the appearance of >the tabs strictly from the definition of the RaceArticle.py >module and its attendant install.py in the its Extensions >sub-folder and not modify the macros or skins in any way. I >found that there was some conflict between the Archetypes >code (ArchetypeTool.py) and the regular Plone Types >(TypesTool.py) code. Well it was more like competition >rather than conflict. >Actions are defined by the Plone machinery for all content >objects and the Archetypes content types are no exception. >Some of the default actions are: Contents, View, Edit, >Properties, and References. However, the archetypes-based >content types can have the default actions over-ridden and >can have new actions defined by declaring these settings in >the class module for the object. A problem arose because I >could not seem to get the Install function to set these >overrides. I think this is because there is some default >behaviour >coming from the regular Plone Machinery which takes place >after the Archetype install has finished. In any case any >changes I made to the class definition required a zope >restart in order to get the changes to become effective. > >My solution was to define my new actions and default >over-rides in an ini file on the file system. This ini file >takes the place of the equivalent definitions in the object's >class module. > > >There are several advantages to this approach: >1. The over-rides and new actions become effective upon an >install or reinstall action in the portal_quickinstaller >rather than at zope boot/reboot. This means that changes can >be made on-the-fly by adjusting a text file on the filesystem >followed by a reinstall in the portal_quickinstaller. 2. The >beauty of this approach is that the changes are accepted 100% >of the time. A change to this file is effective immediately. >An anonymous user merely has to reload his page to see the >new settings. >3. The entire action set for an object class can be >determined from an ascii file so that it can become a config >file for a site startup script. > >It should be noted that Actions for a particular context and >location are determined by the listFilteredActionsFor() >function in the CMFCore.ActionsTool Class. >Another possibly relevant fact to be noted is that types and >actions do not reside in the zodb. Rather they are generated >at start up and when new Products are installed and are >stored in the portal_types and portal_Actions objects in >tuples of TypeInformation objects and ActionInformation >Objects.. > >Please note that this issue is at an object configuration >level and so is not intended to be a solution to the >permission and context resolution issue which this thread >seems to be addressing. > >Best Regards >Medur > >On Wed, 28 Apr 2004 18:13:42 +0200 > <VasudevaService-K9y3B4ipJAZZAIG4hdpdiNBPR1lH4CV8@public.gmane.org> (Dhyani) wrote: >>My notes also below. >> >>> Notes below. >>> >>> (Dhyani) wrote: >>> >>> > Hi Jagrata / Priyadarshan, >>> > >>> > it's quite complicated. First, let's look at >>>displayContentsTab. It >>can't >>> > really be customized, whatever I do, the "real" >>>displayContentsTab is >>being >>> > called, not my customization. Whatever the reason for that >>>may be. >>> > Now, when you look at the code, they say in their comment >>>that one of >>the >>> > three Permissions Copy or Move, or Modify portal content, >>>or Add portal >>> > content has to be set, or at least on the parent level. >>>But the code >>itself >>> > does something else: It demands that ALL of the following >>>three >>Permissions >>> > are set: 'Copy or Move', 'List folder contents', 'Modify >>>portal >>content'. On >>> > the parent level, only two of them would be required. >>> >>> ok. recap. >>> >>> 1. If the object has those three props, we show the tab. >> >>Or maybe we should say: if the user has those three >>permissions on the level >>of the current folder. >> >>> 2. If the object fails to have those three props, show the >>> tab if and only if (a) we are authorized to query >>> parent perms AND (b) the parent has both >>> 'Modify portal content' and 'Copy or Move'. >> >>Exactly. I'm wondering, by the way, if the "List folder >>contents" permission >>might actually be a mistake, and the "Add Portal content" >>permissions should >>take its place. >> >>> > 'Modify portal content' in our case is State-dependent, >>>which means that >>if >>> > the State=Published, we do not have this Permission, with >>>the result >>that we >>> > don't get a Contents Tab. If I change this setting in the >>>workflow, then >>the >>> > editor can edit published content, something we decided >>>not to allow. >>> >>> Given our workflow, let's identify the logic >>> we want and change displayContentsTab. >> >>Exactly! That's what I would have done next, but a nap got >>into my way. >> >>> > Why did we see the Contents Tab previously? I'm not quite >>>sure, since >>there >>> > are so many things involved. But I guess that we had some >>>private stuff >>in >>> > the folder - or even on the parent folder level - and thus >>>got a >>different >>> > set of Permissions from the workflow. >>> >>> Yes, and for that matter, why have we seen different >>>behaviors >>> on Windows and Linux? >> >>I'm not 100% sure that we saw different behaviors on Windows >>and Linux. I >>have to confess that now, on my local machine - using the >>exported >>srichinmoyraces.org - I'm not seeing the Contents tab >>anymore. All right, I >>saw it this night. Then when I started messing around with >>Security >>settings, looking also at what happens at the Root level, I >>lost it and >>never really got it back (until I got serious about it and >>found out the >>stuff reported above). So the question remains, why did I see >>it in the >>beginning? Well, it might be that the Security settings on >>the Zope Root >>level come into play here. As I said, settings for the >>Anonymous user can >>change the behavior for Editors or Members etc. - not what >>you would expect! >>So there might have been a side effect from the settings on >>my Zope Root, >>which may vary from the settings on Zopestage Root. >> >>> I have changed (in place) 'AND' above to 'or' on the stage. >>> You can confirm that the contents tab does show >>> for editor_usa in places where it didn't before. >>> I am not saying this is the right config, but at >>> least the change is showing up on the stage. >> >>Zopestage is currently not accessible. Can you please make it >>clearer to me, >>what you mean by 'I have changed in place' - do you mean you >>changed the CMF >>code on the filesystem? Or have you just customized it? (The >>latter approach >>did not work on my machine!!) >> >>Greetings >>Dhyani >> >> >>-------------------------------------------------------------------------- >>This message is sent to you because you are subscribed to the >>mailing list <VasudevaService-K9y3B4ipJAZZAIG4hdpdiNBPR1lH4CV8@public.gmane.org>. >>Vasudeva Service home: http://www.vasudevaservice.com/ >>Browse list: >>nntp://news.gmane.org/gmane.org.misc.vasudeva-server.web >>List archive: >>https://pop.vasudevaserver.org:13031/Lists/VasudevaService/List.html >>-------------------------------------------------------------------------- > > >-------------------------------------------------------------------------- >This message is sent to you because you are subscribed to the >mailing list <VasudevaService-K9y3B4ipJAZZAIG4hdpdiNBPR1lH4CV8@public.gmane.org>. >Vasudeva Service home: http://www.vasudevaservice.com/ >Browse list: >nntp://news.gmane.org/gmane.org.misc.vasudeva-server.web >List archive: >https://pop.vasudevaserver.org:13031/Lists/VasudevaService/List.html >-------------------------------------------------------------------------- -------------------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list <VasudevaService-K9y3B4ipJAZZAIG4hdpdiNBPR1lH4CV8@public.gmane.org>.