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/02/19 20:53:08 UTC

svn commit: r509321 [1/7] - in /ofbiz/trunk/applications: content/data/ content/script/org/ofbiz/content/blog/ content/script/org/ofbiz/content/content/ content/script/org/ofbiz/content/data/ content/script/org/ofbiz/content/survey/ content/script/org/...

Author: jaz
Date: Mon Feb 19 11:53:06 2007
New Revision: 509321

URL: http://svn.apache.org/viewvc?view=rev&rev=509321
Log:
Content Permission & Service Refactoring: A number of big changes to content services including new permission services. This is the first pass with detailed testing on blogs in ecommerce. Tested low level screens as well. 

This is the first pass, there are still a number of references to old permission checking, some services need to be refactored, some replaced with better practices. This is a work in progress. 

This first pass includes the removal of special BLOG_ roles and status. Replaced with a generic CONTENT_ and CTNT_. Also adds new ECAs to base createContent service which creates OWNER role as well as associations when passed a contentIdTo or contentIdFrom (and TYPE). This will probably replace the persistContentAndAssoc service which is used in many places. Some have been updated in the revision, others will follow.

Most code which calls the older permission services are found in .java files. Almost all simple methods have been converted to have the permission in the service def and the code removed from the implementation. Java methods still need to be addressed.

The older permission service will output a warning in logs with a stack trace to help track down places where this service is still being called. This is not an error, but may show in logs for the time being.


Modified:
    ofbiz/trunk/applications/content/data/BlogData.xml
    ofbiz/trunk/applications/content/data/BlogDemoData.xml
    ofbiz/trunk/applications/content/data/ContentTypeData.xml
    ofbiz/trunk/applications/content/data/ForumDemoData.xml
    ofbiz/trunk/applications/content/data/UsersDemoData.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/blog/BlogServices.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentEvents.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentPermissionEvents.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentServices.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/data/DataServices.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/survey/SurveyServices.xml
    ofbiz/trunk/applications/content/script/org/ofbiz/content/website/WebSiteServices.xml
    ofbiz/trunk/applications/content/servicedef/secas.xml
    ofbiz/trunk/applications/content/servicedef/services.xml
    ofbiz/trunk/applications/content/servicedef/services_commevent.xml
    ofbiz/trunk/applications/content/servicedef/services_contenttypes.xml
    ofbiz/trunk/applications/content/servicedef/services_survey.xml
    ofbiz/trunk/applications/content/src/org/ofbiz/content/ContentManagementEvents.java
    ofbiz/trunk/applications/content/src/org/ofbiz/content/blog/BlogRssServices.java
    ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentPermissionServices.java
    ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentServices.java
    ofbiz/trunk/applications/content/webapp/content/cms/CMSContentEdit.ftl
    ofbiz/trunk/applications/content/webapp/content/cms/CMSSites.ftl
    ofbiz/trunk/applications/content/webapp/content/cms/addSubSite.ftl
    ofbiz/trunk/applications/content/widget/cms/mostrecentprep.bsh
    ofbiz/trunk/applications/ecommerce/data/DemoBlogEntryData.xml
    ofbiz/trunk/applications/ecommerce/data/DemoBlogMiscData.xml
    ofbiz/trunk/applications/ecommerce/data/DemoBlogUsersData.xml
    ofbiz/trunk/applications/ecommerce/data/DemoFactoids.xml
    ofbiz/trunk/applications/ecommerce/data/DemoRelatedData.xml
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/contentaddprep.bsh
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/respondpermandprep.bsh
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/blog/TextImage.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/blog/blogs.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/forum/ForumForms.xml
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/forum/bloglib.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/forum/mostrecent.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/forum/showforumresponse.xml
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/blog.css
    ofbiz/trunk/applications/ecommerce/widget/ForumScreens.xml
    ofbiz/trunk/applications/ecommerce/widget/blog/BlogForms.xml
    ofbiz/trunk/applications/ecommerce/widget/blog/BlogMenus.xml
    ofbiz/trunk/applications/ecommerce/widget/blog/BlogScreens.xml

Modified: ofbiz/trunk/applications/content/data/BlogData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/data/BlogData.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/data/BlogData.xml (original)
+++ ofbiz/trunk/applications/content/data/BlogData.xml Mon Feb 19 11:53:06 2007
@@ -17,74 +17,53 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<entity-engine-xml>
-    <RoleType roleTypeId="BLOG" hasTable="N" description="Blog"/>
-    <RoleType roleTypeId="BLOG_ADMIN" parentTypeId="BLOG" hasTable="N" description="Blog Administrator"/>
-    <RoleType roleTypeId="BLOG_PUBLISHER" parentTypeId="BLOG" hasTable="N" description="Blog Publisher"/>
-    <RoleType roleTypeId="BLOG_EDITOR" parentTypeId="BLOG" hasTable="N" description="Blog Editor"/>
-    <RoleType roleTypeId="BLOG_AUTHOR" parentTypeId="BLOG" hasTable="N" description="Blog Author"/>
-    <RoleType roleTypeId="BLOG_USER" parentTypeId="BLOG" hasTable="N" description="Blog User"/>
-    <RoleType roleTypeId="BLOG_GUEST" parentTypeId="BLOG" hasTable="N" description="Blog Guest"/>
-    <RoleType roleTypeId="PERMISSION_GROUP" hasTable="N" description="Permission Group"/>
-    <RoleType roleTypeId="PERMISSION_GROUP_MBR" hasTable="N" description="Permission Group Member"/>
-    <PartyRelationshipType partyRelationshipTypeId="BLOG_PERMISSION" description="Aggregates all blog users so role permissions can be set one time." partyRelationshipName="Blog Users"/>
-    <StatusType statusTypeId="PUBLISH_STATUS" description="Publish Status"/>
-    <StatusItem statusId="BLOG_SUBMITTED" statusTypeId="PUBLISH_STATUS" statusCode="SUBMITTED" sequenceId="01" description="Submitted"/>
-    <StatusItem statusId="BLOG_DRAFT" statusTypeId="PUBLISH_STATUS" statusCode="DRAFT" sequenceId="02" description="Draft"/>
-    <StatusItem statusId="BLOG_PUBLISHED" statusTypeId="PUBLISH_STATUS" statusCode="PUBLISHED" sequenceId="03" description="Published"/>
-    <StatusItem statusId="BLOG_REJECTED" statusTypeId="PUBLISH_STATUS" statusCode="REJECTED" sequenceId="99" description="Rejected"/>
-
+<entity-engine-xml>    
     <EnumerationType enumTypeId="CONTENT_PRIVILEGE" description="Content Privilege"/>
     <Enumeration enumId="CNT_PRV_NA_" enumTypeId="CONTENT_PRIVILEGE" enumCode="_NA_" sequenceId="00" description="Not Applicable"/>
     <Enumeration enumId="CNT_PRV_BRONZE" enumTypeId="CONTENT_PRIVILEGE" enumCode="BRONZE" sequenceId="10" description="Bronze Level"/>
     <Enumeration enumId="CNT_PRV_SILVER" enumTypeId="CONTENT_PRIVILEGE" enumCode="SILVER" sequenceId="20" description="Silver Level"/>
     <Enumeration enumId="CNT_PRV_GOLD" enumTypeId="CONTENT_PRIVILEGE" enumCode="GOLD" sequenceId="30" description="Gold Level"/>
 
