Exemplo n.º 1
0
        protected void btnok_Click(object sender, EventArgs e)
        {
            Easy_DataAccess Conn         = GetVars.GetUserConn(Page);
            bool            err          = false;
            string          idcustomuser = Conn.GetSys("idcustomuser") as string;
            object          idflowchart  = cmbruolo.SelectedValue;
            object          ndetail      = Conn.GetSys("ndetail");
            object          currdate     = Conn.GetSys("datacontabile");

            string sel = cmbruolo.SelectedValue;

            if (sel == "" || sel == null)
            {
                return;
            }

            if (sel.IndexOf("§") < 0)
            {
                return;
            }
            string [] ss = sel.Split('§');
            ndetail     = CfgFn.GetNoNullInt32(ss[1]);
            idflowchart = ss[0];
            string filter = QHS.AppAnd(QHS.CmpEq("idcustomuser", idcustomuser),
                                       QHS.CmpEq("idflowchart", idflowchart),
                                       QHS.CmpEq("ndetail", ndetail));
            object title = Conn.DO_READ_VALUE("flowchartuser", filter, "title");

            if (title == DBNull.Value)
            {
                title = Conn.DO_READ_VALUE("flowchart", QHS.CmpEq("idflowchart", idflowchart), "title");
            }

            Conn.RecalcUserEnvironment(idflowchart, ndetail);
            Conn.ReadAllGroupOperations();

            Session["SavedFlowChart"] = null;
            if (title != null)
            {
                Session["SavedFlowChart"] = title;
            }

            Response.Redirect("IndiceReport.aspx");
        }
