You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/04/19 21:00:45 UTC

svn commit: r530518 - in /ofbiz/trunk/applications/content: ./ data/ script/org/ofbiz/content/permission/ servicedef/ webapp/content/website/

Author: jaz
Date: Thu Apr 19 12:00:44 2007
New Revision: 530518

URL: http://svn.apache.org/viewvc?view=rev&rev=530518
Log:
updated content permissions to use the purpose associated with the content; not sure why we expected this to be passed in... changed the name of the XML file containing operation data; added default purpose for CMS entry

Added:
    ofbiz/trunk/applications/content/data/ContentOperationData.xml   (contents, props changed)
      - copied, changed from r530471, ofbiz/trunk/applications/content/data/BlogData.xml
Removed:
    ofbiz/trunk/applications/content/data/BlogData.xml
Modified:
    ofbiz/trunk/applications/content/ofbiz-component.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/permission/ContentPermissionServices.xml
    ofbiz/trunk/applications/content/servicedef/secas.xml
    ofbiz/trunk/applications/content/servicedef/services_content.xml
    ofbiz/trunk/applications/content/webapp/content/website/WebSiteCMSContent.ftl

Copied: ofbiz/trunk/applications/content/data/ContentOperationData.xml (from r530471, ofbiz/trunk/applications/content/data/BlogData.xml)
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/data/ContentOperationData.xml?view=diff&rev=530518&p1=ofbiz/trunk/applications/content/data/BlogData.xml&r1=530471&p2=ofbiz/trunk/applications/content/data/ContentOperationData.xml&r2=530518
==============================================================================
--- ofbiz/trunk/applications/content/data/BlogData.xml (original)
+++ ofbiz/trunk/applications/content/data/ContentOperationData.xml Thu Apr 19 12:00:44 2007
@@ -27,43 +27,55 @@
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE" roleTypeId="CONTENT_AUTHOR" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE" roleTypeId="CONTENT_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE_SUB" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="CTNT_INITIAL_DRAFT" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_PUBLISHER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_PUBLISH" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_PUBLISH_SELF" roleTypeId="CONTENT_AUTHOR" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_RESPOND" roleTypeId="CONTENT_USER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="CTNT_INITIAL_DRAFT" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_AUTHOR" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_USER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_VIEW" roleTypeId="OWNER" statusId="CTNT_INITIAL_DRAFT" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_LINK_FROM" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_LINK_TO" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+
     <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_CREATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_PUBLISHER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_USER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-
     <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_RESPOND" roleTypeId="CONTENT_USER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="_NA_" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_LINK_FROM" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_LINK_TO" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_UPDATE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="CTNT_INITIAL_DRAFT" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_PUBLISHER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_PUBLISH" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_VIEW" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="SECTION" contentOperationId="CONTENT_VIEW" roleTypeId="_NA_" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
+
     <ContentPurposeOperation contentPurposeTypeId="USER" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_OWNER_ROLE" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_USER_ROLE" roleTypeId="CONTENT_USER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_AUTHOR_ROLE" roleTypeId="CONTENT_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_EDITOR_ROLE" roleTypeId="CONTENT_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_ADMIN_ROLE" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_PUBLISHER_ROLE" roleTypeId="CONTENT_PUBLISHER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE_SUB" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_PUBLISH" roleTypeId="CONTENT_PUBLISHER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_VIEW" roleTypeId="CONTENT_USER" statusId="CTNT_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_LINK_TO" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_LINK_FROM" roleTypeId="OWNER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_LINK_TO" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
     <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_LINK_FROM" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_LINK_TO" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_LINK_TO" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_LINK_FROM" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_LINK_FROM" roleTypeId="_NA_" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
+    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="_NA_" roleTypeId="CONTENT_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
 </entity-engine-xml>