-    <Content contentId="TP_TECHNICAL" contentTypeId="PLACEHOLDER" contentName="Technical" description="Technical"/>
-    <Content contentId="TP_LEGAL" contentTypeId="PLACEHOLDER" contentName="Legal" description="Legal"/>
-    <Content contentId="TP_BUSINESS" contentTypeId="PLACEHOLDER" contentName="Business" description="Business"/>
-
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE" roleTypeId="BLOG_AUTHOR" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE" roleTypeId="BLOG_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_CREATE" roleTypeId="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_PUBLISH" roleTypeId="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_PUBLISH" roleTypeId="BLOG_PUBLISHER" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
+    <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_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="BLOG_AUTHOR" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_RESPOND" roleTypeId="BLOG_USER" statusId="BLOG_PUBLISHED" 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="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_UPDATE" roleTypeId="OWNER" statusId="BLOG_DRAFT" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_VIEW" roleTypeId="BLOG_AUTHOR" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_VIEW" roleTypeId="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_VIEW" roleTypeId="BLOG_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_VIEW" roleTypeId="BLOG_USER" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_VIEW" roleTypeId="OWNER" statusId="BLOG_DRAFT" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_CREATE" roleTypeId="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_PUBLISH" roleTypeId="BLOG_PUBLISHER" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_PUBLISH" roleTypeId="BLOG_USER" statusId="BLOG_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="RESPONSE" contentOperationId="CONTENT_CREATE" roleTypeId="CONTENT_EDITOR" 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="BLOG_USER" statusId="BLOG_PUBLISHED" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_UPDATE" roleTypeId="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="_NA_" roleTypeId="BLOG_ADMIN" statusId="_NA_" 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="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="BLOG_USER" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_AUTHOR_ROLE" roleTypeId="BLOG_AUTHOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_EDITOR_ROLE" roleTypeId="BLOG_EDITOR" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_ADMIN_ROLE" roleTypeId="BLOG_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="HAS_PUBLISHER_ROLE" roleTypeId="BLOG_PUBLISHER" 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="BLOG_PUBLISHER" 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_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="BLOG_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="_NA_" contentOperationId="CONTENT_LINK_FROM" roleTypeId="BLOG_ADMIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_LINK_TO" roleTypeId="LOGGEDIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_LINK_TO" roleTypeId="LOGGEDIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_LINK_FROM" roleTypeId="LOGGEDIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="ARTICLE" contentOperationId="CONTENT_LINK_FROM" roleTypeId="LOGGEDIN" statusId="_NA_" privilegeEnumId="CNT_PRV_NA_"/>
-    
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_UPDATE" roleTypeId="LOGGEDIN" statusId="_NA_" privilegeEnumId="_NA_"/>
-    <ContentPurposeOperation contentPurposeTypeId="RESPONSE" contentOperationId="CONTENT_CREATE" roleTypeId="LOGGEDIN" statusId="_NA_" privilegeEnumId="_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_"/>
 </entity-engine-xml>

Modified: ofbiz/trunk/applications/content/data/BlogDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/data/BlogDemoData.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/data/BlogDemoData.xml (original)
+++ ofbiz/trunk/applications/content/data/BlogDemoData.xml Mon Feb 19 11:53:06 2007
@@ -26,14 +26,9 @@
 
     <DataSource dataSourceId="BLOG_SITE" dataSourceTypeId="WEBSITE_ENTRY" description="Blog Site"/>
 
-    <PartyRole partyId="BLOG_USERS" roleTypeId="PERMISSION_GROUP"/>
-    <PartyRole partyId="BLOG_USERS" roleTypeId="BLOG_USER"/>
-    <PartyRole partyId="BLOG_EDITORS" roleTypeId="PERMISSION_GROUP"/>
-    <PartyRole partyId="BLOG_EDITORS" roleTypeId="BLOG_EDITOR"/>
-    <PartyRole partyId="BLOG_AUTHORS" roleTypeId="PERMISSION_GROUP"/>
-    <PartyRole partyId="BLOG_AUTHORS" roleTypeId="BLOG_AUTHOR"/>
-    <PartyRole partyId="BLOG_ADMINS" roleTypeId="PERMISSION_GROUP"/>
-    <PartyRole partyId="BLOG_ADMINS" roleTypeId="BLOG_ADMIN"/>
-    <PartyRole partyId="BLOG_PUBLISHERS" roleTypeId="PERMISSION_GROUP"/>
-    <PartyRole partyId="BLOG_PUBLISHERS" roleTypeId="BLOG_ADMIN"/>
+    <PartyRole partyId="BLOG_USERS" roleTypeId="CONTENT_USER"/>
+    <PartyRole partyId="BLOG_EDITORS" roleTypeId="CONTENT_EDITOR"/>
+    <PartyRole partyId="BLOG_AUTHORS" roleTypeId="CONTENT_AUTHOR"/>
+    <PartyRole partyId="BLOG_ADMINS" roleTypeId="CONTENT_ADMIN"/>
+    <PartyRole partyId="BLOG_PUBLISHERS" roleTypeId="CONTENT_ADMIN"/>
 </entity-engine-xml>

Modified: ofbiz/trunk/applications/content/data/ContentTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/data/ContentTypeData.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/data/ContentTypeData.xml (original)
+++ ofbiz/trunk/applications/content/data/ContentTypeData.xml Mon Feb 19 11:53:06 2007
@@ -19,6 +19,13 @@
 -->
 <entity-engine-xml>
     <RoleType description="Logged In" hasTable="N"  parentTypeId="" roleTypeId="LOGGEDIN"/>
+    <RoleType roleTypeId="CONTENT" hasTable="N" description="Content Member"/>
+    <RoleType roleTypeId="CONTENT_ADMIN" parentTypeId="CONTENT" hasTable="N" description="Content Administrator"/>
+    <RoleType roleTypeId="CONTENT_PUBLISHER" parentTypeId="CONTENT" hasTable="N" description="Content Publisher"/>
+    <RoleType roleTypeId="CONTENT_EDITOR" parentTypeId="CONTENT" hasTable="N" description="Content Editor"/>
+    <RoleType roleTypeId="CONTENT_AUTHOR" parentTypeId="CONTENT" hasTable="N" description="Content Author"/>
+    <RoleType roleTypeId="CONTENT_USER" parentTypeId="CONTENT" hasTable="N" description="Content User"/>
+    <RoleType roleTypeId="CONTENT_GUEST" parentTypeId="CONTENT" hasTable="N" description="Content Guest"/>
 
     <ContentAssocType contentAssocTypeId="TEMPLATE_MEMBER" description="Template Member"/>
     <ContentAssocType contentAssocTypeId="STRUCTURE_DEF" description="Document Structure Definition"/>

Modified: ofbiz/trunk/applications/content/data/ForumDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/data/ForumDemoData.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/data/ForumDemoData.xml (original)
+++ ofbiz/trunk/applications/content/data/ForumDemoData.xml Mon Feb 19 11:53:06 2007
@@ -22,32 +22,32 @@
     <Content contentId="WebStoreFORUM" contentTypeId="FORUM_ROOT" contentName="WebStore Forum Root" description="Ecommerce Forums" childBranchCount="3" lastUpdatedStamp="2006-05-03 08:02:52.806" lastUpdatedTxStamp="2006-05-03 08:02:52.248" createdStamp="2006-05-01 13:07:22.886" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentPurpose contentId="WebStoreFORUM" contentPurposeTypeId="ARTICLE"/><!-- do we need this? -->
     <ContentPurpose contentId="WebStoreFORUM" contentPurposeTypeId="RESPONSE"/>
