1 19 package org.openbravo.erpCommon.ad_forms; 20 21 import org.openbravo.erpCommon.utility.*; 22 import org.openbravo.utils.FormatUtilities; 23 import org.openbravo.base.secureApp.HttpSecureAppServlet; 24 import org.openbravo.base.secureApp.VariablesSecureApp; 25 import org.openbravo.xmlEngine.XmlDocument; 26 import org.openbravo.base.secureApp.DefaultOptionsData; 27 import org.openbravo.base.secureApp.LoginUtils; 28 import org.openbravo.erpCommon.ad_combos.LanguageComboData; 29 import org.openbravo.erpCommon.ad_combos.RoleComboData; 30 import org.openbravo.erpCommon.security.*; 31 import java.io.*; 32 import javax.servlet.*; 33 import javax.servlet.http.*; 34 import java.util.ArrayList ; 35 import java.util.List ; 36 import java.util.StringTokenizer ; 37 38 39 40 public class Role extends HttpSecureAppServlet { 41 42 43 public void init (ServletConfig config) { 44 super.init(config); 45 boolHist = false; 46 } 47 48 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 49 VariablesSecureApp vars = new VariablesSecureApp(request); 50 51 if (vars.commandIn("DEFAULT")) { 52 printPage(response, vars, false); 53 } else if (vars.commandIn("CHANGE")) { 54 String strClaveOld = vars.getRequiredStringParameter("inpClaveOld"); 55 String strClaveNew = vars.getRequiredStringParameter("inpClaveNew"); 56 57 58 OBError myMessage = null; 59 try { 60 changePassword(vars, strClaveOld, strClaveNew); 61 } catch (ServletException ex) { 62 myMessage = Utility.translateError(this, vars, vars.getLanguage(), ex.getMessage()); 63 if (!myMessage.isConnectionAvailable()) { 64 bdErrorConnection(response); 65 return; 66 } else vars.setMessage("Role", myMessage); 67 } 68 if (myMessage==null) { 69 myMessage = Utility.translateError(this, vars, vars.getLanguage(), "@CODE=PasswordChanged"); 70 vars.setMessage("Role", myMessage); 71 } 72 response.sendRedirect(strDireccion + request.getServletPath()); 73 } else if (vars.commandIn("SAVE")) { 74 String strSetDefault = vars.getStringParameter("setasdefault"); 75 76 if (saveDefaultOptions(vars, strSetDefault)) { 77 vars = new VariablesSecureApp(request); printPage(response, vars, true); 79 } else { 80 pageError(response); 81 } 82 } 83 else pageErrorPopUp(response); 84 } 85 86 void changePassword(VariablesSecureApp vars, String strClaveOld, String strClaveNew) throws IOException, ServletException { 87 if (log4j.isDebugEnabled()) log4j.debug("Output: Login change process change"); 88 if (log4j.isDebugEnabled()) log4j.debug("Output: Old password: "+strClaveOld+", "+FormatUtilities.sha1Base64(strClaveOld)+" - user:"+vars.getUser()); 89 if (log4j.isDebugEnabled()) log4j.debug("pwd: "+RoleData.getPassword(this, vars.getUser())+" - encr: "+FormatUtilities.sha1Base64(strClaveOld)); 90 91 92 if (!RoleData.getPassword(this, vars.getUser()).equals(FormatUtilities.sha1Base64(strClaveOld))) { 93 log4j.error("Invalid password"); 94 throw new ServletException("@CODE=PasswordIncorrect"); 95 } 96 if (RoleData.update(this, FormatUtilities.sha1Base64(strClaveNew), vars.getUser()) == 0) throw new ServletException("@CODE=ProcessError"); 97 } 98 99 private boolean saveDefaultOptions(VariablesSecureApp vars, String strSetDefault) throws ServletException { 100 101 String strUserAuth = vars.getUser(); 102 String strLanguage = vars.getStringParameter("language"); 103 String strRol = vars.getStringParameter("role"); 104 String strClient = vars.getStringParameter("client"); 105 String strOrg = vars.getStringParameter("organization"); 106 String strWarehouse = vars.getStringParameter("warehouse"); 107 108 if (strSetDefault.equals("Y")) 109 DefaultOptionsData.saveDefaultOptions(this, strLanguage, strRol, strClient, strOrg, strWarehouse, strUserAuth); 110 111 return LoginUtils.fillSessionArguments(this, vars, strUserAuth, strLanguage, strRol, strClient, strOrg, strWarehouse); 112 } 113 114 private void printPage(HttpServletResponse response, VariablesSecureApp vars, boolean bSaveOK) throws IOException, ServletException{ 115 XmlDocument xmlDocument = xmlEngine.readXmlTemplate("org/openbravo/erpCommon/ad_forms/Role").createXmlDocument(); 116 xmlDocument.setParameter("direction", "var baseDirection = \"" + strReplaceWith + "/\";\n"); 117 xmlDocument.setParameter("language", "LNG_POR_DEFECTO=\"" + vars.getLanguage() + "\";"); 118 xmlDocument.setParameter("roleInfo", Utility.messageBD(this,"RoleInfo",vars.getLanguage())); 119 xmlDocument.setParameter("role", Utility.messageBD(this,"AD_Role_ID",vars.getLanguage())); 120 xmlDocument.setParameter("client", Utility.messageBD(this,"AD_Client_ID",vars.getLanguage())); 121 xmlDocument.setParameter("org", Utility.messageBD(this,"AD_Org_ID",vars.getLanguage())); 122 xmlDocument.setParameter("user", RoleData.nombreUsuario(this, vars.getUser())); 123 124 125 126 xmlDocument.setParameter("inputLanguage", vars.getLanguage() ); 128 xmlDocument.setParameter("inputRole", vars.getRole()); 129 xmlDocument.setParameter("inputEntity", vars.getClient()); 130 xmlDocument.setParameter("inputOrg", vars.getOrg()); 131 xmlDocument.setParameter("inputWarehouse", vars.getWarehouse()); 132 133 135 xmlDocument.setParameter("saveok", Boolean.toString(bSaveOK)); 136 137 xmlDocument.setData("structureLang", LanguageComboData.select(this)); 138 139 RoleComboData[] datarole = RoleComboData.select(this, vars.getUser()); 141 142 List <ClientData> vecClients = new ArrayList <ClientData>(); 144 ClientData[] plaindataclient = ClientData.select(this); 145 if (plaindataclient != null) { 146 147 for (int i = 0; i < datarole.length; i++) { 148 StringTokenizer st = new StringTokenizer (datarole[i].clientlist, ",", false); 149 150 while (st.hasMoreTokens()) { 151 String token = st.nextToken().trim(); 152 ClientData auxClient = new ClientData(); 153 auxClient.padre = datarole[i].adRoleId; 154 auxClient.id = token; 155 auxClient.name = getDescriptionFromArray(plaindataclient, token); 156 vecClients.add(auxClient); 157 } 158 } 159 } 160 161 xmlDocument.setData("structureRol", datarole); 162 xmlDocument.setParameter("clientes", arrayDobleEntrada("arrClientes", vecClients.toArray(new ClientData[vecClients.size()]))); 163 xmlDocument.setParameter("organizaciones", arrayDobleEntrada("arrOrgs", OrganizationData.select(this))); 164 xmlDocument.setParameter("warehouses", arrayDobleEntrada("arrWare", WarehouseData.select(this))); 165 166 167 { 168 OBError myMessage = vars.getMessage("Role"); 169 vars.removeMessage("Role"); 170 if (myMessage!=null) { 171 xmlDocument.setParameter("messageType", myMessage.getType()); 172 xmlDocument.setParameter("messageTitle", myMessage.getTitle()); 173 xmlDocument.setParameter("messageMessage", myMessage.getMessage()); 174 } 175 } 176 177 xmlDocument.setData("structure", RoleData.select(this, vars.getRole())); 178 response.setContentType("text/html; charset=UTF-8"); 179 PrintWriter out = response.getWriter(); 180 out.println(xmlDocument.print()); 181 out.close(); 182 } 183 184 public String getServletInfo() { 185 return "Servlet for the media reports generation"; 186 } 188 private String getDescriptionFromArray(ClientData[] data, String clave) { 189 if (data==null || data.length==0) return ""; 190 for (int i=0;i<data.length;i++) { 191 if (data[i].id.equalsIgnoreCase(clave)) return data[i].name; 192 } 193 return ""; 194 } 195 } 196 | Popular Tags |