예제 #1
0
        private void CheckSecurityOnMenuButtons(MyMenuClass myMenu)
        {
            string     filter  = "";
            DataAccess UsrConn = GetVars.GetUserConn(this);

            if (((UsrConn == null) || (UsrConn.Open() == false)))
            {
                return;
            }

            CQueryHelper QHC = new CQueryHelper();
            QueryHelper  QHS = UsrConn.GetQueryHelper();

            string fitermenu = QHS.FieldInList("metadata",
                                               QHS.List("upb", "underwriting", "mandate", "finvar", "accountvar", "enactment", "accountenactment", "itineration"));
            DataTable DT = UsrConn.RUN_SELECT("menu", "*", "ordernumber,paridmenu", fitermenu, null, false);


            UsrConn.Security.DeleteAllUnselectable(DT);

            DataTable webconfig             = UsrConn.RUN_SELECT("web_config", "*", null, null, null, false);
            DataRow   rwebconf              = webconfig.Rows[0];
            bool      menuitinerationlist   = (rwebconf["menuitinerationlist"].ToString().ToUpper() == "S");
            bool      menuitinerationinsert = (rwebconf["menuitinerationinsert"].ToString().ToUpper() == "S");

            // UPB
            filter = QHC.CmpEq("metadata", "upb");
            var DR = DT.Select(filter);

            if (DR.Length == 0)
            {
                Upb = false;
            }


            //Finanziamento
            filter = QHC.CmpEq("metadata", "underwriting");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                Finanziamento = false;
            }


            // Buono D'ordine
            filter = QHC.CmpEq("metadata", "mandate");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                BuonoOrdine = false;
            }

            // Variazioni di Bilancio
            filter = QHC.CmpEq("metadata", "finvar");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                VarPrev     = false;
                VarIniziale = false;
            }

            // TODO: Verificare l'utilità di questa condizione!
            // Variazioni di Bilancio per Viterbo
            //Filter = QHC.CmpEq("metadata", "viterbo_finvar");
            //DR = DT.Select(Filter);
            //if (DR.Length == 0) {
            //    VarPrev = false;
            //    VarIniziale = false;
            //}

            // Variazioni di Budget
            filter = QHC.CmpEq("metadata", "accountvar");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                VarPrevBudget     = false;
                VarInizialeBudget = false;
            }
            // Atto Amministrativo
            filter = QHC.CmpEq("metadata", "enactment");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                Atto = false;
            }
            // Atto Amministrativo di Budget
            filter = QHC.CmpEq("metadata", "accountenactment");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                AttoBudget = false;
            }
            ////Ricarica cards
            //Filter = QHC.CmpEq("metadata", "lcardvar");
            //DR = DT.Select(Filter);
            //if (DR.Length == 0) RicaricaCard = false;

            MyMenuClass bil = null;

            if (Upb || Finanziamento)
            {
                bil = new MyMenuClass("Bilancio", null, null);

                if (Finanziamento)
                {
                    MyMenuClass m = new MyMenuClass("Finanziamento", "f", "underwriting.defaultnew02");
                    bil.AddChild(m);
                }
                if (Upb)
                {
                    MyMenuClass m = new MyMenuClass("UPB", "f", "upb.defaultnew02");
                    bil.AddChild(m);
                }
            }

            MyMenuClass ep = null;

            if (VarPrevBudget || VarInizialeBudget || AttoBudget)
            {
                ep = new MyMenuClass("E/P", null, null);
                if (VarInizialeBudget)
                {
                    MyMenuClass m = new MyMenuClass("Previsioni iniziali di Budget", "f", "accountvar.inizialenew02");
                    ep.AddChild(m);
                }

                if (VarPrevBudget)
                {
                    MyMenuClass m = new MyMenuClass("Variazione previsioni di Budget", "f", "accountvar.defaultnew02");
                    ep.AddChild(m);
                }
                if (AttoBudget)
                {
                    MyMenuClass m = new MyMenuClass("Atto Amministrativo di Budget", "f", "accountenactment.default");
                    ep.AddChild(m);
                }
            }

            MyMenuClass fin = null;

            //if (BuonoOrdine || VarPrev || Atto || RicaricaCard || GestisciCard || VarIniziale) {
            if (BuonoOrdine || VarPrev || ViterboVarPrev || Atto || RicaricaCard || GestisciCard || VarIniziale)
            {
                fin = new MyMenuClass("Finanziario", null, null);
                if (BuonoOrdine)
                {
                    MyMenuClass m = new MyMenuClass("Richiesta buono d'ordine", "f", "mandate.defaultnew02");
                    fin.AddChild(m);
                }
                if (VarIniziale)
                {
                    MyMenuClass m = new MyMenuClass("Previsioni iniziali", "f", "finvar.inizialenew02");
                    fin.AddChild(m);
                }

                if (VarPrev)
                {
                    MyMenuClass m = new MyMenuClass("Variazione previsioni", "f", "finvar.defaultnew02");
                    fin.AddChild(m);
                }

                // Inserita per Viterbo
                if (ViterboVarPrev && Session["system_config_previsioni_viterbo"] as string == "S")
                {
                    MyMenuClass m = new MyMenuClass("Viterbo - Variazione previsioni", "f", "viterbo_finvar.default");

                    // MyMenuClass m = new MyMenuClass("Viterbo - Variazione previsioni", "f", "viterbo_finvar_default");
                    //MyMenuClass m = new MyMenuClass("Viterbo - Variazione previsioni", "f", "viterbofinvar.default");
                    fin.AddChild(m);
                }

                if (Atto)
                {
                    MyMenuClass m = new MyMenuClass("Atto Amministrativo", "f", "enactment.defaultnew02");
                    fin.AddChild(m);
                }

                if (RicaricaCard)
                {
                    MyMenuClass m = new MyMenuClass("Ricarica card", "f", "lcardvar.default");
                    fin.AddChild(m);
                }
                if (GestisciCard)
                {
                    MyMenuClass m = new MyMenuClass("Gestisci card", "f", "lcard.default");
                    fin.AddChild(m);
                }
            }


            //Vetrina
            //Filter = QHC.CmpEq("metadata", "booking");
            string allowbooking = "'S'";

            if (UsrConn.GetUsr("ric_magazzino") != null)
            {
                allowbooking = UsrConn.GetUsr("ric_magazzino").ToString().ToUpper();
            }
            if (allowbooking != "'S'")
            {
                Prenota           = false;
                PrenotaMyTeam     = false;
                PrenotaWait       = false;
                Vetrina           = false;
                IngressoMagazzino = false;
            }


            //if (UsrConn.GetUsr("missioni") != null) {
            //    string managecompensi = UsrConn.GetUsr("missioni").ToString();
            //}
            // Missioni
            filter = QHC.CmpEq("metadata", "itineration");
            DR     = DT.Select(filter);
            if (DR.Length == 0)
            {
                Missioni        = false;
                MissioniAuth    = false;
                MissioniMyTeam  = false;
                CataniaMissioni = false;
            }
            else
            {
                if (Session["CodiceResponsabile"] == null)
                {
                    MissioniMyTeam = false;
                }
                int idauthagency = GetImpersonatedAuthAgency(UsrConn);
                if (idauthagency == 0)
                {
                    MissioniAuth = false;
                }
            }

            MyMenuClass mag = null;

            if (Prenota || PrenotaMyTeam || PrenotaWait || Vetrina || IngressoMagazzino)
            {
                mag = new MyMenuClass("Magazzino");

                if (Vetrina)
                {
                    MyMenuClass m = new MyMenuClass("Vetrina", "f", "showcase.defaultnew02");
                    mag.AddChild(m);
                }
                if (Prenota)
                {
                    MyMenuClass m = new MyMenuClass("Mie Prenotazioni", "f", "booking.defaultnew02");
                    mag.AddChild(m);
                }
                if (PrenotaMyTeam)
                {
                    MyMenuClass m = new MyMenuClass("Prenotazioni del mio Team", "f", "booking.myteamnew02");
                    mag.AddChild(m);
                }
                if (PrenotaWait)
                {
                    MyMenuClass m = new MyMenuClass("Prenotazioni da autorizzare", "f", "bookingdetail.defaultnew02");
                    mag.AddChild(m);
                }
                if (IngressoMagazzino)
                {
                    MyMenuClass m = new MyMenuClass("Stampa Check In magazzino", "s", "ingressomagazzino");
                    mag.AddChild(m);
                }
            }

            MyMenuClass mis = null;

            if (MissioniMyTeam || MissioniAuth || Missioni || CataniaMissioni)
            {
                mis = new MyMenuClass("Missioni");
                if (Missioni)
                {
                    if (true || menuitinerationinsert)
                    {
                        MyMenuClass m1 = new MyMenuClass("Richiesta Missione", "f", "itineration.autoinsertnew02");
                        mis.AddChild(m1);
                    }
                    if (true || menuitinerationlist)
                    {
                        MyMenuClass m2 = new MyMenuClass("Elenco Missioni", "f", "itineration.autolistnew02");
                        mis.AddChild(m2);
                    }

                    MyMenuClass m = new MyMenuClass("Missioni", "f", "itineration.defaultnew02");
                    mis.AddChild(m);
                }

                if (MissioniMyTeam)
                {
                    MyMenuClass m = new MyMenuClass("Missioni sui miei fondi", "f", "itineration.myteamnew02");
                    mis.AddChild(m);
                }
                if (MissioniAuth)
                {
                    MyMenuClass m = new MyMenuClass("Autorizza Missioni", "f", "itinerationauthview.defaultnew02");
                    mis.AddChild(m);
                }
                if (CataniaMissioni)
                {
                    MyMenuClass m = new MyMenuClass("Missioni(Catania)", "f", "itineration.ct_default");
                    mis.AddChild(m);
                }
            }

            if (bil != null || fin != null || ep != null || mag != null || mis != null)
            {
                MyMenuClass funz = new MyMenuClass("Funzioni");
                myMenu.AddChild(funz);

                if (bil != null)
                {
                    funz.AddChild(bil);
                }
                if (fin != null)
                {
                    funz.AddChild(fin);
                }
                if (mag != null)
                {
                    funz.AddChild(mag);
                }
                if (mis != null)
                {
                    funz.AddChild(mis);
                }
                if (ep != null)
                {
                    funz.AddChild(ep);
                }
            }
            // Vanno aggiunti i filtri per la vetrina e la prenotazione
            UsrConn.Close();
            return;
        }