-    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_EDITOR" roleTypeId="BLOG_EDITOR" fromDate="2004-04-01 12:00:00.000"/>
-    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="BLOG_PUBLISHER" fromDate="2004-04-01 12:00:00.000"/>
-    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="BLOG_EDITOR" fromDate="2004-04-01 12:00:00.000"/>
-    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="BLOG_AUTHOR" fromDate="2004-04-01 12:00:00.000"/>
-    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="BLOG_ADMIN" fromDate="2004-04-01 12:00:00.000"/>
+    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_EDITOR" roleTypeId="CONTENT_EDITOR" fromDate="2004-04-01 12:00:00.000"/>
+    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="CONTENT_PUBLISHER" fromDate="2004-04-01 12:00:00.000"/>
+    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="CONTENT_EDITOR" fromDate="2004-04-01 12:00:00.000"/>
+    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="CONTENT_AUTHOR" fromDate="2004-04-01 12:00:00.000"/>
+    <ContentRole contentId="WebStoreFORUM" partyId="BLOG_ADMIN" roleTypeId="CONTENT_ADMIN" fromDate="2004-04-01 12:00:00.000"/>
 
     <!-- forums -->
     <Content contentId="ASK" contentTypeId="WEB_SITE_PUB_PT" ownerContentId="WebStoreFORUM" contentName="Ask the Experts" description="Ask the Experts" childBranchCount="0" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-02 20:06:50.782" lastUpdatedTxStamp="2006-05-02 20:06:50.646" createdStamp="2006-05-01 13:07:23.198" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentAssoc contentId="ASK" contentIdTo="WebStoreFORUM" contentAssocTypeId="SUBSITE" fromDate="2004-03-01 12:00:00.0" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-01 13:07:23.201" lastUpdatedTxStamp="2006-05-01 13:07:22.778" createdStamp="2006-05-01 13:07:23.201" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentAttribute contentId="ASK" attrName="publishOperation" attrValue="HAS_USER_ROLE"/><!-- do we need this? -->
     
-    <Content contentId="GIZMOS" contentTypeId="WEB_SITE_PUB_PT" ownerContentId="WebStoreFORUM" statusId="BLOG_PUBLISHED" contentName="Gizmos" description="Gizmos" childBranchCount="3" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-03 08:49:38.728" lastUpdatedTxStamp="2006-05-03 08:49:38.534" createdStamp="2006-05-01 13:07:23.161" createdTxStamp="2006-05-01 13:07:22.778"/>
+    <Content contentId="GIZMOS" contentTypeId="WEB_SITE_PUB_PT" ownerContentId="WebStoreFORUM" statusId="CTNT_PUBLISHED" contentName="Gizmos" description="Gizmos" childBranchCount="3" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-03 08:49:38.728" lastUpdatedTxStamp="2006-05-03 08:49:38.534" createdStamp="2006-05-01 13:07:23.161" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentAssoc contentId="GIZMOS" contentIdTo="WebStoreFORUM" contentAssocTypeId="SUBSITE" fromDate="2004-03-01 12:00:00.0" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-01 13:07:23.166" lastUpdatedTxStamp="2006-05-01 13:07:22.778" createdStamp="2006-05-01 13:07:23.166" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentAttribute contentId="GIZMOS" attrName="publishOperation" attrValue="HAS_USER_ROLE"/>
     
-    <Content contentId="WIDGETS" contentTypeId="WEB_SITE_PUB_PT" ownerContentId="WebStoreFORUM" statusId="BLOG_SUBMITTED" contentName="Widgets" description="Widgets" childBranchCount="0" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-02 20:06:46.214" lastUpdatedTxStamp="2006-05-02 20:06:45.781" createdStamp="2006-05-01 13:07:23.039" createdTxStamp="2006-05-01 13:07:22.778"/>
+    <Content contentId="WIDGETS" contentTypeId="WEB_SITE_PUB_PT" ownerContentId="WebStoreFORUM" statusId="CTNT_IN_PROGRESS" contentName="Widgets" description="Widgets" childBranchCount="0" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-02 20:06:46.214" lastUpdatedTxStamp="2006-05-02 20:06:45.781" createdStamp="2006-05-01 13:07:23.039" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentAssoc contentId="WIDGETS" contentIdTo="WebStoreFORUM" contentAssocTypeId="SUBSITE" fromDate="2004-03-01 12:00:00.0" createdDate="2004-03-01 12:00:00.0" createdByUserLogin="admin" lastUpdatedStamp="2006-05-01 13:07:23.126" lastUpdatedTxStamp="2006-05-01 13:07:22.778" createdStamp="2006-05-01 13:07:23.126" createdTxStamp="2006-05-01 13:07:22.778"/>
     <ContentAttribute contentId="WIDGETS" attrName="publishOperation" attrValue="HAS_USER_ROLE"/>
     
     <!-- Threads -->
-    <Content contentId="thread10021" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="TEMPLATE_TEXT_ONLY" statusId="BLOG_PUBLISHED" contentName="This is a Thread" description="Gizmo useless?" childBranchCount="1" createdDate="2006-05-02 13:36:31.937" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:31.937" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-01 08:49:38.78" lastUpdatedTxStamp="2006-05-01 08:49:38.534" createdStamp="2006-05-01 13:36:31.987" createdTxStamp="2006-05-01 13:36:31.904"/>
+    <Content contentId="thread10021" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="TEMPLATE_TEXT_ONLY" statusId="CTNT_PUBLISHED" contentName="This is a Thread" description="Gizmo useless?" childBranchCount="1" createdDate="2006-05-02 13:36:31.937" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:31.937" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-01 08:49:38.78" lastUpdatedTxStamp="2006-05-01 08:49:38.534" createdStamp="2006-05-01 13:36:31.987" createdTxStamp="2006-05-01 13:36:31.904"/>
     <ContentAssoc contentId="thread10021" contentIdTo="GIZMOS" contentAssocTypeId="PUBLISH_LINK" fromDate="2006-05-02 13:36:32.036" createdDate="2006-05-02 13:36:32.055" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.055" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.154" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.154" createdTxStamp="2006-05-02 13:36:31.904"/>
     <ContentPurpose contentId="thread10021" contentPurposeTypeId="ARTICLE" lastUpdatedStamp="2006-05-03 11:08:10.788" lastUpdatedTxStamp="2006-05-03 11:08:10.751" createdStamp="2006-05-03 11:08:10.788" createdTxStamp="2006-05-03 11:08:10.751"/>
     <!-- Messages -->    
