1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.file.CmsObject; 33 import org.opencms.file.CmsResource; 34 import org.opencms.main.CmsException; 35 import org.opencms.security.CmsSecurityException; 36 37 import com.opencms.core.I_CmsSession; 38 import com.opencms.legacy.CmsXmlTemplateLoader; 39 40 import java.util.Hashtable ; 41 42 51 52 public class CmsCopyToProject extends CmsWorkplaceDefault { 53 54 65 66 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 67 Hashtable parameters, String templateSelector) throws CmsException { 68 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 69 CmsXmlWpTemplateFile xmlTemplateDocument = new CmsXmlWpTemplateFile(cms, templateFile); 70 71 String template = null; 73 74 String initial = (String )parameters.get(CmsWorkplaceDefault.C_PARA_INITIAL); 76 if(initial != null) { 77 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 79 session.removeValue("copy"); 80 session.removeValue("lasturl"); 81 } 82 getLastUrl(cms, parameters); 84 String copy = (String )parameters.get("copy"); 85 if(copy != null) { 86 session.putValue("copy", copy); 87 } 88 copy = (String )session.getValue("copy"); 89 String filename = (String )parameters.get(CmsWorkplaceDefault.C_PARA_RESOURCE); 90 if(filename != null) { 91 session.putValue(CmsWorkplaceDefault.C_PARA_RESOURCE, filename); 92 } 93 filename = (String )session.getValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 94 String action = (String )parameters.get("action"); 95 96 CmsResource file = null; 97 if(filename.endsWith("/")){ 98 file = cms.readFolder(filename); 99 } else { 100 file = cms.readResource(filename); 101 } 102 if (copy != null) { 105 if (action != null) { 106 try { 108 if (cms.isManagerOfProject()) { 109 cms.copyResourceToProject(cms.getSitePath(file)); 110 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 111 template = "done"; 112 } else { 113 throw new CmsSecurityException(Messages.get().container(Messages.ERR_SECURITY_PROJECTMANAGER_PRIVILEGES_REQUIRED_0)); 114 } 115 } catch (CmsException e) { 116 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 117 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(e)); 118 return startProcessing(cms, xmlTemplateDocument, "", parameters, "error"); 119 } 120 } else { 121 template = "wait"; 122 } 123 } 124 if (action == null) { 126 xmlTemplateDocument.setData("FILENAME", cms.getSitePath(file)); 127 } 128 return startProcessing(cms, xmlTemplateDocument, "", parameters, template); 130 } 131 132 142 143 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 144 Hashtable parameters, String templateSelector) { 145 return false; 146 } 147 } 148 | Popular Tags |