예제 #2
0
 public void AddChild(MyMenuClass MenuItem)
 {
     submenu.Add(MenuItem);
 }
예제 #3
0
        //HtmlGenericControl StartVoceMenu(HtmlGenericControl parent, string testo,string classfun, string buttontag, EventHandler handler) {
        //    HtmlGenericControl LI = new HtmlGenericControl("li");
        //    LI.InnerText = testo;
        //    parent.Controls.Add(LI);
        //    LI.Attributes["onClick"] = "doMenuFunction(\"" + classfun + "\",\"" + buttontag + "\"); return true;";
        //    Page.ClientScript.GetCallbackEventReference(HwMenuButton.ID, buttontag, null, null, null, true);
        //    return LI;
        //}
        //LiteralControl StopVoceMenu(LiteralControl parent) {
        //}
        protected void Page_Load(object sender, System.EventArgs e)
        {
            /////////////////
            WebLog.Log(this, "Visualizza IndiceReport.aspx");
            ////////////////
            MyMenuClass.RegisterScript(this, HwMenuButton);

            MetaMasterBootstrap master = Page.Master as MetaMasterBootstrap;

            master?.setUniversita(Session["system_config_nome_universita"] as string);

            bool IsManager = (Session["CodiceResponsabile"] != null ? true : false);

            if (!IsManager)
            {
                PrenotaWait       = false;
                PrenotaMyTeam     = false;
                RicaricaCard      = false;
                GestisciCard      = false;
                IngressoMagazzino = false;
            }



            //btnRegistroRichiesteBuonoOrdine.Attributes.Add("onclick", "aprifin();");
            if (Session["Cart"] != null)
            {
                ApplicationState APS = ApplicationState.GetApplicationState(this);
                MetaData         M   = APS.Dispatcher.Get("booking");
                M.edit_type = "defaultnew02";
                APS.CallPage(this, M, false);
            }

            if (Session["UserPar"] != null)
            {
                if (Session["ModuleReportRow"] != null)
                {
                    // Report
                    string F = "window.open('WebPDFView.aspx');";

                    if (!Page.ClientScript.IsClientScriptBlockRegistered(typeof(Page), "openwin"))
                    {
                        Page.ClientScript.RegisterClientScriptBlock(
                            typeof(Page), "openwin", F, true);
                    }
                    //if (Session["PageToCameBack"] != null) {
                    //    string url = Session["PageToCameBack"].ToString();
                    //    Session["PageToCameBack"] = null;
                    //    Response.Redirect(url);
                    //    return;
                    //}
                }
                else
                {
                    // Export
                    string F = "window.open('ExportView.aspx');";
                    if (!Page.ClientScript.IsClientScriptBlockRegistered(typeof(Page), "openwin"))
                    {
                        Page.ClientScript.RegisterClientScriptBlock(
                            typeof(Page), "openwin", F, true);
                    }
                }
                //ApplicationState APS = ApplicationState.GetApplicationState(this);
                //MetaData M = APS.Dispatcher.Get("webpdf");
                //M.edit_type = "view";
                //APS.CallPage(this, M, false);
            }
            DataAccess UsrConn = GetVars.GetUserConn(this);

            if (((UsrConn == null) || (UsrConn.Open() == false)))
            {
                return;
            }
            string tipoutente = Session["TipoUtente"] as string;

            //if (tipoutente != "utente" && tipoutente != "Utente LDAP") {
            if (UsrConn.GetUsr("HasVirtualUser") == null && tipoutente != "utente")
            {
                Atto              = false;
                AttoBudget        = false;
                BuonoOrdine       = false;
                VarPrev           = false;
                ViterboVarPrev    = false;
                VarIniziale       = false;
                VarPrevBudget     = false;
                VarInizialeBudget = false;
                Vetrina           = false;
                Prenota           = false;
                IngressoMagazzino = false;
                PrenotaMyTeam     = false;
                PrenotaWait       = false;
                Missioni          = false;
                CataniaMissioni   = false;
                MissioniAuth      = false;
                MissioniMyTeam    = false;
                canChangeRole     = false;
                RicaricaCard      = false;
                GestisciCard      = false;
                Upb           = false;
                Finanziamento = false;
            }

            if (tipoutente == "Utente LDAP" || tipoutente == "Utente SSO")
            {
                CanChangePassword = false;
            }

            if (RicaricaCard && UsrConn.RUN_SELECT_COUNT("lcard", null, false) == 0)
            {
                RicaricaCard = false;
            }
            //if (GestisciCard && UsrConn.RUN_SELECT_COUNT("lcard", null, false) == 0) {
            //    GestisciCard = false;
            //}


            MyMenuClass myMenu = new MyMenuClass(null);

            CheckSecurityOnMenuButtons(myMenu);



            string filter = UsrConn.GetSys("filterrule") as string;

            filter = GetData.MergeFilters(filter, "(webvisible='S')");
            if (tipoutente == "responsabile")
            {
                filter = filter + "AND" +
                         "(reportname in (select reportname from reportparameter where datasource='manager'))";
            }
            if (tipoutente == "fornitore")
            {
                filter = filter + "AND" +
                         "(reportname in (select reportname from reportparameter where datasource='registryreference'))";
            }
            ModRepWeb = UsrConn.RUN_SELECT("report", "*", "modulename,groupname", filter, null, true);

            UsrConn.Security.DeleteAllUnselectable(ModRepWeb);
            QueryHelper  QHS         = UsrConn.GetQueryHelper();
            CQueryHelper QHC         = new CQueryHelper();
            object       idflowchart = UsrConn.GetSys("idflowchart");

            if (idflowchart != null && idflowchart != DBNull.Value)
            {
                //Applica filtro su stampe in base a flowchart
                DataTable MyMod = UsrConn.RUN_SELECT("flowchartmodulegroup", "*", null,
                                                     QHS.CmpEq("idflowchart", idflowchart), null, false);
                if (MyMod != null && MyMod.Columns.Count > 0)
                {
                    MyMod.CaseSensitive = false;
                    foreach (DataRow RM in ModRepWeb.Select())
                    {
                        if (RM["modulename"].ToString() == "" || RM["groupname"].ToString() == "")
                        {
                            continue;
                        }
                        string existfilter = QHC.AppAnd(QHC.CmpEq("modulename", RM["modulename"]),
                                                        QHC.CmpEq("groupname", RM["groupname"]));
                        if (MyMod.Select(existfilter).Length > 0)
                        {
                            continue;
                        }
                        RM.Delete();
                    }
                }
            }
            ModRepWeb.AcceptChanges();

            string lastmodule    = "";
            string lastgroupname = "";

            //Visualizza l'elenco dei report disponibili
            if (ModRepWeb != null && ModRepWeb.Rows.Count > 0)
            {
                MyMenuClass menuReport = new MyMenuClass("Report");
                myMenu.AddChild(menuReport);
                MyMenuClass menuModule = null;
                MyMenuClass menuGruppo = null;
                foreach (DataRow DrReport in ModRepWeb.Rows)
                {
                    if (DrReport["modulename"].ToString().ToLower() != lastmodule)
                    {
                        menuModule = new MyMenuClass(DrReport["modulename"].ToString());
                        menuReport.AddChild(menuModule);
                        lastmodule = DrReport["modulename"].ToString().ToLower();

                        menuGruppo = new MyMenuClass(DrReport["groupname"].ToString(), true);
                        menuModule.AddChild(menuGruppo);
                        lastgroupname = DrReport["groupname"].ToString().ToLower();
                    }

                    if (DrReport["groupname"].ToString().ToLower() != lastgroupname)
                    {
                        menuGruppo = new MyMenuClass(DrReport["groupname"].ToString(), true);
                        menuModule.AddChild(menuGruppo);
                        lastgroupname = DrReport["groupname"].ToString().ToLower();
                    }


                    MyMenuClass voce = new MyMenuClass(DrReport["Description"].ToString(), "r",
                                                       DrReport["ModuleName"].ToString() + "." + DrReport["ReportName"].ToString());
                    menuGruppo.AddChild(voce);
                }
            }

            string filterexpresp = "(webvisible='S') ";

            if (Session["CodiceResponsabile"] != null)
            {
                filterexpresp = filterexpresp + " AND" +
                                "(procedurename in (select procedurename from exportfunctionparam where datasource='manager'))";
            }
            if (Session["CodiceFornitore"] != null)
            {
                filterexpresp = filterexpresp + " AND" +
                                "(procedurename in (select procedurename from exportfunctionparam where datasource='registryreference'))";
            }
            ExportWeb = UsrConn.RUN_SELECT("exportfunction", "*", "modulename", filterexpresp, null, true);

            UsrConn.Security.DeleteAllUnselectable(ExportWeb);
            if (idflowchart != null && idflowchart != DBNull.Value)
            {
                //Applica filtro su stampe in base a flowchart
                DataTable MyMod = UsrConn.RUN_SELECT("flowchartexportmodule", "*", null,
                                                     QHS.CmpEq("idflowchart", idflowchart), null, false);
                if (MyMod != null && MyMod.Columns.Count > 0)
                {
                    MyMod.CaseSensitive = false;
                    foreach (DataRow RM in ExportWeb.Select())
                    {
                        if (RM["modulename"].ToString() == "")
                        {
                            continue;
                        }
                        string existfilter = QHC.CmpEq("modulename", RM["modulename"]);
                        if (MyMod.Select(existfilter).Length > 0)
                        {
                            continue;
                        }
                        RM.Delete();
                    }
                }
            }
            ExportWeb.AcceptChanges();

            lastmodule = "";

            //Visualizza l'elenco delle esportazioni disponibili
            if (ExportWeb != null && ExportWeb.Rows.Count > 0)
            {
                MyMenuClass menuExport = new MyMenuClass("Esportazioni");
                myMenu.AddChild(menuExport);
                MyMenuClass menuExpModule = null;
                //MyMenuClass menuExpGruppo;


                foreach (DataRow DrExport in ExportWeb.Rows)
                {
                    if (DrExport["modulename"].ToString().ToLower() != lastmodule)
                    {
                        menuExpModule = new MyMenuClass(DrExport["modulename"].ToString(), null, null);
                        menuExport.AddChild(menuExpModule);
                        lastmodule = DrExport["modulename"].ToString().ToLower();
                    }

                    MyMenuClass voce = new MyMenuClass(DrExport["Description"].ToString(), "e",
                                                       DrExport["procedurename"].ToString() + "." + DrExport["Description"].ToString());
                    menuExpModule.AddChild(voce);
                }
            }

            /*
             * MyMenuClass sys = new MyMenuClass("Sistema");
             * myMenu.AddChild(sys);
             * sys.AddChild(new MyMenuClass("Disconnetti", "s", "disconnect"));
             * if (canChangeRole) sys.AddChild(new MyMenuClass("Cambio Ruolo", "s", "changerole"));
             * if (CanChangePassword) sys.AddChild(new MyMenuClass("Cambio Password", "s", "changepwd"));
             */


            myMenu.AddChild(new MyMenuClass("Disconnetti", "s", "disconnect"));
            if (canChangeRole)
            {
                myMenu.AddChild(new MyMenuClass("Cambio Ruolo", "s", "changerole"));
            }
            if (CanChangePassword)
            {
                myMenu.AddChild(new MyMenuClass("Cambio Password", "s", "changepwd"));
            }


            myMenu.Optimize();

            MenuPanel.Controls.Add(myMenu.GetControl());
            UsrConn.Close();
            //WebLog.Log(this,"Visualizza Elenco Report disponibili (" + ModRepWeb.Rows.Count.ToString() + ")");
        }