Description of problem: Run CMS in an excursion so that we can set permissionsDMLChecking to true.
All of CMS except the item admin pages already run within a CMSExcursion. Item admin pages were omitted originally because I didn't want to cause two DB hits - one loading the ContentItem in the excursion & the other in the ItemSelectionModel. Now that we have better caching in persistence there is no reason why all of CMS can't run within an excursion. Having said that, this will not be /any/ help wrt to permissionsDMLChecking, because the fundamental problem is that use of permissions within CMS is not at all consistent with the semantics required by permissionsDMLChecking. Primarily this is because the object contexts are not set up on any object except ContentItems & Folders, and knowing the CMS code I'm sure there other equally awful problems.
> Having said that, this will not be /any/ help wrt to permissionsDMLChecking I should've expanded upon the original description a bit. The idea Justin & Rafi have is to run all CMS requests in a special excursion that disables permissionsDMLChecking. This would enable us to set this value to true for portalserver & apps, and yet not break CMS. We're currently exploring whether this is feasible to get in for Troika final, or if we'll have to punt to an 6.0.1 and/or Rickshaw release.
Moving to QA ready. The following changes make CMS code run in a DML-checking-free zone: Change 34648 on 2003/08/13 by justin@justin-bumblebee For bz 102157, the last instance I could find where CMS code needs to run without DML permission checking. Change 34620 on 2003/08/13 by justin@justin-bumblebee Another part of bz 102157. Makes sure the scheduler task runs in a kernel excursion disabling DML permission checking. Change 34617 on 2003/08/13 by justin@justin-bumblebee Per bz 102157, this change has the effect of disabling DML permission checking anywhere CMSExcursion is used. This change may be rolled back before release. There's discussion on the ticket about why this is important. You will need to set permissionsDMLChecking to true in order to try this out. As the last message notes, if we run into any significant trouble with these changes, we're going to role them back.