Propchange: ofbiz/trunk/applications/content/data/ContentOperationData.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/applications/content/data/ContentOperationData.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/applications/content/data/ContentOperationData.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: ofbiz/trunk/applications/content/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/ofbiz-component.xml?view=diff&rev=530518&r1=530517&r2=530518
==============================================================================
--- ofbiz/trunk/applications/content/ofbiz-component.xml (original)
+++ ofbiz/trunk/applications/content/ofbiz-component.xml Thu Apr 19 12:00:44 2007
@@ -31,10 +31,10 @@
     <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/>
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/ContentTypeData.xml"/>
+    <entity-resource type="data" reader-name="seed" loader="main" location="data/ContentOperationData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/MimeTypeData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/MimeTypeTemplate.xml"/>
-    <entity-resource type="data" reader-name="seed" loader="main" location="data/DataCategoryData.xml"/>
-    <entity-resource type="data" reader-name="seed" loader="main" location="data/BlogData.xml"/>
+    <entity-resource type="data" reader-name="seed" loader="main" location="data/DataCategoryData.xml"/>    
     <entity-resource type="data" reader-name="demo" loader="main" location="data/BlogDemoData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/TemplateData.xml"/>
     <entity-resource type="data" reader-name="demo" loader="main" location="data/UsersDemoData.xml"/>

Modified: ofbiz/trunk/applications/content/script/org/ofbiz/content/permission/ContentPermissionServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/script/org/ofbiz/content/permission/ContentPermissionServices.xml?view=diff&rev=530518&r1=530517&r2=530518
==============================================================================
--- ofbiz/trunk/applications/content/script/org/ofbiz/content/permission/ContentPermissionServices.xml (original)
+++ ofbiz/trunk/applications/content/script/org/ofbiz/content/permission/ContentPermissionServices.xml Thu Apr 19 12:00:44 2007
@@ -406,6 +406,10 @@
         <!-- resetting the permission flag -->
         <set field="hasPermission" type="Boolean" value="false"/>
 
+        <if-empty field-name="checkId">
+            <add-error><fail-message message="Required field 'checkId' (contentId) is missing in simple method call [checkContentOperationSecurity]"/></add-error>
+        </if-empty>
+
         <if-empty field-name="contentOperationId">
             <add-error><fail-message message="Required field 'contentOperationId' is missing in simple method call [checkContentOperationSecurity]"/></add-error>
         </if-empty>
@@ -417,23 +421,37 @@
             <set field="contentPurposeTypeId" value="_NA_"/>
         </if-empty>
 
-        <if-empty field-name="statusId">
-            <if-not-empty field-name="content">
-                <set field="statusId" from-field="content.statusId"/>
-            </if-not-empty>
-        </if-empty>
+        <entity-one entity-name="Content" value-name="checkContent">
+            <field-map field-name="contentId" env-name="checkId"/>
+        </entity-one>
+        <set field="statusId" from-field="checkContent.statusId"/>         
+
+        <!-- get all purposes for this content -->
+        <call-simple-method method-name="findAllContentPurposes"/>
+
+        <!-- find defined purpose/operation mappings -->
+        <iterate entry-name="currentPurpose" list-name="contentPurposes">
+            <entity-condition entity-name="ContentPurposeOperation" list-name="currentOperations">
+                <condition-list combine="and">
+                    <condition-expr field-name="contentPurposeTypeId" operator="equals" env-name="currentPurpose.contentPurposeTypeId"/>
+                    <condition-expr field-name="contentOperationId" operator="equals" env-name="contentOperationId"/>
+                </condition-list>
+                <order-by field-name="contentPurposeTypeId"/>
+            </entity-condition>
+            <list-to-list list-name="currentOperations" to-list-name="operations"/>
+        </iterate>
 
-        <!-- check both the purpose and the _NA_ purpose -->
-        <entity-condition entity-name="ContentPurposeOperation" list-name="operations">
-            <condition-list combine="and">
-                <condition-list combine="or">
-                    <condition-expr field-name="contentPurposeTypeId" operator="equals" env-name="contentPurposeTypeId"/>
+        <!-- check the _NA_ purpose but only if no other purposes were found -->
+        <if-empty field-name="contentPurposes">
+            <entity-condition entity-name="ContentPurposeOperation" list-name="currentOperations">
+                <condition-list combine="and">
                     <condition-expr field-name="contentPurposeTypeId" operator="equals" value="_NA_"/>
+                    <condition-expr field-name="contentOperationId" operator="equals" env-name="contentOperationId"/>
                 </condition-list>
-                <condition-expr field-name="contentOperationId" operator="equals" env-name="contentOperationId"/>
-            </condition-list>
-            <order-by field-name="contentPurposeTypeId"/>
-        </entity-condition>
+                <order-by field-name="contentPurposeTypeId"/>
+            </entity-condition>
+            <list-to-list list-name="currentOperations" to-list-name="operations"/>
+        </if-empty>
 
         <!-- place holder for the content ID -->
         <set field="toCheckContentId" from-field="checkId"/>
