1 28 package com.opencms.workplace; 29 30 import org.opencms.file.CmsObject; 31 import org.opencms.file.CmsRequestContext; 32 import org.opencms.main.CmsException; 33 34 import com.opencms.legacy.CmsLegacyException; 35 import com.opencms.legacy.CmsXmlTemplateLoader; 36 37 import java.util.Hashtable ; 38 39 47 48 public class CmsChpwd extends CmsWorkplaceDefault { 49 50 61 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 62 Hashtable parameters, String templateSelector) 63 throws CmsException { 64 String template = null; 66 CmsXmlWpTemplateFile xmlTemplateDocument = new CmsXmlWpTemplateFile(cms, templateFile); 67 String oldpwd = (String )parameters.get(CmsWorkplaceDefault.C_PARA_OLDPWD); 68 String newpwd = (String )parameters.get(CmsWorkplaceDefault.C_PARA_NEWPWD); 69 String newpwdrepeat = (String )parameters.get(CmsWorkplaceDefault.C_PARA_NEWPWDREPEAT); 70 if(oldpwd != null && newpwd != null && newpwdrepeat != null) { 72 if("".equals(oldpwd) || "".equals(newpwd) || "".equals(newpwdrepeat)) { 73 xmlTemplateDocument.setData("details", "All fields must be filled."); 74 template = "error"; 75 } else { 76 if(newpwd.equals(newpwdrepeat)) { 78 try { 80 CmsRequestContext requestContext = cms.getRequestContext(); 81 cms.setPassword(requestContext.currentUser().getName(), 82 oldpwd, newpwd); 83 try { 85 CmsXmlTemplateLoader.getResponse(requestContext).sendCmsRedirect(getConfigFile(cms).getWorkplaceActionPath() + CmsWorkplaceDefault.C_WP_EXPLORER_PREFERENCES); 86 } 87 catch(Exception e) { 88 throw new CmsLegacyException("Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() 89 + CmsWorkplaceDefault.C_WP_EXPLORER_PREFERENCES, e); 90 } 91 92 } 94 catch(CmsException exp) { 95 if ((exp instanceof CmsLegacyException) && (((CmsLegacyException)exp).getType() == CmsLegacyException.C_NO_USER)) { 97 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(exp)); 98 template = "error2"; 99 } 100 else { 101 if ((exp instanceof CmsLegacyException) && (((CmsLegacyException)exp).getType() == 1)) { 102 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(exp)); 103 template = "error2"; 104 } else { 105 throw exp; 106 } 107 } 108 } 109 } 110 else { 111 xmlTemplateDocument.setData("details", "The new passwords do not match."); 113 template = "error"; 114 } 115 } 116 } 117 118 return startProcessing(cms, xmlTemplateDocument, "", parameters, template); 120 } 121 122 133 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 134 Hashtable parameters, String templateSelector) { 135 return false; 136 } 137 } 138
| Popular Tags
|