KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > ad_forms > Role


1 /*
2  *************************************************************************
3  * The contents of this file are subject to the Openbravo Public License
4  * Version 1.0 (the "License"), being the Mozilla Public License
5  * Version 1.1 with a permitted attribution clause; you may not use this
6  * file except in compliance with the License. You may obtain a copy of
7  * the License at http://www.openbravo.com/legal/license.html
8  * Software distributed under the License is distributed on an "AS IS"
9  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
10  * License for the specific language governing rights and limitations
11  * under the License.
12  * The Original Code is Openbravo ERP.
13  * The Initial Developer of the Original Code is Openbravo SL
14  * All portions are Copyright (C) 2001-2006 Openbravo SL
15  * All Rights Reserved.
16  * Contributor(s): ______________________________________.
17  ************************************************************************
18 */

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 JavaDoc;
35 import java.util.List JavaDoc;
36 import java.util.StringTokenizer JavaDoc;
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 JavaDoc strClaveOld = vars.getRequiredStringParameter("inpClaveOld");
55       String JavaDoc 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 JavaDoc strSetDefault = vars.getStringParameter("setasdefault");
75       
76         if (saveDefaultOptions(vars, strSetDefault)) {
77             vars = new VariablesSecureApp(request); // refresh
78
printPage(response, vars, true);
79         } else {
80             pageError(response);
81         }
82     }
83     else pageErrorPopUp(response);
84   }
85
86   void changePassword(VariablesSecureApp vars, String JavaDoc strClaveOld, String JavaDoc 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 JavaDoc strSetDefault) throws ServletException {
100         
101         String JavaDoc strUserAuth = vars.getUser();
102         String JavaDoc strLanguage = vars.getStringParameter("language");
103         String JavaDoc strRol = vars.getStringParameter("role");
104         String JavaDoc strClient = vars.getStringParameter("client");
105         String JavaDoc strOrg = vars.getStringParameter("organization");
106         String JavaDoc 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      // Input data
127
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         // fields
134

135         xmlDocument.setParameter("saveok", Boolean.toString(bSaveOK));
136         
137         xmlDocument.setData("structureLang", LanguageComboData.select(this));
138         
139         // Role
140
RoleComboData[] datarole = RoleComboData.select(this, vars.getUser());
141         
142         // Client
143
List JavaDoc<ClientData> vecClients = new ArrayList JavaDoc<ClientData>();
144         ClientData[] plaindataclient = ClientData.select(this);
145         if (plaindataclient != null) {
146
147             for (int i = 0; i < datarole.length; i++) {
148                 StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(datarole[i].clientlist, ",", false);
149
150                 while (st.hasMoreTokens()) {
151                     String JavaDoc 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 JavaDoc getServletInfo() {
185     return "Servlet for the media reports generation";
186   } // end of getServletInfo() method
187

188   private String JavaDoc getDescriptionFromArray(ClientData[] data, String JavaDoc 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