Exemplo n.º 2
0
        protected void btnOk_Click(object sender, ImageClickEventArgs e)
        {
            if (Conn == null)
            {
                return;
            }

            DateTime D;

            try {
                D = (DateTime)HelpForm.GetObjectFromString(typeof(DateTime), txtDataContabile.Text, "x.y");
            }
            catch {
                lblMessaggio.Text = "La data contabile è un campo obbligatorio.";
                return;
            }

            string codicedipartimento = null;

            if (Request != null)
            {
                codicedipartimento = Request.Params["dep"];
                if (!string.IsNullOrEmpty(codicedipartimento))
                {
                    Label3.Visible          = false;
                    cmbDipartimento.Visible = false;
                }
            }

            if (string.IsNullOrEmpty(codicedipartimento))
            {
                if (cmbDipartimento.SelectedValue != "" && cmbDipartimento.SelectedValue != null)
                {
                    codicedipartimento = cmbDipartimento.SelectedValue;
                }
            }

            if (string.IsNullOrEmpty(codicedipartimento))
            {
                lblMessaggio.Text = "E' obbligatorio scegliere un dipartimento";
            }

            //Cerco prima nella tabella contatto e poi nella tabella responsabile.
            string NomeUtente = txtNomeUtente.Text;

            //rbTipuUtente.SelectedValue == "5" IMPLICITAMENTE

            // Connessione al dipartimento.
            ConnectToDepartment(codicedipartimento, null, null, D);

            //Connessione al Server.Database privato del software.
            Easy_DataAccess UsrConn = GetVars.GetUserConn(this);

            if (UsrConn == null)
            {
                return;                  //Messaggio già viualizzato da ConnectToDepartment()
            }
            QueryHelper QHS = UsrConn.GetQueryHelper();

            if (!DatiValidi(D, UsrConn))
            {
                lblMessaggio.Text = string.Format("L'esercizio {0} non è stato creato!", D.Year);
                return;
            }

            if (UsrConn.Open() == false)
            {
                //Il Server del Dipartimento non è in rete.
                //Il servizio non è disponibile in quanto il computer potrebbe essere spento.
                labExtMessage.Text = "Il Server del Dipartimento non risponde.\r" +
                                     "Potrebbe essere spento o momentaneamente fuori rete. \r" +
                                     "Provi in seguito.";
                WebLog.Log(this, "Il Server del dipartimento non risponde.");
                return;
            }

            UsrConn.Close();

            Meta_EasyDispatcher Disp = new Meta_EasyDispatcher(UsrConn);
            ApplicationState    APS  = new ApplicationState(Disp, UsrConn);

            string path     = this.MapPath(".");
            string filename = Path.Combine(path, "proxyserver.html");

            if (File.Exists(filename))
            {
                StreamReader SR      = new StreamReader(filename);
                string       webauth = SR.ReadToEnd();
                webauth          = webauth.Replace("\n", "").Replace("\r", "").Trim();
                APS.webautorithy = webauth;
                SR.Close();
            }

            APS.SaveApplicationState(this);
            labExtMessage.Text = "Connessione al server effettuata.";

            int    userkind = 5; // utente SSO (SAML/Shibboleth)
            string user     = null;
            string forename = null;
            string lastname = null;
            string cf       = null;
            string email    = null;

            string filter = QHS.AppAnd(
                QHS.CmpEq("username", NomeUtente),
                QHS.CmpEq("codicedipartimento", codicedipartimento),
                QHS.CmpEq("userkind", userkind)
                );

            // prelevare l'idflowchart e poi fare la connecttodepartment
            DataTable virtualuser = Conn.RUN_SELECT("virtualuser", "*", null, filter, null, false);

            if (virtualuser != null && virtualuser.Rows.Count != 0)
            {
                user     = virtualuser.Rows[0]["sys_user"].ToString();
                forename = virtualuser.Rows[0]["forename"].ToString();
                lastname = virtualuser.Rows[0]["surname"].ToString();
                email    = virtualuser.Rows[0]["email"].ToString();
                cf       = virtualuser.Rows[0]["cf"].ToString();

                UsrConn.SetUsr("HasVirtualUser", "S");
                // Controllare se è anche un responsabile
                // Vediamo se esiste un manager il cui login="******"
                // se si, assegnamo le due variabili di responsabile come
                // nel caso "2"
                filter = QHS.CmpEq("userweb", virtualuser.Rows[0]["username"].ToString());
                DataTable manager = UsrConn.RUN_SELECT("manager", "*", null, filter, null, false);
                if (manager != null && manager.Rows.Count != 0)
                {
                    Session["Responsabile"]       = manager.Rows[0]["title"].ToString();
                    Session["CodiceResponsabile"] = manager.Rows[0]["idman"];
                }

                EasySecurity sec = UsrConn.Security as EasySecurity;
                UsrConn.externalUser = NomeUtente;
                sec.SetSys("user", user);
                sec.SetUsr("usergrouplist", null);
                sec.CalculateGroupList();
                sec.RecalcUserEnvironment();
                sec.ReadAllGroupOperations();
                sec.SetUsr("forename", forename);
                sec.SetUsr("surname", lastname);
                sec.SetUsr("email", email);
                sec.SetUsr("cf", cf);
                if (!CambioDataConsentita(UsrConn, D))
                {
                    UsrConn.Close();
                    labExtMessage.Text = "Accesso non consentito in tale data \rin base alla gestione della sicurezza.";
                    lblMessaggio.Text  = "Accesso negato";
                    return;
                }
            }
            else
            {
                lblMessaggio.Text = "Utente non valido.";
                return;
            }

            Session["TipoUtente"]     = "Utente SSO";
            Session["Utente"]         = string.Format("{0} {1}", forename, lastname);
            Session["PasswordUtente"] = null; // non la conosciamo

            Session["SavedFlowChart"] = null;
            object idflowchart = UsrConn.GetSys("idflowchart");

            if (idflowchart != null && idflowchart != DBNull.Value)
            {
                object title = UsrConn.DO_READ_VALUE("flowchart", QHS.CmpEq("idflowchart", idflowchart), "title");
                if (title != null && title != DBNull.Value)
                {
                    Session["SavedFlowChart"] = title;
                }
            }

            Session["SavedHomePage"] = "LoginSAML.aspx";
            Response.Redirect("IndiceReport.aspx");
        }
