import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import com.zucchetti.sitepainter.SPPrxycizer; @com.zucchetti.sitepainter.EntityRoles({}) public class spquerysecurity extends SPDialogServlet implements SPInvokable { public static String m_cEntityUid = "!*99b7c7a1*!"; static public class ServletStatus extends SPPageServletStatus { public void MergeCallerVars(SPParameterSource source) { } } public void doProcess(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { // Inizializzazione delle variabili della classe globale di stato ServletStatus status = new ServletStatus(); status.containing = this; SPParameterSource source = SPLib.GetSource(request); // Controlla lo stato di login e la sicurezza associata alla procedura if ( ! (EnterServlet(status,source,request,response))) { return; } boolean requiredPwd; requiredPwd = (CPLib.eq(status.m_cAction,"delete")?false:false); boolean requiredOTP; requiredOTP = (CPLib.eq(status.m_cAction,"delete")?false:false); int accessType; accessType = (requiredOTP?3:((requiredPwd?2:SPLib.AccessType((CPLib.eq(status.m_cAction,"delete")?"delete":"access"),entityGlobals.name)))); if ( ! (CheckAccessSecurity(status,(CPLib.eq(accessType,3)?"OTP":(CPLib.eq(accessType,2)?"password":""))))) { RequestPwdOrOTP(status,(CPLib.eq(accessType,3)?"OTP":"password")); return; } // Ora esegue l' operazione richiesta da m_cAction spquerysecurityBO BO; BO = getBO(status); BO.m_bSkipCheckOTPSecurity = false; if (CPLib.eq(status.m_cAction,"start") || CPLib.eq(status.m_cAction,"query")) { Start(status,BO); } else if (CPLib.eq(status.m_cAction,"save")) { Save(status,BO); } else if (CPLib.eq(status.m_cAction,"discard")) { Discard(status,BO); } else if (CPLib.eq(status.m_cAction,"painter")) { Painter(status); } if (CPLib.eq(status.m_cAction,"next")) { Next(status,BO); } else if (CPLib.eq(status.m_cAction,"previous")) { Previous(status,BO); } // * --- Area Manuale = Do Action // * --- Fine Area Manuale if (status.m_bExit && ! (CPLib.Empty(status.m_cAtExit))) { if (CPLib.eq(CPLib.Left(status.m_cAtExit,8),"workflow")) { ExitToWorkflow(status); } else if (CPLib.eq(status.m_cAtExit,"close")) { // Si puo' proseguire con la chiusura della pagina corrente status.m_cClientMode = "close"; } else if (CPLib.eq(status.m_cAtExit,"close&reload")) { // Si puo' proseguire con la chiusura della pagina corrente e rinfrescare il chiamante status.m_bReload = true; status.m_cClientMode = "close"; } else { status.m_cAtExit = "workflow"+"\n"+"@END"+"\n"+status.m_cAtExit; ManageWorkflow(status,"@END"); } } else if ( ! (CPLib.Empty(BO.LastErrorMessage()))) { // verra' stampato l'alert dopo status.m_bError = true; } // ora interpreta la seconda parte del workflow (i vari set sull' oggetto reale) ExecuteWorkflowStartingScript(status,BO); // Ora manda la pagina di risposta NotifyEvent("Response start",status,BO); if (Forward.IsForwarded(status.forwardedto)) { SPLib.ForwardTo(status.forwardedto,servletContext,status.request,status.response); return; } SPLib.SetContentType(response); SPLib.NoCache(response); status.out = response.getWriter(); if (CPLib.eq(status.m_cClientMode,"close")) { WriteExitPage(status); } else if (CPLib.eq(status.m_cAction,"createportlet")) { CreatePortlet(status,BO); } else { WriteFormPage(BO,status); } } public String getEntityTitle() { return "ADMIN_QUERY_SECURITY"; } public SPEntityGlobals getEntityGlobals() { // Costanti globali dell' entita' SPEntityGlobals l_eg = new SPEntityGlobals(); l_eg.name = "spquerysecurity"; l_eg.userName = getEntityTitle(); l_eg.m_nEntityWidth = 5; l_eg.m_nEntityHeight = 5; l_eg.isPublic = false; l_eg.canAccess = false; l_eg.canInsert = true; l_eg.canChange = true; l_eg.canDelete = true; l_eg.m_cStates = "[]"; l_eg.zoomableTables = new String[]{}; l_eg.zoneItems = new ZoneItem[]{new ZoneItem("page_1","","page")}; l_eg.securedBoxes = new String[][] {}; l_eg.securedTabs = new String[][] {}; l_eg.m_lExecuteAtStart = true; l_eg.m_cQueryName = ""; return l_eg; } ArrayList i_sidebarItems = null; public org.json.JSONArray getSidebarItems(int p_nPage) { if (CPLib.IsNull(i_sidebarItems)) { i_sidebarItems = InitializeSidebarItemsArray(1); org.json.JSONArray l_sidebarPageItems; } if (CPLib.ge(p_nPage,0) && CPLib.lt(p_nPage,i_sidebarItems.size())) { return i_sidebarItems.get(p_nPage); } else { return new org.json.JSONArray(); } } // m_layerGroups inizializzato dal primo accesso a FillLayerGroups org.json.JSONObject m_layerGroups = null; public void FillLayerGroups(CPMNTChild[] p_MNTs) { if (CPLib.IsNull(m_layerGroups)) { org.json.JSONObject l_layerGroups = null; l_layerGroups = new org.json.JSONObject("{}"); if ( ! (CPLib.IsNull(p_MNTs))) { CPLib.AppendFoundlingChildOnLayerGroup(p_MNTs,l_layerGroups); } m_layerGroups = l_layerGroups; } } public String GetLayerGroupHeader(String p_cGroupName,String p_cLayerName,String p_cLayerId,spquerysecurityBO BO) { CPMNTChild[] l_MNTs = null; FillLayerGroups(l_MNTs); return GetGenericLayerGroupHeader(getLayerGroup(p_cGroupName),p_cLayerName,p_cLayerId,BO.m_Ctx,l_MNTs); } public org.json.JSONArray getLayerGroup(String group) { return m_layerGroups.getJSONArray(group); } org.json.JSONArray i_notifyItems = null; public org.json.JSONArray getNotifyItems() { if (CPLib.IsNull(i_notifyItems)) { i_notifyItems = new org.json.JSONArray(); } return i_notifyItems; } ArrayList i_contextmenu = null; public org.json.JSONArray getContextMenu(int p_nPage) { if (CPLib.IsNull(i_contextmenu)) { i_contextmenu = InitializeContextMenuArray(1); org.json.JSONArray l_contextmenuPageItems; } if (CPLib.ge(p_nPage,0) && CPLib.lt(p_nPage,i_contextmenu.size())) { return i_contextmenu.get(p_nPage); } else { return new org.json.JSONArray(); } } public String[][] JSTranslations(CPContext p_Context) { String[][] l_translations; l_translations=new String[][]{{"1056053448",p_Context.Translate("ADMIN_QUERY_SECURITY")}}; return l_translations; } void WriteStyles(spquerysecurityBO BO,ServletStatus status) { if ( ! ( ! (CPLib.Empty(status.m_cAltInterface)))) { status.out.println( "" + ""); } if (CPLib.eq(status.m_cClientMode,"painter")) { status.out.println( "" + ""); } } void WriteMainForm(spquerysecurityBO BO,ServletStatus status) { status.out.println( "
" + ""); status.out.println( "" + ""); status.out.println( "" + ""); status.out.println( "" + ""); if ( ! (CPLib.Empty(status.m_cAltInterface))) { status.request.setAttribute("com__zucchetti__sitepainter__altinterface__url",status.m_cAltInterface); status.request.setAttribute("com__zucchetti__sitepainter__altinterface__m_cEntityUid",m_cEntityUid); SPLib.Include(servletContext,status,status.m_cAltInterface); } else { WriteControls(BO,status); } status.out.println( "
" + ""); } void WriteControls(spquerysecurityBO BO,ServletStatus status) { PrintNotifyContent(status,getNotifyItems()); } static void PrintState(spquerysecurityBL BO,ServletStatus status) { PrintStateChildren(BO,status); PrintStateWorkVars(BO,status); } static void PrintStateChildren(spquerysecurityBL BO,ServletStatus status) { } static void PrintStateWorkVars(spquerysecurityBL BO,ServletStatus status) { status.out.print("DeclareWVs("); status.out.println(")"); if (CPLib.eq(status.m_cClientMode,"edit") || CPLib.eq(status.m_cClientMode,"new")) { status.out.println("m_bUpdated="+SPLib.ToJSValue(BO.m_bUpdated,"L",0,0)+";"); } } void WriteMainFormVarScript(spquerysecurityBO BO,ServletStatus status) { status.out.println( "" + ""); } void WriteMainFormScript(spquerysecurityBO BO,ServletStatus status) { status.out.println( "" + ""); } spquerysecurityBO getBO(ServletStatus status) { spquerysecurityBO BO = new spquerysecurityBO(status.context); LoadExtensions(BO); return BO; } void LoadExtensions(spquerysecurityBO BO) { } public void NotifyEvent(String p_cEvent,ServletStatus status,spquerysecurityBO BO) { super.NotifyEvent(p_cEvent,status,BO); CPLib.NotifyEvent(p_cEvent,BO,BO.m_Ctx,BO.specificEventsHandlers,BO.allEventsHandlers); } void WriteTableCombo(ServletStatus status,spquerysecurityBO BO) { String l_cTmp; CPResultSet l_rsLoad=null; } void Start(ServletStatus status,spquerysecurityBO BO) { BO.SetFromContext(status.m_cWv); } void Save(ServletStatus status,spquerysecurityBO BO) { boolean l_bResult; BO.SetFromContext(status.m_cWv); l_bResult = BO.Save(); if (l_bResult) { status.m_cClientMode = "new"; status.m_bExit = true; // valorizzazione dei placeholder del workflow: l'Initialize cancella i valori nel BO e solo in questo punto conosco i valori di campi in chiave sottoposti ad autonumber SetWorkflowPlaceholders(status,BO); } } void Discard(ServletStatus status,spquerysecurityBO BO) { status.m_bExit = true; } void CreatePortlet(ServletStatus status,spquerysecurityBO BO) { } void Next(ServletStatus status,spquerysecurityBO BO) { BO.SetFromContext(status.m_cWv); status.m_nStartRow = status.m_nStartRow+entityGlobals.m_nRowsPerPage; status.m_cClientMode = "edit"; } void Previous(ServletStatus status,spquerysecurityBO BO) { BO.SetFromContext(status.m_cWv); status.m_nStartRow = status.m_nStartRow-entityGlobals.m_nRowsPerPage; status.m_cClientMode = "edit"; } void WriteFormPage(spquerysecurityBO BO,ServletStatus status) { status.themeWriter = new SPTheme(status.out,status.GetThemeStatus("",status.context.Translate(entityGlobals.userName),""),"page"); status.out.println( "" + ""); status.out.println( "" + ""); status.out.println( "" + ""); status.WriteSkinnedCss(); status.out.println( "" + ""); WriteMetaTags(status); String l_cJsUid; com.zucchetti.sitepainter.Library.WriteLegacyScripts(status.request,status.out); com.zucchetti.sitepainter.Library.WriteFrameworkScripts(status.request,status.out); status.out.println( "" + ""); l_cJsUid = SPPrxycizer.proxycizedPath("stdFunctions.js"); status.out.println( "" + ""); if (com.zucchetti.sitepainter.Library.IsMobile(status.request)) { l_cJsUid = SPPrxycizer.proxycizedPath("spmobilelib.js"); status.out.println( "" + ""); } status.out.println( "" + ""); l_cJsUid = SPPrxycizer.proxycizedPath("controls.js"); status.out.println( "" + ""); if (status.is_live_editing) { l_cJsUid = SPPrxycizer.proxycizedPath("visualweb/VisualWEB.js"); status.out.println( "" + ""); l_cJsUid = SPPrxycizer.proxycizedPath("LiveEditing.js"); status.out.println( "" + ""); } l_cJsUid = SPPrxycizer.proxycizedPath("SPBOUILib.js"); status.out.println( "" + ""); l_cJsUid = SPPrxycizer.proxycizedPath("pageControls.js"); status.out.println( "" + ""); status.out.println( "" + ""); IncludeJS(status); RaiseSavedEntity(BO,status); RaiseDeletedEntity(BO,status); RaiseDiscardedEntity(BO,status); // Dichiarazione delle variabili di script WriteMainFormVarScript(BO,status); l_cJsUid = SPPrxycizer.proxycizedPath(status.m_cTheme+"/styleVariables.js"); status.out.println( "" + ""); l_cJsUid = SPPrxycizer.proxycizedPath(status.m_cTheme+"/calendar.js"); status.out.println( "" + ""); l_cJsUid = SPPrxycizer.proxycizedPath(status.m_cTheme+"/calculator.js"); status.out.println( "" + ""); if (CPLib.ne(status.m_bAutoResize,"")) { status.out.println( "" + ""); } status.themeWriter.WriteInclude(); WriteStyles(BO,status); status.out.println( "" + ""+SPLib.ToHTMLRepresentation(status.context.Translate(entityGlobals.userName))+"" + "" + ""); status.out.println( "" + ""); status.m_cBodyAttributes = "onload=OnLoad() onhelp=CancelHelp()"; status.m_cBodyAttributes = status.m_cBodyAttributes+" onkeydown=window.ManageKeys(event,false,false,true)"; status.m_cBodyAttributes = status.m_cBodyAttributes+" onfocus=EnsureControlFocus()"; status.themeWriter.WriteBody_Begin(5,status.m_cBodyAttributes,status.context.Translate("MSG_LOADING")+"..."); status.out.println( "" + ""); WriteMainFormScript(BO,status); status.WriteSenderForm(entityGlobals,false); WriteMainForm(BO,status); status.themeWriter.WriteBody_EndHtml(); status.themeWriter.WriteBody_End(); status.out.println( "" + ""); status.out.println( "" + ""); } void RaiseLoadedEntity(spquerysecurityBO BO,ServletStatus status) { RaiseEventLoadedEntity(status,SPLib.ToJSValue("({action:"+SPLib.ToJSValue(status.m_cClientMode,"C",0,0)+"})","C",0,0)); } void RaiseSavedEntity(spquerysecurityBO BO,ServletStatus status) { if (CPLib.eq(status.m_cAction,"save") && ! (status.m_bError)) { status.out.println( "" + ""); } } void RaiseDeletedEntity(spquerysecurityBO BO,ServletStatus status) { if (CPLib.eq(status.m_cAction,"delete") && ! (status.m_bError)) { status.out.println( "" + ""); } } void RaiseDiscardedEntity(spquerysecurityBO BO,ServletStatus status) { if (CPLib.eq(status.m_cAction,"discard")) { status.out.println( "" + ""); } } void WriteExitPage(spquerysecurityBO BO,ServletStatus status,Forward f) { WriteExitPage(status,SPLib.ToJSValue("({action:"+SPLib.ToJSValue(status.m_cMode,"C",0,0)+"})","C",0,0), f); } void WriteExitPage(spquerysecurityBO BO,ServletStatus status) { WriteExitPage(BO,status,Forward.Unforwarded); } void IncludeJS(ServletStatus status) { String l_cJsUid; /* --- Area Manuale = UI - Include */ /* --- Fine Area Manuale */ } // m_CallableNames inizializzato dal primo accesso a GetCallableNames private static volatile String[] m_CallableNames; public static String[] GetCallableNames() { if (CPLib.IsNull(m_CallableNames)) { java.util.Set building = new java.util.HashSet(); GetCallableNames(building); m_CallableNames = CPLib.SetOfStringsAsArray(building); } return (String[])m_CallableNames.clone(); } public static void GetCallableNames(java.util.Set callable) { if (CPLib.IsNull(m_CallableNames)) { } else { CPLib.AddStringsToSet(callable,m_CallableNames); } } void AppendCallableIDS(ServletStatus status,String sep) { } public String GetCheckVars(ServletStatus status,spquerysecurityBO BO,String p_cUID) { com.zucchetti.sitepainter.Library.HashCreator hCreator = com.zucchetti.sitepainter.Library.GetHashCreator(); hCreator.Reset(); if (CPLib.eq(p_cUID,m_cEntityUid)) { } return GetEntityHash(p_cUID,status,hCreator); } public boolean CheckVars(ServletStatus status,spquerysecurityBO BO) { boolean result = true; if (SPServlet.m_nEnableCheckHash) { String a = GetCheckVars(status,BO,m_cEntityUid); String b = status.m_CheckVars.optString("_"); result = CPLib.eq(a,b); } return result; } }