-    <DataResource dataResourceId="msg10002" dataResourceTypeId="ELECTRONIC_TEXT" ownerContentId="GIZMOS" dataTemplateTypeId="NONE" statusId="BLOG_PUBLISHED" createdDate="2006-05-02 13:36:32.264" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.264" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.266" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.266" createdTxStamp="2006-05-02 13:36:31.904"/>
-    <Content contentId="msg10002" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="msg10002" statusId="BLOG_PUBLISHED" contentName="This is a message" description="Gizmo useless?" childBranchCount="0" createdDate="2006-05-02 13:36:32.417" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.417" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-01 08:05:42.715" lastUpdatedTxStamp="2006-05-01 08:05:42.438" createdStamp="2006-05-01 13:36:32.429" createdTxStamp="2006-05-01 13:36:31.904"/>
+    <DataResource dataResourceId="msg10002" dataResourceTypeId="ELECTRONIC_TEXT" ownerContentId="GIZMOS" dataTemplateTypeId="NONE" statusId="CTNT_PUBLISHED" createdDate="2006-05-02 13:36:32.264" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.264" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.266" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.266" createdTxStamp="2006-05-02 13:36:31.904"/>
+    <Content contentId="msg10002" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="msg10002" statusId="CTNT_PUBLISHED" contentName="This is a message" description="Gizmo useless?" childBranchCount="0" createdDate="2006-05-02 13:36:32.417" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.417" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-01 08:05:42.715" lastUpdatedTxStamp="2006-05-01 08:05:42.438" createdStamp="2006-05-01 13:36:32.429" createdTxStamp="2006-05-01 13:36:31.904"/>
     <ContentPurpose contentId="msg10002" contentPurposeTypeId="MAIN_ARTICLE" lastUpdatedStamp="2006-05-03 11:08:11.0" lastUpdatedTxStamp="2006-05-03 11:08:10.914" createdStamp="2006-05-03 11:08:11.0" createdTxStamp="2006-05-03 11:08:10.914"/>
     <ContentAssoc contentId="msg10002" contentIdTo="thread10021" contentAssocTypeId="RESPONSE" fromDate="2006-05-02 13:36:32.495" mapKey="ARTICLE" createdDate="2006-05-02 13:36:32.495" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.495" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.537" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.537" createdTxStamp="2006-05-02 13:36:31.904"/>
     <ElectronicText dataResourceId="msg10002" lastUpdatedStamp="2006-05-02 13:36:32.351" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.351" createdTxStamp="2006-05-02 13:36:31.904">
@@ -57,8 +57,8 @@
             ]]></textData>
     </ElectronicText>
     <!-- Responses -->    
-    <DataResource dataResourceId="msg10002a" dataResourceTypeId="ELECTRONIC_TEXT" dataTemplateTypeId="NONE" statusId="BLOG_PUBLISHED" createdDate="2006-05-02 13:36:32.264" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.264" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.266" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.266" createdTxStamp="2006-05-02 13:36:31.904"/>
-    <Content contentId="msg10002a" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="msg10002a" statusId="BLOG_PUBLISHED" contentName="This is a reponse" description="re1:Gizmo useless?" childBranchCount="0" createdDate="2006-05-02 13:36:32.417" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.417" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-03 08:05:42.715" lastUpdatedTxStamp="2006-05-03 08:05:42.438" createdStamp="2006-05-02 13:36:32.429" createdTxStamp="2006-05-02 13:36:31.904"/>
+    <DataResource dataResourceId="msg10002a" dataResourceTypeId="ELECTRONIC_TEXT" dataTemplateTypeId="NONE" statusId="CTNT_PUBLISHED" createdDate="2006-05-02 13:36:32.264" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.264" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.266" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.266" createdTxStamp="2006-05-02 13:36:31.904"/>
+    <Content contentId="msg10002a" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="msg10002a" statusId="CTNT_PUBLISHED" contentName="This is a reponse" description="re1:Gizmo useless?" childBranchCount="0" createdDate="2006-05-02 13:36:32.417" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.417" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-03 08:05:42.715" lastUpdatedTxStamp="2006-05-03 08:05:42.438" createdStamp="2006-05-02 13:36:32.429" createdTxStamp="2006-05-02 13:36:31.904"/>
     <ContentAssoc contentId="msg10002a" contentIdTo="thread10021" contentAssocTypeId="RESPONSE" fromDate="2006-05-02 13:36:32.495" mapKey="ARTICLE" createdDate="2006-05-02 13:36:32.495" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.495" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.537" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.537" createdTxStamp="2006-05-02 13:36:31.904"/>
     <ContentPurpose contentId="msg10002a" contentPurposeTypeId="RESPONSE" lastUpdatedStamp="2006-05-03 11:08:11.0" lastUpdatedTxStamp="2006-05-03 11:08:10.914" createdStamp="2006-05-03 11:08:11.0" createdTxStamp="2006-05-03 11:08:10.914"/>
     <ElectronicText dataResourceId="msg10002a" lastUpdatedStamp="2006-05-02 13:36:32.351" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.351" createdTxStamp="2006-05-02 13:36:31.904">
@@ -69,8 +69,8 @@
             ]]></textData>
     </ElectronicText>
 
-    <DataResource dataResourceId="msg10002b" dataResourceTypeId="ELECTRONIC_TEXT" dataTemplateTypeId="NONE" statusId="BLOG_PUBLISHED" createdDate="2006-05-02 13:36:32.264" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.264" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.266" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.266" createdTxStamp="2006-05-02 13:36:31.904"/>
-    <Content contentId="msg10002b" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="msg10002b" statusId="BLOG_PUBLISHED" contentName="This is a reponse" description="re2:Gizmo useless?" childBranchCount="0" createdDate="2006-05-02 13:36:32.417" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.417" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-03 08:05:42.715" lastUpdatedTxStamp="2006-05-03 08:05:42.438" createdStamp="2006-05-02 13:36:32.429" createdTxStamp="2006-05-02 13:36:31.904"/>
+    <DataResource dataResourceId="msg10002b" dataResourceTypeId="ELECTRONIC_TEXT" dataTemplateTypeId="NONE" statusId="CTNT_PUBLISHED" createdDate="2006-05-02 13:36:32.264" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.264" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.266" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.266" createdTxStamp="2006-05-02 13:36:31.904"/>
+    <Content contentId="msg10002b" contentTypeId="DOCUMENT" ownerContentId="GIZMOS" dataResourceId="msg10002b" statusId="CTNT_PUBLISHED" contentName="This is a reponse" description="re2:Gizmo useless?" childBranchCount="0" createdDate="2006-05-02 13:36:32.417" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.417" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-03 08:05:42.715" lastUpdatedTxStamp="2006-05-03 08:05:42.438" createdStamp="2006-05-02 13:36:32.429" createdTxStamp="2006-05-02 13:36:31.904"/>
     <ContentAssoc contentId="msg10002b" contentIdTo="thread10021" contentAssocTypeId="RESPONSE" fromDate="2006-05-02 13:36:32.495" mapKey="ARTICLE" createdDate="2006-05-02 13:36:32.495" createdByUserLogin="admin" lastModifiedDate="2006-05-02 13:36:32.495" lastModifiedByUserLogin="admin" lastUpdatedStamp="2006-05-02 13:36:32.537" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.537" createdTxStamp="2006-05-02 13:36:31.904"/>
     <ContentPurpose contentId="msg10002b" contentPurposeTypeId="RESPONSE" lastUpdatedStamp="2006-05-03 11:08:11.0" lastUpdatedTxStamp="2006-05-03 11:08:10.914" createdStamp="2006-05-03 11:08:11.0" createdTxStamp="2006-05-03 11:08:10.914"/>
     <ElectronicText dataResourceId="msg10002b" lastUpdatedStamp="2006-05-02 13:36:32.351" lastUpdatedTxStamp="2006-05-02 13:36:31.904" createdStamp="2006-05-02 13:36:32.351" createdTxStamp="2006-05-02 13:36:31.904">