Exemplo n.º 3
0
        /// <summary>
        /// Aggiunge un utente al gruppo organigramma e poi lo collega ad uno specifico nodo dell'organigramma stesso
        /// </summary>
        /// <param name="FlowChartUserToAdd"></param>
        /// <returns></returns>
        bool AggiungiUtenteAdOrganigramma(FlowChartUser FlowChartUserToAdd)
        {
            MetaData meta_flowchartuser = Meta.Dispatcher.Get("flowchartuser");

            string idcustomuser = FlowChartUserToAdd.idcustomuser;
            string login        = idcustomuser; // assunzione base

            bool res = AggiungiUtenteAGruppoOrganigramma(idcustomuser, login);

            if (!res)
            {
                return(false);
            }

            object idflowchart = Conn.DO_READ_VALUE("flowchart",
                                                    QHS.AppAnd(QHS.CmpEq("codeflowchart", FlowChartUserToAdd.flowchartcode),
                                                               QHS.CmpEq("ayear", Conn.GetSys("esercizio")))
                                                    , "idflowchart");

            if (idflowchart == null || idflowchart == DBNull.Value)
            {
                MessageBox.Show(this,
                                "Il codice " + FlowChartUserToAdd.flowchartcode + " non è presente nella tabella organigramma dell'anno " +
                                Conn.GetSys("esercizio").ToString() + ".",
                                "Errore");
                return(false);
            }

            string f = QHS.AppAnd(QHS.CmpEq("idcustomuser", idcustomuser), QHS.CmpEq("idflowchart", idflowchart),
                                  QHS.CmpEq("title", FlowChartUserToAdd.title));

            if (Conn.RUN_SELECT_COUNT("flowchartuser", f, false) > 0)
            {
                return(true);                                                      //già presente
            }
            DataTable TFlowchartUser = Conn.CreateTableByName("flowchartuser", "*");
            DataSet   D = new DataSet();

            D.Tables.Add(TFlowchartUser);

            MetaData.SetDefault(TFlowchartUser, "idflowchart", idflowchart);
            MetaData.SetDefault(TFlowchartUser, "idcustomuser", idcustomuser);

            meta_flowchartuser.SetDefaults(TFlowchartUser);
            DataRow fu = meta_flowchartuser.Get_New_Row(null, TFlowchartUser);

            fu["title"] = FlowChartUserToAdd.title;

            fu["idsor01"] = FlowChartUserToAdd.idsor01;
            fu["idsor02"] = FlowChartUserToAdd.idsor02;
            fu["idsor03"] = FlowChartUserToAdd.idsor03;
            fu["idsor04"] = FlowChartUserToAdd.idsor04;
            fu["idsor05"] = FlowChartUserToAdd.idsor05;

            fu["all_sorkind01"] = FlowChartUserToAdd.all_sorkind01;
            fu["all_sorkind02"] = FlowChartUserToAdd.all_sorkind02;
            fu["all_sorkind03"] = FlowChartUserToAdd.all_sorkind03;
            fu["all_sorkind04"] = FlowChartUserToAdd.all_sorkind04;
            fu["all_sorkind05"] = FlowChartUserToAdd.all_sorkind05;

            fu["sorkind01_withchilds"] = FlowChartUserToAdd.sorkind01_withchilds;
            fu["sorkind02_withchilds"] = FlowChartUserToAdd.sorkind02_withchilds;
            fu["sorkind03_withchilds"] = FlowChartUserToAdd.sorkind03_withchilds;
            fu["sorkind04_withchilds"] = FlowChartUserToAdd.sorkind04_withchilds;
            fu["sorkind05_withchilds"] = FlowChartUserToAdd.sorkind05_withchilds;

            fu["flagdefault"] = FlowChartUserToAdd.flagdefault;

            fu["start"] = FlowChartUserToAdd.start == DBNull.Value? new DateTime(1900, 1, 1): FlowChartUserToAdd.start;

            Easy_PostData pd = new Easy_PostData();

            pd.InitClass(D, Conn);
            if (!pd.DO_POST())
            {
                MessageBox.Show(this, "Errore nel salvataggio dei dati in AggiungiUtenteAdOrganigramma", "Errore");
                return(false);
            }
            else
            {
                return(true);
            }
        }