@@ -470,7 +488,7 @@
                         </then>
                     </if>
 
-                    <log level="verbose" message="Testing OPERATION: ${operation}"/>
+                    <log level="verbose" message="Testing [${checkId}] [${statusId}] OPERATION: ${operation}"/>
 
                     <!-- check statusId -->
                     <if>
@@ -486,6 +504,8 @@
                             </or>
                         </condition>
                         <then>
+                            <log level="verbose" message="Passed status check; now checking role(s)"/>
+                            
                             <!-- first check passed; now we test for the role membership(s) -->
                             <iterate entry-name="thisPartyId" list-name="partyIdList">
                                 <if-compare field-name="hasPermission" value="false" type="Boolean" operator="equals">
@@ -683,6 +703,17 @@
 
     </simple-method>
 
+    <!-- method to get the content purposes -->
+    <simple-method method-name="findAllContentPurposes" short-description="Find all content purposes for the specified content">
+        <if-empty field-name="checkId">
+            <add-error><fail-message message="Required field 'checkId' (contentId) is missing in simple method call [findAllContentPurposes]"/></add-error>
+        </if-empty>
+        <check-errors/>
+        
+        <set field="purposeLookup.contentId" from-field="checkId"/> 
+        <find-by-and entity-name="ContentPurpose" map-name="purposeLookup" list-name="contentPurposes"/>
+    </simple-method>
+    
     <!-- method to get user's party associations -->
     <simple-method method-name="findAllAssociatedPartyIds" short-description="Finds all associated party Ids for a user">
         <set field="lookupMap.partyIdFrom" from-field="userLogin.partyId"/>

Modified: ofbiz/trunk/applications/content/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/servicedef/secas.xml?view=diff&rev=530518&r1=530517&r2=530518
==============================================================================
--- ofbiz/trunk/applications/content/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/content/servicedef/secas.xml Thu Apr 19 12:00:44 2007
@@ -143,6 +143,11 @@
         <action service="createContentAssoc" mode="sync" run-as-user="system"/>
     </eca>
 
+    <eca service="createContent" event="commit">
+        <condition field-name="contentPurposeTypeId" operator="is-not-empty"/>
+        <action service="createContentPurpose" mode="sync" run-as-user="system"/>
+    </eca>
+
     <!-- content role ecas -->
     <eca service="createContentRole" event="invoke">
         <action service="ensurePartyRole" mode="sync" run-as-user="system"/>

Modified: ofbiz/trunk/applications/content/servicedef/services_content.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/servicedef/services_content.xml?view=diff&rev=530518&r1=530517&r2=530518
==============================================================================
--- ofbiz/trunk/applications/content/servicedef/services_content.xml (original)
+++ ofbiz/trunk/applications/content/servicedef/services_content.xml Thu Apr 19 12:00:44 2007
@@ -38,6 +38,7 @@
         <attribute mode="IN" name="displayFailCond" optional="true" type="Boolean"/>
         <attribute mode="INOUT" name="roleTypeList" optional="true" type="List"/>
         <!-- end of deprecated fields -->
+        <attribute name="contentPurposeTypeId" type="String" mode="IN" optional="true"/> 
         <attribute name="contentAssocTypeId" type="String" mode="IN" optional="true"/>
         <attribute name="contentIdFrom" type="String" mode="IN" optional="true"/>
         <attribute name="contentIdTo" type="String" mode="IN" optional="true"/>

Modified: ofbiz/trunk/applications/content/webapp/content/website/WebSiteCMSContent.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/webapp/content/website/WebSiteCMSContent.ftl?view=diff&rev=530518&r1=530517&r2=530518
==============================================================================
--- ofbiz/trunk/applications/content/webapp/content/website/WebSiteCMSContent.ftl (original)
+++ ofbiz/trunk/applications/content/webapp/content/website/WebSiteCMSContent.ftl Thu Apr 19 12:00:44 2007
@@ -151,6 +151,7 @@
                 </#if>
             </#list>
         <#else>
+            <input type="hidden" name="contentPurposeTypeId" value="${contentPurposeTypeId?default('SECTION')}"/>
             <input type="hidden" name="contentAssocTypeId" value="${contentAssocTypeId?default('SUBSITE')}"/>
             <input type="hidden" name="ownerContentId" value="${contentIdFrom?default(contentRoot)}"/>
             <input type="hidden" name="contentIdFrom" value="${contentIdFrom?default(contentRoot)}"/>