Modified: ofbiz/trunk/applications/content/data/UsersDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/data/UsersDemoData.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/data/UsersDemoData.xml (original)
+++ ofbiz/trunk/applications/content/data/UsersDemoData.xml Mon Feb 19 11:53:06 2007
@@ -26,25 +26,25 @@
     <Party partyId="BLOG_ADMIN" partyTypeId="PERSON"/>
     <Person partyId="BLOG_ADMIN" lastName="Admin" firstName="Blog"/>
     <UserLogin userLoginId="blog_admin" partyId="BLOG_ADMIN"/>
-    <PartyRole partyId="BLOG_ADMIN" roleTypeId="BLOG_ADMIN"/>
-    <PartyRole partyId="BLOG_ADMIN" roleTypeId="BLOG_AUTHOR"/>
-    <PartyRole partyId="BLOG_ADMIN" roleTypeId="BLOG_EDITOR"/>
-    <PartyRole partyId="BLOG_ADMIN" roleTypeId="BLOG_PUBLISHER"/>
+    <PartyRole partyId="BLOG_ADMIN" roleTypeId="CONTENT_ADMIN"/>
+    <PartyRole partyId="BLOG_ADMIN" roleTypeId="CONTENT_AUTHOR"/>
+    <PartyRole partyId="BLOG_ADMIN" roleTypeId="CONTENT_EDITOR"/>
+    <PartyRole partyId="BLOG_ADMIN" roleTypeId="CONTENT_PUBLISHER"/>
     <PartyRole partyId="BLOG_ADMIN" roleTypeId="_NA_"/>
 
     <Party partyId="BLOG_AUTHOR" partyTypeId="PERSON"/>
     <Person partyId="BLOG_AUTHOR" lastName="Author" firstName="Blog"/>
     <UserLogin userLoginId="blog_author" partyId="BLOG_AUTHOR"/>
-    <PartyRole partyId="BLOG_AUTHOR" roleTypeId="BLOG_AUTHOR"/>
-    <PartyRole partyId="BLOG_AUTHOR" roleTypeId="BLOG_PUBLISHER"/>
+    <PartyRole partyId="BLOG_AUTHOR" roleTypeId="CONTENT_AUTHOR"/>
+    <PartyRole partyId="BLOG_AUTHOR" roleTypeId="CONTENT_PUBLISHER"/>
     <PartyRole partyId="BLOG_AUTHOR" roleTypeId="_NA_"/>
 
     <Party partyId="BLOG_EDITOR" partyTypeId="PERSON"/>
     <Person partyId="BLOG_EDITOR" lastName="Editor" firstName="Blog"/>
     <UserLogin userLoginId="blog_editor" partyId="BLOG_EDITOR"/>
-    <PartyRole partyId="BLOG_EDITOR" roleTypeId="BLOG_EDITOR"/>
-    <PartyRole partyId="BLOG_EDITOR" roleTypeId="BLOG_EDITOR"/>
-    <PartyRole partyId="BLOG_EDITOR" roleTypeId="BLOG_PUBLISHER"/>
+    <PartyRole partyId="BLOG_EDITOR" roleTypeId="CONTENT_EDITOR"/>
+    <PartyRole partyId="BLOG_EDITOR" roleTypeId="CONTENT_EDITOR"/>
+    <PartyRole partyId="BLOG_EDITOR" roleTypeId="CONTENT_PUBLISHER"/>
     <PartyRole partyId="BLOG_EDITOR" roleTypeId="_NA_"/>
 
     <ContactMech contactMechId="ADMIN_CONTACT" contactMechTypeId="EMAIL_ADDRESS" infoString="ofbiztest@yahoo.com"/>

Modified: ofbiz/trunk/applications/content/script/org/ofbiz/content/blog/BlogServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/script/org/ofbiz/content/blog/BlogServices.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/script/org/ofbiz/content/blog/BlogServices.xml (original)
+++ ofbiz/trunk/applications/content/script/org/ofbiz/content/blog/BlogServices.xml Mon Feb 19 11:53:06 2007
@@ -1,52 +1,200 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
 <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/simple-methods.xsd">
