Author: sshyrkov
Date: Tue Oct  2 16:15:24 2007
New Revision: 18727

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18727&repname=
=3Djahia
Log:
JAHIA-2340: N-Step - Copying a page, managed under N-Step workflow, does no=
t copy all role assignments =

http://www.jahia.net/jira/browse/JAHIA-2340
Resolution: properly export and import new "quick correction" actions for t=
he external workflow

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportBaseServi=
ce.java&rev=3D18727&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java Tue Oct  2 16:15:24 2007
@@ -35,7 +35,6 @@
 import org.jahia.data.applications.EntryPointInstance;
 import org.jahia.data.applications.WebAppContext;
 import org.jahia.data.containers.JahiaContainerDefinition;
-import org.jahia.data.fields.JahiaApplicationField;
 import org.jahia.data.fields.JahiaFieldDefinition;
 import org.jahia.data.files.JahiaFileField;
 import org.jahia.data.templates.JahiaTemplatesPackage;
@@ -1214,7 +1213,25 @@
                                     attr.addAttribute(JAHIA_URI, "workflow=
Role"+role, "jahia:workflowRole"+role, "CDATA", v.substring(1));
                                 }
                             }
-                        }
+                            role +=3D "_unlock";
+                            grp =3D service.getRoleGroup(obj, role, false);
+                            if (grp !=3D null) {
+                                Enumeration en =3D grp.members();
+                                String v =3D "";
+                                while (en.hasMoreElements()) {
+                                    Object curMember =3D en.nextElement();
+                                    if (curMember instanceof JahiaUser) {
+                                        JahiaUser user =3D (JahiaUser) cur=
Member;
+                                        v +=3D "|u:"+user.getUsername();
+                                    } else if (curMember instanceof JahiaG=
roup) {
+                                        JahiaGroup group =3D (JahiaGroup) =
curMember;
+                                        v +=3D "|g:"+group.getGroupname();
+                                    }
+                                }
+                                if (v.length()> 0) {
+                                    attr.addAttribute(JAHIA_URI, "workflow=
Role"+role, "jahia:workflowRole"+role, "CDATA", v.substring(1));
+                                }
+                            }                        }
                     }
                     return;
                 case WorkflowService.INHERITED:
@@ -1259,7 +1276,6 @@
                         context =3D Integer.toString(contentField.getID());
                     }           =

 =

