From: <ssk...@vh...> - 2005-10-28 18:12:38
|
Author: sskracic Date: 2005-10-28 20:11:50 +0200 (Fri, 28 Oct 2005) New Revision: 966 Modified: releases/1.0.3/ccm-cms/application.xml releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ContentBundle.java Log: Integrated r965 to the 1.0.3 release branch: fix for the security context broken when copying items. Modified: releases/1.0.3/ccm-cms/application.xml =================================================================== --- releases/1.0.3/ccm-cms/application.xml 2005-10-28 18:08:42 UTC (rev 965) +++ releases/1.0.3/ccm-cms/application.xml 2005-10-28 18:11:50 UTC (rev 966) @@ -3,7 +3,7 @@ name="ccm-cms" prettyName="Red Hat CCM Content Management System" version="6.2.0" - release="4" + release="5" webapp="ROOT"> <ccm:dependencies> <ccm:requires name="ccm-core" version="6.2.0" relation="ge"/> Modified: releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ContentBundle.java =================================================================== --- releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ContentBundle.java 2005-10-28 18:08:42 UTC (rev 965) +++ releases/1.0.3/ccm-cms/src/com/arsdigita/cms/ContentBundle.java 2005-10-28 18:11:50 UTC (rev 966) @@ -22,8 +22,12 @@ import com.arsdigita.categorization.CategoryCollection; import com.arsdigita.cms.lifecycle.Lifecycle; import com.arsdigita.cms.lifecycle.LifecycleDefinition; +import com.arsdigita.domain.AbstractDomainObjectObserver; import com.arsdigita.domain.DataObjectNotFoundException; +import com.arsdigita.domain.DomainObject; import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.domain.DomainObjectObserver; +import com.arsdigita.kernel.permissions.PermissionService; import com.arsdigita.persistence.DataAssociation; import com.arsdigita.persistence.DataAssociationCursor; import com.arsdigita.persistence.DataObject; @@ -33,7 +37,6 @@ import com.arsdigita.web.Web; import com.arsdigita.workflow.simple.Workflow; import com.arsdigita.workflow.simple.WorkflowTemplate; - import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; @@ -41,7 +44,6 @@ import java.util.Enumeration; import java.util.List; import java.util.Locale; - import org.apache.log4j.Logger; /** @@ -61,6 +63,18 @@ private static final Logger s_log = Logger.getLogger(ContentBundle.class); + private static DomainObjectObserver s_instancesObserver = + new AbstractDomainObjectObserver() { + public void add(DomainObject dom, String name, + DataObject dobj) { + if (INSTANCES.equals(name)) { + if (dobj != null) { + PermissionService.setContext(dobj.getOID(), dom.getOID()); + } + } + } + }; + /** * The base data object type of a bundle */ @@ -594,6 +608,7 @@ protected void initialize() { super.initialize(); + addObserver(s_instancesObserver); m_wasNew = isNew(); } |