+    <simple-method method-name="postBlogEntry" short-description="Post a new Blog Entry">
+        <set field="contentAssocTypeId" from-field="parameters.contentAssocTypeId"/>
+        <set field="ownerContentId" from-field="parameters.blogContentId"/>
+        <set field="contentIdFrom" from-field="parameters.blogContentId"/>         
+
+        <!-- determine of we need to create complex template structure or simple content structure -->
+        <if>
+            <condition>
+                <and>
+                    <not>
+                        <if-empty field-name="parameters.uploadedFile"/>
+                    </not>
+                    <not>
+                        <if-empty field-name="parameters.textData"/>
+                    </not>
+                </and>
+            </condition>
+            <then>
+                <!-- complex template structure (image & text) -->
+                <set field="createMain.dataResourceId" from-field="parameters.dataResourceId"/>
+                <set field="createMain.contentAssocTypeId"  from-field="contentAssocTypeId"/>
+                <set field="createMain.contentName" from-field="parameters.contentName"/>
+                <set field="createMain.description" from-field="parameters.description"/>
+                <set field="createMain.statusId" from-field="parameters.statusId"/>
+                <set field="createMain.contentIdFrom" from-field="contentIdFrom"/>                 
+                <set field="createMain.partyId" from-field="userLogin.partyId"/>
+                <set field="createMain.ownerContentId" from-field="ownerContentId"/>
+
+                <set field="createMain.dataTemplateTypeId" value="SCREEN_COMBINED"/>
+                <set field="createMain.mapKey" value="MAIN"/>
+
+                <call-service service-name="createContent" in-map-name="createMain">
+                    <result-to-field result-name="contentId" field-name="contentId"/>
+                </call-service>
+                 
+                <!-- reset contentIdFrom to new contentId -->
+                <set field="contentAssocTypeId" value="SUB_CONTENT"/>
+                <set field="contentIdFrom" from-field="contentId"/>                                
+            </then>
+        </if>
+
+        <if>
+            <condition>
+                <not>
+                    <if-empty field-name="parameters.uploadedFile"/>
+                </not>
+            </condition>
+            <then>
+                <!-- create image data -->
+                <set field="createImage.dataResourceTypeId" value="LOCAL_FILE"/>
+                <set field="createImage.dataTemplateTypeId" value="NONE"/>
+                <set field="createImage.mapKey" value="IMAGE"/>
+
+                <set field="createMain.ownerContentId" from-field="ownerContentId"/>
+                <set field="createImage.contentName" from-field="parameters.contentName"/>
+                <set field="createImage.description" from-field="parameters.description"/>
+                <set field="createImage.statusId" from-field="parameters.statusId"/>
+                <set field="createImage.contentAssocTypeId"  from-field="contentAssocTypeId"/>
+                <set field="createImage.contentIdFrom" from-field="contentIdFrom"/>
+                <set field="createImage.partyId" from-field="userLogin.partyId"/>
+                <set field="createImage.uploadedFile" from-field="parameters.uploadedFile"/>
+                <set field="createImage._uploadedFile_fileName" from-field="parameters._uploadedFile_fileName"/>
+                <set field="createImage._uploadedFile_contentType" from-field="parameters._uploadedFile_contentType"/>
+
+                <call-service service-name="createContentFromUploadedFile" in-map-name="createImage">
+                    <result-to-field result-name="contentId" field-name="imageContentId"/>
+                </call-service>
+
+                <if-empty field-name="contentId">
+                    <set field="contentIdFrom" from-field="imageContentId"/>
+                    <set field="contentId" from-field="imageContentId"/>
+                    <set field="contentAssocTypeId" value="SUB_CONTENT"/>
+                </if-empty>
+            </then>
+        </if>
+
+        <if>
+            <condition>
+                <not>
+                    <if-empty field-name="parameters.textData"/>
+                </not>
+            </condition>
+            <then>
+                <!-- create text data -->
+                <set field="createText.dataResourceTypeId" value="ELECTRONIC_TEXT"/>
+                <set field="createText.dataTemplateTypeId" value="NONE"/>
+                <set field="createText.mapKey" value="MAIN"/>
+
+                <set field="createText.ownerContentId" from-field="ownerContentId"/>
+                <set field="createText.contentName" from-field="parameters.contentName"/>
+                <set field="createText.description" from-field="parameters.description"/>
+                <set field="createText.statusId" from-field="parameters.statusId"/>
+                <set field="createText.contentAssocTypeId"  from-field="contentAssocTypeId"/>
+                <set field="createText.textData" from-field="parameters.textData"/>
+                <set field="createText.contentIdFrom" from-field="contentIdFrom"/>
+                <set field="createText.partyId" from-field="userLogin.partyId"/>
+
+                <log level="always" message="calling createTextContent with map: ${createText}"/>
+                <call-service service-name="createTextContent" in-map-name="createText">
+                    <result-to-field result-name="contentId" field-name="textContentId"/>
+                </call-service>
+
+                <if-empty field-name="contentId">
+                    <set field="contentIdFrom" from-field="textContentId"/>
+                    <set field="contentId" from-field="textContentId"/>
+                    <set field="contentAssocTypeId" value="SUB_CONTENT"/>
+                </if-empty>
+            </then>
+        </if>
+                
+        <!-- we should have a primary (at least) contentId -->
+        <if>
+            <condition>
+                <and>
+                    <not>
+                        <if-empty field-name="contentId"/>
+                    </not>
+                    <not>
+                        <if-empty field-name="parameters.summaryData"/>
+                    </not>
+                </and>
+            </condition>
+            <then>
+                <!-- create the summary data -->
+                <set field="createSummary.dataResourceTypeId" value="ELECTRONIC_TEXT"/>
+                <set field="createSummary.dataTemplateTypeId" value="NONE"/>
+                <set field="createSummary.mapKey" value="SUMMARY"/>
+
+                <set field="createSummary.ownerContentId" from-field="ownerContentId"/>
+                <set field="createSummary.contentName" from-field="parameters.contentName"/>
+                <set field="createSummary.description" from-field="parameters.description"/>
+                <set field="createSummary.statusId" from-field="parameters.statusId"/>
+                <set field="createSummary.contentAssocTypeId"  from-field="contentAssocTypeId"/>
+                <set field="createSummary.textData" from-field="parameters.summaryData"/>
+                <set field="createSummary.contentIdFrom" from-field="contentIdFrom"/>
+                <set field="createSummary.partyId" from-field="userLogin.partyId"/>
+
+                <call-service service-name="createTextContent" in-map-name="createSummary"/>
+            </then>
+        </if>
+
+        <field-to-result field-name="contentId"/>
+    </simple-method>
+
     <simple-method method-name="getOwnedOrPublishedBlogEntries" short-description="Get blog entries that the user owns or are published">
         <log level="info" message="parameters: ${parameters}"/>
-        <entity-condition entity-name="ContentAssocViewTo" use-cache="false"  list-name="unfilteredList" >
+        <entity-condition entity-name="ContentAssocViewTo" use-cache="false" list-name="unfilteredList">
             <condition-list combine="and">
-                <condition-expr field-name="contentIdStart" operator="equals" env-name="parameters.contentId" />
-                <condition-expr field-name="caContentAssocTypeId" operator="equals" value="PUBLISH_LINK" />
+                <condition-expr field-name="contentIdStart" operator="equals" env-name="parameters.contentId"/>
+                <condition-expr field-name="caContentAssocTypeId" operator="equals" value="PUBLISH_LINK"/>
                 <condition-expr field-name="caThruDate" operator="equals" value=""/>
-            </condition-list> 
+            </condition-list>
             <order-by field-name="caFromDate DESC"/>
         </entity-condition>
+
         <log level="info" message="unfilteredList: ${unfilteredList}"/>
+
         <set field="mapIn.targetOperationList[]" value="CONTENT_VIEW"/>
         <set field="mapIn.targetOperationList[]" value="CONTENT_UPDATE"/>
         <set field="blogList[]"/>
-    	<iterate entry-name="view" list-name="unfilteredList">
-    	    <make-value entity-name="Content" value-name="content"/>
-    	    <set-nonpk-fields value-name="content" map-name="view"/>
-    	    <set-pk-fields value-name="content" map-name="view"/>
-        	<set field="mapIn.currentContent" from-field="content"/>
-        <log level="info" message="mapIn: ${mapIn}"/>
-    		<call-service service-name="checkContentPermission" in-map-name="mapIn">
-    			<result-to-field result-name="permissionStatus" field-name="permissionStatus"/>
-    		</call-service>
-        <log level="info" message="permissionStatus: ${permissionStatus}"/>
-    		<if-compare operator="equals" field-name="permissionStatus" value="granted">
-    			<set field="blogList[]" from-field="view" />
-    		</if-compare>
-    	</iterate>
+        <iterate entry-name="view" list-name="unfilteredList">
+            <make-value entity-name="Content" value-name="content"/>
+            <set-nonpk-fields value-name="content" map-name="view"/>
+            <set-pk-fields value-name="content" map-name="view"/>
+            <set field="mapIn.currentContent" from-field="content"/>
+            <log level="info" message="mapIn: ${mapIn}"/>
+            <call-service service-name="checkContentPermission" in-map-name="mapIn">
+                <result-to-field result-name="permissionStatus" field-name="permissionStatus"/>
+            </call-service>
+            <log level="info" message="permissionStatus: ${permissionStatus}"/>
+            <if-compare operator="equals" field-name="permissionStatus" value="granted">
+                <set field="blogList[]" from-field="view"/>
+            </if-compare>
+        </iterate>
+
         <log level="info" message="blogList: ${blogList}"/>
-    	<field-to-result field-name="blogList" result-name="blogList"/>
+        <field-to-result field-name="blogList" result-name="blogList"/>
     </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentEvents.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentEvents.xml (original)
