private bool filtra_ruoli_utenti_smistamento(SAAdminTool.DocsPaWR.ElementoRubrica er) { string pcode = null; DocsPaWR.Corrispondente rcorr = UserManager.GetCorrispondenteInterno(_page, er.codice, true); if (rcorr == null) { return(false); } if (er.tipo == "R") { pcode = ((SAAdminTool.DocsPaWR.Ruolo)rcorr).uo.codiceRubrica; if (IsInSmistamento(pcode)) { return(false); } } else { DocsPaWR.Ruolo[] ruoli = ((SAAdminTool.DocsPaWR.Utente)rcorr).ruoli; if (ruoli == null || ruoli.Length == 0) { return(false); } foreach (Ruolo r in ruoli) { DocsPaWR.ElementoRubrica err = new ElementoRubrica(); err.codice = r.codiceRubrica; err.interno = true; err.tipo = "R"; err.descrizione = ""; err.has_children = false; bool filtra = filtra_ruoli_utenti_smistamento(err); if (filtra) { return(true); } } return(false); } bool result = filtra_smistamento(pcode); return(result); }
private bool filterRuoliUtentiSelectedAllowed(ref ElementoRubrica[] a, SAAdminTool.DocsPaWR.ElementoRubrica er, string tipoIESelected) { string codiceCorr = null; bool retValue = true; DocsPaWR.Corrispondente corr = UserManager.GetCorrispondenteInternoOrganigramma(_page, er.codice, true); if (corr == null) { retValue = false; return(retValue); } if (er.tipo == "R") { if (((SAAdminTool.DocsPaWR.Ruolo)corr).uo != null) { codiceCorr = ((SAAdminTool.DocsPaWR.Ruolo)corr).uo.codiceRubrica; if (check_uo(codiceCorr)) { er.isVisibile = true; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } else { if (tipoIESelected.Equals("I")) { er.isVisibile = false; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } else { er.isVisibile = true; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } // // er.isVisibile = false; // a = SAAdminTool.Utils.addToArrayElementoRubrica(a,er); } } else //se il ruolo non appartiene a nessuna UO, di dafault non lo rendo selezionabile { er.isVisibile = false; SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } } else // caso utente { DocsPaWR.Ruolo[] ruoli = ((SAAdminTool.DocsPaWR.Utente)corr).ruoli; if (ruoli != null && ruoli.Length > 0) { foreach (Ruolo r in ruoli) { codiceCorr = (((SAAdminTool.DocsPaWR.Ruolo)r).uo).codiceRubrica; if (check_uo(codiceCorr)) { er.isVisibile = true; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } else { if (tipoIESelected.Equals("I")) { er.isVisibile = false; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } else { er.isVisibile = true; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } } } } else //se l'utente non ha ruoli di default mettiamo il check a invisible { er.isVisibile = false; a = SAAdminTool.Utils.addToArrayElementoRubrica(a, er); } } return(retValue); }
protected void txt_Codice_TextChanged(object sender, EventArgs e) { bool eseguiRicerca = true; if (Session["dictionaryCorrispondente"] != null) { dic_Corr = (Dictionary <string, SAAdminTool.DocsPaWR.Corrispondente>)Session["dictionaryCorrispondente"]; if (dic_Corr.ContainsKey(this.ID)) { SAAdminTool.DocsPaWR.Corrispondente corr_saved = dic_Corr[this.ID]; if (dic_Corr[this.ID] != null && corr_saved.codiceRubrica.ToUpper().Equals(txt_Codice.Text.ToUpper())) { eseguiRicerca = false; } if (eseguiRicerca && Session["noRicercaCodice"] != null) { eseguiRicerca = false; Session.Remove("noRicercaCodice"); } } } else { dic_Corr = new Dictionary <string, DocsPaWR.Corrispondente>(); } if (Session["noDoppiaRicerca"] == null) { //caso di annullamento dei dati inseriti if (txt_Codice.Text.Equals("") && eseguiRicerca) { eseguiRicerca = false; dic_Corr[this.ID] = null; Session["dictionaryCorrispondente"] = dic_Corr; txt_Descrizione.Text = ""; //Session.Add("resetCorrispondente", true); } if (Session["rubrica.campoCorrispondente"] == null && eseguiRicerca) { ElementoRubrica[] listaCorr = null; //In questo caso il campo è readOnly. //Controllo solo il codice perchè la descrizione è sempre readOnly, //l'apertura della rubrica è quindi inutile in quanto non si può //modificare il valore di questo userControl if (sCodiceReadOnly) { return; } SAAdminTool.DocsPaWR.Ruolo ruoloSelezionato = UserManager.getRuolo(); DocsPaWR.Registro[] regAll = UserManager.getListaRegistriWithRF(ruoloSelezionato.systemId, "", ""); string condRegistri = string.Empty; if (regAll != null && regAll.Length > 0) { condRegistri = " and (id_registro in ("; foreach (DocsPaWR.Registro reg in regAll) { condRegistri += reg.systemId + ","; } condRegistri = condRegistri.Substring(0, condRegistri.Length - 1); condRegistri += ") OR id_registro is null)"; } //Se in sessione c'è un ruolo, vuol dire che sono sul frontend e quindi la //rubrica puo' funzionare, in quanto preleva da sessione il registro, il ruolo e //l'utente che la vorrebbero utilizzando. //In caso contrario, vuol dire che sto chiamando l'apertura della rubrica //dall'amministrazione, in particolare da una delle due anteprime di profilazione. //In questo caso non essendoci nessun registro, nè ruolo nè utente in sessione, //l'apertura della rubrica viene inibita, ma non è un problema in quanto essendo //un antemprima, serve solo per determinare una veste grafica gradevole per tipo //di documento o di fascicolo che si sta creando. if (ruoloSelezionato != null) { if ((sCodice != null && sCodice != "") || (txt_Codice.Text != null && txt_Codice.Text != "")) { listaCorr = UserManager.getElementiRubricaMultipli(this.Page, txt_Codice.Text, RubricaCallType.CALLTYPE_RICERCA_CORRISPONDENTE, !this.cbx_storicizzato.Checked); if (listaCorr == null || (listaCorr != null && listaCorr.Length == 0)) { this.TIPO = ""; this.ID_CORRISPONDENTE = ""; sCodice = txt_Codice.Text; sDescrizione = null; dic_Corr[this.ID] = null; Session.Add("dictionaryCorrispondente", dic_Corr); Page.ClientScript.RegisterStartupScript(this.GetType(), "noCorr", String.Format("alert('Nessun corrispondente individuato con il codice {0}');", this.txt_Codice.Text), true); } else { if (listaCorr != null && listaCorr.Length > 1) { dic_Corr[this.ID] = null; Page.ClientScript.RegisterStartupScript(this.GetType(), "multiCorr", "ApriFinestraMultiCorrispondenti('" + this.txt_Codice.ClientID + "','" + this.txt_Descrizione.ClientID + "', '" + this.ID + "');", true); Session.Add("multiCorr", listaCorr); Session["noRicercaDesc"] = true; Session["idCorrMulti"] = Convert.ToInt32(this.ID); return; } else { if (listaCorr != null && listaCorr.Length == 1) // && !this.cbx_storicizzato.Checked) { SAAdminTool.DocsPaWR.ElementoRubrica er = listaCorr[0]; if (this.cbx_storicizzato.Checked) { dic_Corr[this.ID] = UserManager.getCorrispondenteBySystemIDDisabled(this.Page, er.systemId); } else { dic_Corr[this.ID] = UserManager.getCorrispondenteByCodRubricaIENotdisabled(this.Page, er.codice, AddressbookTipoUtente.GLOBALE); } this.TIPO = er.tipo; if (dic_Corr[this.ID] != null) { this.ID_CORRISPONDENTE = er.systemId; txt_Descrizione.Text = er.descrizione; sDescrizione = er.descrizione; txt_Codice.Text = er.codice; sCodice = er.codice; } else { this.ID_CORRISPONDENTE = string.Empty; txt_Descrizione.Text = string.Empty; sDescrizione = string.Empty; txt_Codice.Text = string.Empty; sCodice = string.Empty; } Session.Add("dictionaryCorrispondente", dic_Corr); Session["noRicercaDesc"] = true; } } } } } } } else { Session.Remove("noDoppiaRicerca"); } if (Session["countCorr"] != null && Convert.ToInt32(Session["countCorr"]) > 1) { Session.Remove("whichCorr"); } if (isRiprodotto) { Session.Remove("CorrSelezionatoDaMulti"); Session.Remove("rubrica.campoCorrispondente"); } }