-                    JahiaApplicationField theField =3D (JahiaApplicationFi=
eld) contentField.getJahiaField(jParams.getEntryLoadRequest());
                     int appID =3D epi.getApplicationID();
 =

                     try {
@@ -1810,7 +1826,7 @@
         String first =3D st.nextToken();
         if ("users".equals(first) || "groups".equals(first)) {
             if (st.hasMoreTokens()) {
-                String sec =3D st.nextToken();
+                st.nextToken();
                 if (st.hasMoreTokens()) {
                     String third =3D st.nextToken();
                     if (!st.hasMoreTokens()) {
@@ -2362,19 +2378,6 @@
 =

 =

     /**
-     * internal utility method to display the content of datamap
-     * @param data
-     * @return a string
-     */
-    private String getDataMapToString(JobDataMap data){
-        StringBuffer sb=3Dnew StringBuffer();
-        for(Iterator it=3Ddata.keySet().iterator();it.hasNext();){
-            String key=3D(String) it.next();
-            sb.append(key).append(":").append(data.get(key)).append("\n");
-        }
-        return sb.toString();
-    }
-    /**
      * Export all modification on a site from a specified date, with a par=
ticular profile.
      *
      * @param site         the site to export

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportHandler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportHandler.java&re=
v=3D18727&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java Tue Oct  2 16:15:24 2007
@@ -16,10 +16,9 @@
  * limitations under the License.
  */package org.jahia.services.importexport;
 =

-import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
-import org.apache.log4j.Priority;
 import org.jahia.bin.Jahia;
 import org.jahia.content.*;
 import org.jahia.data.applications.ApplicationBean;
@@ -76,18 +75,13 @@
 import org.jahia.services.esi.ContentInfo;
 import org.jahia.services.esi.EsiService;
 import org.jahia.utils.LanguageCodeConverters;
-import org.jahia.utils.JahiaTools;
 import org.jahia.engines.EngineMessage;
-import org.springframework.transaction.support.TransactionTemplate;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 import org.xml.sax.Locator;
 import org.xml.sax.helpers.DefaultHandler;
 =

 import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -131,7 +125,6 @@
     protected int count =3D 0;
     private Locator locator;
 =

-    private TransactionTemplate transactionTemplate =3D null;
     public static final String JAHIA_LINK =3D "jahiaLink";
 =

     public ImportHandler(ContentObject root, ProcessingContext jParams, St=
ring language, ExtendedImportResult result) {
@@ -642,7 +635,6 @@
 =

         if (lastObject instanceof ContentPage) {
             lastPage =3D (ContentPage) lastObject;
-            JahiaEvent esi =3D new JahiaEvent(this, jParams, lastObject);
             try {
                 ServicesRegistry.getInstance().getEsiService().pageRequire=
sInvalidation(lastPage.getID(),new ContentInfo(
                         EsiService.PAGE,lastPage.getID(),"Imported"));
@@ -1064,7 +1056,6 @@
 =

         // Field or containerlist inside a container or page
         if (isContainerList) {
-            String containerName =3D localName.substring(0, localName.leng=
th() - 4);
             ContentContainerList cc =3D null;
             JahiaContainerList containerList =3D null;
             if (parent instanceof ContentContainer) {
@@ -1140,7 +1131,7 @@
             }
             object =3D cf;
         } else {
-            if (logger.isEnabledFor(Priority.WARN)) {
+            if (logger.isEnabledFor(Level.WARN)) {
                 String tplName =3D null;
                 String ctnName =3D null;
 =

@@ -1177,7 +1168,6 @@
 =

     protected void update(ContentObject object, String localName, Attribut=
es atts) throws JahiaException {
         int pageID =3D 0;
-        int containerID =3D 0;
         if (object instanceof ContentField) {
             ContentField cf =3D (ContentField) object;
             ArrayList locales =3D new ArrayList();
@@ -1194,17 +1184,10 @@
                 updateField(jahiaField, fieldType, value, atts, -1);
                 ServicesRegistry.getInstance ().getJahiaFieldService ().sa=
veField (jahiaField, object.getAclID (), jParams);
             }
-            containerID =3D cf.getContainerID();
             pageID =3D cf.getPageID();
         } else if (object instanceof ContentPage) {
             ContentPage cp =3D (ContentPage) object;
             pageID =3D updatePage(cp, localName, atts);
-
-            ContentField cf =3D (ContentField) cp.getParent(EntryLoadReque=
st.STAGED);
-
-            if (cf !=3D null) {
-                containerID =3D cf.getContainerID();
-            }
         }
 =

         if (object !=3D null) {
@@ -1642,6 +1625,35 @@
                             }
                         }
                     }
+                    role +=3D "_unlock";
+                    v =3D atts.getValue(ImportExportService.JAHIA_URI, "wo=
rkflowRole"+role);
+                    if (v !=3D null )  {                        =

+                        JahiaGroup g =3D service.getRoleGroup(object, role=
, true);
+                        StringTokenizer st =3D new StringTokenizer(v, "|");
+                        while (st.hasMoreTokens())  {
+                            String principal =3D st.nextToken();
+                            String userName =3D principal.substring(2);
+                            Principal p =3D null;
+                            if (principal.charAt(0) =3D=3D 'u') {
+                                try {
+                                    p =3D ServicesRegistry.getInstance().g=
etJahiaSiteUserManagerService().getMember(site.getID(), userName);
+                                    if (p =3D=3D null) {
+                                        p =3D ServicesRegistry.getInstance=
().getJahiaUserManagerService().lookupUser(userName);
+                                    }
+                                } catch (JahiaException e) {
+                                }
+                            } else {
+                                p =3D ServicesRegistry.getInstance().getJa=
hiaGroupManagerService().lookupGroup(site.getID(), userName);
+                                if (p =3D=3D null) {
+                                    p =3D ServicesRegistry.getInstance().g=
etJahiaGroupManagerService().lookupGroup(userName);
+
+                                }
+                            }
+                            if (p !=3D null ) {
+                                g.addMember(p);
+                            }
+                        }
+                    }
                 }
             } else if ("inherited".equals(wf)) {
                 service.setWorkflowMode(object, WorkflowService.INHERITED,=
 null,null,jParams);
@@ -1687,7 +1699,6 @@
             JahiaSaveVersion saveVersion =3D new JahiaSaveVersion(false, f=
alse);
             for (Iterator iterator =3D md.iterator(); iterator.hasNext();)=
 {
                 String metadataName =3D (String) iterator.next();
-                JahiaFieldDefinition def =3D (JahiaFieldDefinition) fieldD=
efs.get(metadataName);
                 String value;
                 if (CoreMetadataConstant.CREATION_DATE.equals(metadataName=
)) {
                     value =3D attr.getValue(ImportExportBaseService.JCR_UR=
I, "created");
@@ -1845,31 +1856,6 @@
         }
     }
 =

-    private void loadPage(int pageID) throws JahiaException {
-        GetMethod method =3D null;
-        /// Try again after page load
-        try {
-            logger.debug("Cannot find definitions, try to initialize page"=
);
-            URL url =3D new URL(Jahia.getSettings().getLocalAccessUri() + =
jParams.composePageUrl(pageID));
-
-            InputStream is =3D JahiaTools.makeJahiaRequest(url, jParams.ge=
tUser(), null, null, 5);
-            is.close();
-        } catch (IOException e) {
-            if (e.getMessage().startsWith("Unsupported HTTP status code [5=
00]")) {
-                String defname =3D ContentPage.getPage(pageID).getPageTemp=
late(elr).getName();
-                final EngineMessage msg =3D new EngineMessage("org.jahia.e=
ngines.importexport.import.templateCompilation", new Object[] {defname});
-                result.setStatus(TreeOperationResult.PARTIAL_OPERATION_STA=
TUS);
-                result.appendError(new NodeImportResult(new ContentPageKey=
(pageID), language, msg, null,null,null,null,e));
-            } else {
-                logger.error("Cant make a local request at "+Jahia.getSett=
ings().getLocalAccessUri()+", check your localAccessUri parameter ("+e.getM=
essage()+")");
-            }
-        }
-        finally {
-            if (method !=3D null)
-                method.releaseConnection();
-        }
-    }
-
     private int getLineNumber() {
         if (locator !=3D null) {
             return locator.getLineNumber();

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to