+++ ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentEvents.xml Mon Feb 19 11:53:06 2007
@@ -17,118 +17,121 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/simple-methods.xsd">
-    <simple-method login-required="false" method-name="createContentAndPurpose" short-description="Create Content And Purpose">
-      <log level="always" message="in createContentAndPurpose."/>
-      <log level="always" message="parameters: ${parameters}"/>
-      <make-value entity-name="Content" value-name="currentContent"/>
-      <set-pk-fields map-name="parameters" value-name="currentContent"/>
-      <set-nonpk-fields map-name="parameters" value-name="currentContent"/>
-      <call-map-processor in-map-name="currentContent" out-map-name="currentContent">
-        <simple-map-processor name="newDateContent">
-        <process field="createdDate">
-          <convert type="Timestamp">
-            <fail-message message="Created Date is not a valid Timestamp input format."/>
-          </convert>
-        </process>
-        <process field="lastModifiedDate">
-          <convert type="Timestamp">
-            <fail-message message="LastModified Date is not a valid Timestamp input format."/>
-          </convert>
-        </process>
-        </simple-map-processor>
-      </call-map-processor>
-      <map-to-map map-name="currentContent" to-map-name="context" />
-      <log level="always" message="currentContent: ${currentContent}"/>
-      <log level="always" message="context: ${context}"/>
-      <set field="context.contentPurposeTypeId" from-field="parameters.contentPurposeTypeId" />  
-      <string-to-list list-name="targetOperationList" string="CONTENT_CREATE"/>
-      <set field="context.targetOperationList" from-field="targetOperationList" />  
-      <session-to-field field-name="userLogin" map-name="context" session-name="userLogin"/>
-      <call-service in-map-name="context" service-name="createContent">
-        <result-to-field field-name="contentId" result-name="contentId"/>
-        <result-to-request request-name="contentId" result-name="contentId"/>
-      </call-service>
-      <if-empty field-name="contentId" >
-        <add-error>
-          <fail-message message="Permission not granted."/>
-        </add-error>
-      </if-empty>
-      <check-errors/>
-
-      <session-to-field session-name="currentEntityMap" field-name="entityMap" />
-      <if-not-empty field-name="entityMap" >
-          <set field="currentEntityMap" from-field="entityMap"/>
-      </if-not-empty>
-      <make-value entity-name="Content" value-name="contentPK"/>
-      <set field="contentPK.contentId" from-field="contentId" />  
-      <log level="always" message="contentPK: ${contentPK}"/>
-      <set field="currentEntityMap.Content" from-field="contentPK" />  
-      <log level="always" message="currentEntityMap: ${currentEntityMap}"/>
-      <field-to-session session-name="currentEntityMap" field-name="currentEntityMap" />
-
-      <if-not-empty field-name="contentPurposeTypeId" map-name="parameters">
-      <log level="always" message="contentPurposeTypeId: ${parameters.contentPurposeTypeId}"/>
-          <make-value entity-name="ContentPurpose" value-name="newContentPurpose"/>
-          <set field="newContentPurpose.contentPurposeTypeId" from-field="parameters.contentPurposeTypeId" />
-      <log level="always" message="contentId: ${contentId}"/>
-          <set field="newContentPurpose.contentId" from-field="contentId" />
-          <create-value value-name="newContentPurpose"/>
-      <log level="always" message="newContentPurpose: ${newContentPurpose}"/>
-     </if-not-empty>
+
+<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/simple-methods.xsd">
+
+    <simple-method method-name="createContentAndPurpose" short-description="Create Content And Purpose" login-required="false">
+        <log level="always" message="in createContentAndPurpose."/>
+        <log level="always" message="parameters: ${parameters}"/>
+
+        <make-value entity-name="Content" value-name="currentContent"/>
+        <set-pk-fields map-name="parameters" value-name="currentContent"/>
+        <set-nonpk-fields map-name="parameters" value-name="currentContent"/>
+        <call-map-processor in-map-name="currentContent" out-map-name="currentContent">
+            <simple-map-processor name="newDateContent">
+                <process field="createdDate">
+                    <convert type="Timestamp">
+                        <fail-message message="Created Date is not a valid Timestamp input format."/>
+                    </convert>
+                </process>
+                <process field="lastModifiedDate">
+                    <convert type="Timestamp">
+                        <fail-message message="LastModified Date is not a valid Timestamp input format."/>
+                    </convert>
+                </process>
+            </simple-map-processor>
+        </call-map-processor>
+        <map-to-map map-name="currentContent" to-map-name="context"/>
+
+        <log level="always" message="currentContent: ${currentContent}"/>
+        <log level="always" message="context: ${context}"/>
+
+        <set field="context.contentPurposeTypeId" from-field="parameters.contentPurposeTypeId"/>
+        <string-to-list list-name="targetOperationList" string="CONTENT_CREATE"/>
+        <set field="context.targetOperationList" from-field="targetOperationList"/>
+        <session-to-field field-name="userLogin" map-name="context" session-name="userLogin"/>
+
+        <call-service in-map-name="context" service-name="createContent">
+            <result-to-field field-name="contentId" result-name="contentId"/>
+            <result-to-request request-name="contentId" result-name="contentId"/>
+        </call-service>
+        <if-empty field-name="contentId">
+            <add-error>
+                <fail-message message="Permission not granted."/>
+            </add-error>
+        </if-empty>
+        <check-errors/>
+
+        <session-to-field session-name="currentEntityMap" field-name="entityMap"/>
+        <if-not-empty field-name="entityMap">
+            <set field="currentEntityMap" from-field="entityMap"/>
+        </if-not-empty>
+        <make-value entity-name="Content" value-name="contentPK"/>
+        <set field="contentPK.contentId" from-field="contentId"/>
+        <log level="always" message="contentPK: ${contentPK}"/>
+        <set field="currentEntityMap.Content" from-field="contentPK"/>
+        <log level="always" message="currentEntityMap: ${currentEntityMap}"/>
+        <field-to-session session-name="currentEntityMap" field-name="currentEntityMap"/>
+
+        <if-not-empty field-name="contentPurposeTypeId" map-name="parameters">
+            <log level="always" message="contentPurposeTypeId: ${parameters.contentPurposeTypeId}"/>
+            <make-value entity-name="ContentPurpose" value-name="newContentPurpose"/>
+            <set field="newContentPurpose.contentPurposeTypeId" from-field="parameters.contentPurposeTypeId"/>
+            <log level="always" message="contentId: ${contentId}"/>
+            <set field="newContentPurpose.contentId" from-field="contentId"/>
+            <create-value value-name="newContentPurpose"/>
+            <log level="always" message="newContentPurpose: ${newContentPurpose}"/>
+        </if-not-empty>
     </simple-method>
 
-    <simple-method login-required="false" method-name="updateContent" short-description="Update Content">
-      <log level="always" message="/nin updateContent."/>
-      <log level="always" message="parameters: ${parameters}"/>
-      <make-value entity-name="Content" value-name="currentContent"/>
-      <set-pk-fields map-name="parameters" value-name="currentContent"/>
-      <set-nonpk-fields map-name="parameters" value-name="currentContent"/>
-      <call-map-processor in-map-name="currentContent" out-map-name="currentContent">
-        <simple-map-processor name="newDateContent">
-        <process field="createdDate">
-          <convert type="Timestamp">
-            <fail-message message="Created Date is not a valid Timestamp input format."/>
-          </convert>
-        </process>
-        <process field="lastModifiedDate">
-          <convert type="Timestamp">
-            <fail-message message="LastModified Date is not a valid Timestamp input format."/>
-          </convert>
-        </process>
-        </simple-map-processor>
-      </call-map-processor>
-      <log level="always" message="datesConverted: ${datesConverted}"/>
-      <map-to-map map-name="currentContent" to-map-name="context" />
-      <get-related value-name="currentContent" relation-name="ContentPurpose"
-                  list-name="contentPurposeList" />
-      <set field="context.contentPurposeList" from-field="contentPurposeList" />  
-      <string-to-list list-name="targetOperationList" string="CONTENT_UPDATE"/>
-      <set field="context.targetOperationList" from-field="targetOperationList" />          
-      <session-to-field field-name="userLogin" map-name="context" session-name="userLogin"/>
-      <call-service in-map-name="context" service-name="updateContent">
-        <result-to-field field-name="contentId" result-name="contentId"/>
-      </call-service>
-      <check-errors/>
+    <simple-method method-name="updateContent" short-description="Update Content" login-required="false">
+        <log level="always" message="/nin updateContent."/>
+        <log level="always" message="parameters: ${parameters}"/>
+
+        <make-value entity-name="Content" value-name="currentContent"/>
+        <set-pk-fields map-name="parameters" value-name="currentContent"/>
+        <set-nonpk-fields map-name="parameters" value-name="currentContent"/>
+        <call-map-processor in-map-name="currentContent" out-map-name="currentContent">
+            <simple-map-processor name="newDateContent">
+                <process field="createdDate">
+                    <convert type="Timestamp">
+                        <fail-message message="Created Date is not a valid Timestamp input format."/>
+                    </convert>
+                </process>
+                <process field="lastModifiedDate">
+                    <convert type="Timestamp">
+                        <fail-message message="LastModified Date is not a valid Timestamp input format."/>
+                    </convert>
+                </process>
+            </simple-map-processor>
+        </call-map-processor>
+        <log level="always" message="datesConverted: ${datesConverted}"/>
+        <map-to-map map-name="currentContent" to-map-name="context"/>
+        <get-related value-name="currentContent" relation-name="ContentPurpose" list-name="contentPurposeList"/>
+        <set field="context.contentPurposeList" from-field="contentPurposeList"/>
+        <string-to-list list-name="targetOperationList" string="CONTENT_UPDATE"/>
+        <set field="context.targetOperationList" from-field="targetOperationList"/>
+        <session-to-field field-name="userLogin" map-name="context" session-name="userLogin"/>
+        <call-service in-map-name="context" service-name="updateContent">
+            <result-to-field field-name="contentId" result-name="contentId"/>
+        </call-service>
+        <check-errors/>
     </simple-method>
 
-    <simple-method login-required="true" method-name="addContentAssoc" short-description="Add Content Assoc">
+    <simple-method method-name="addContentAssoc" short-description="Add Content Assoc" login-required="true" >
         <log level="always" message="in addContentAssoc."/>
         <log level="always" message="parameters: ${parameters}"/>
 
-
         <!-- link article to publish point -->
-        <set field="context3.contentIdTo" from-field="parameters.contentIdTo" />
-        <set field="context3.contentIdFrom" from-field="parameters.contentId" />
-        <set field="context3.contentAssocTypeId" from-field="parameters.contentAssocTypeId" />
+        <set field="context3.contentIdTo" from-field="parameters.contentIdTo"/>
+        <set field="context3.contentIdFrom" from-field="parameters.contentId"/>
+        <set field="context3.contentAssocTypeId" from-field="parameters.contentAssocTypeId"/>
         <session-to-field field-name="userLogin" map-name="context3" session-name="userLogin"/>
         <string-to-list list-name="contentPurposeList" string="_NA_"/>
-        <set field="context3.contentPurposeList" from-field="contentPurposeList" />
+        <set field="context3.contentPurposeList" from-field="contentPurposeList"/>
         <string-to-list list-name="targetOperationList" string="ASSOC_CONTENT"/>
-        <set field="context3.targetOperationList" from-field="targetOperationList" />
-        <call-service in-map-name="context3" service-name="assocContent">
-        </call-service>
+        <set field="context3.targetOperationList" from-field="targetOperationList"/>
+        <call-service in-map-name="context3" service-name="assocContent"></call-service>
 
     </simple-method>
 </simple-methods>

Modified: ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentPermissionEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentPermissionEvents.xml?view=diff&rev=509321&r1=509320&r2=509321
==============================================================================
--- ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentPermissionEvents.xml (original)
+++ ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentPermissionEvents.xml Mon Feb 19 11:53:06 2007
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
+<?xml version="1.0" encoding="UTF-8"?><!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -17,44 +16,48 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/simple-methods.xsd">
-    <simple-method login-required="false" method-name="createContentAndPurpose" short-description="Create Content And Purpose">
+<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/simple-methods.xsd">
+
+    <simple-method method-name="createContentAndPurpose" short-description="Create Content And Purpose" login-required="false">
         <make-value entity-name="Content" value-name="currentContent"/>
         <set-pk-fields map-name="parameters" value-name="currentContent"/>
         <set-nonpk-fields map-name="parameters" value-name="currentContent"/>
         <if-empty field-name="contentId" map-name="currentContent">
             <make-next-seq-id seq-field-name="contentId" value-name="currentContent"/>
             <sequenced-id-to-env env-name="id" sequence-name="Content"/>
-            <set field="currentContent.contentId" from-field="id" />
+            <set field="currentContent.contentId" from-field="id"/>
         </if-empty>
+
         <log level="always" message="currentContent: ${currentContent}"/>
-        <field-to-list field-name="contentPurposeTypeId"
-            list-name="contentPurposeList" map-name="parameters"/>
+
+        <field-to-list field-name="contentPurposeTypeId" list-name="contentPurposeList" map-name="parameters"/>
         <string-to-list list-name="targetOperationList" string="CONTENT_CREATE"/>
-        <set field="context.currentContent" from-field="currentContent" />
-        <set field="context.contentPurposeList" from-field="contentPurposeList" />
-        <set field="context.targetOperationList" from-field="targetOperationList" />
-        <set field="context.currentContent" from-field="currentContent" />
+        <set field="context.currentContent" from-field="currentContent"/>
+        <set field="context.contentPurposeList" from-field="contentPurposeList"/>
+        <set field="context.targetOperationList" from-field="targetOperationList"/>
+        <set field="context.currentContent" from-field="currentContent"/>
         <session-to-field field-name="userLogin" map-name="context" session-name="userLogin"/>
+
         <call-service in-map-name="context" service-name="checkContentPermission">
             <result-to-field field-name="permissionStatus" result-name="permissionStatus"/>
         </call-service>
+
         <log level="always" message="permissionStatus:${permissionStatus}"/>
-        <if-compare field-name="permissionStatus" operator="not-equals"
-            type="String" value="granted">
+
+        <if-compare field-name="permissionStatus" operator="not-equals" type="String" value="granted">
             <add-error>
                 <fail-message message="Permission not granted."/>
             </add-error>
         </if-compare>
         <check-errors/>
-        <if-compare field-name="permissionStatus" operator="equals"
-            type="String" value="granted">
+
+        <if-compare field-name="permissionStatus" operator="equals" type="String" value="granted">
             <create-value value-name="currentContent"/>
             <if-not-empty field-name="contentPurposeTypeId" map-name="parameters">
                 <make-value entity-name="ContentPurpose" value-name="newContentPurpose"/>
-                <set field="newContentPurpose.contentPurposeTypeId" from-field="parameters.contentPurposeTypeId" />
-                <set field="newContentPurpose.contentId" from-field="currentContent.contentId" />
+                <set field="newContentPurpose.contentPurposeTypeId" from-field="parameters.contentPurposeTypeId"/>
+                <set field="newContentPurpose.contentId" from-field="currentContent.contentId"/>
                 <create-value value-name="newContentPurpose"/>
             </if-not-empty>
         </if-compare>