/// <summary> /// Cancellazione di un ruolo in amministrazione /// </summary> /// <param name="ruolo"></param> /// <returns></returns> public EsitoOperazione EliminaRuolo(OrgRuolo ruolo) { EsitoOperazione ret = new EsitoOperazione(); string logMsg; IObjectService objSrvc = null; String repositoryName = DctmConfigurations.GetRepositoryName(); // test sui campi obbligatori if (string.IsNullOrEmpty(ruolo.Codice)) { logMsg = ERR_HEADER + "EliminaRuolo: dati insufficienti"; ret.Codice = -1; ret.Descrizione = logMsg; logger.Debug(logMsg); return(ret); } try { objSrvc = this.GetObjectServiceInstance(); ObjectIdentity groupIdentity = Dfs4DocsPa.getGroupIdentityByName(TypeGruppo.GetGroupName(ruolo)); checkReference(TypeGruppo.GetGroupName(ruolo), ObjectTypes.UTENTE, "user_group_name", false); ObjectIdentitySet s = new ObjectIdentitySet(groupIdentity); objSrvc.Delete(s, null); logger.Debug(DEBUG_HEADER + "EliminaRuolo completata con SUCCESSO"); return(ret); } catch (Exception ex) { String st = ex.ToString(); logger.Debug(DEBUG_HEADER + "EliminaRuolo FALLITA, Exception=" + st); ret.Codice = -1; ret.Descrizione = ERR_HEADER + "EliminaRuolo"; return(ret); } }
/// <summary> /// Modifica dei metadati di un ruolo /// </summary> /// <param name="ruolo"></param> /// <returns></returns> public EsitoOperazione ModificaRuolo(OrgRuolo ruolo) { EsitoOperazione ret = new EsitoOperazione(); string logMsg; IObjectService objSrvc = null; string repositoryName = DctmConfigurations.GetRepositoryName(); // test sui campi obbligatori if (string.IsNullOrEmpty(ruolo.Codice) || string.IsNullOrEmpty(ruolo.Descrizione)) { ret.Codice = -1; logMsg = ERR_HEADER + "ModificaRuolo: dati insufficienti"; ret.Descrizione = logMsg; logger.Debug(logMsg); return(ret); } // il campo Codice corrisponde a: // (ETDOCS) DPA_CORR_GLOBALI.VAR_COD_RUBRICA varchar(128) // (DCTM) dm_group.group_name string(32) // se mi viene passato un codice di lunghezza > 32 lancio un'eccezione if (ruolo.Codice.Length > 32) { ret.Codice = -1; logMsg = ERR_HEADER + "ModificaRuolo: campo CODICE supera la lunghezza massima (32)"; ret.Descrizione = logMsg; logger.Debug(logMsg); return(ret); } try { objSrvc = this.GetObjectServiceInstance(); ObjectIdentity groupIdentity = Dfs4DocsPa.getGroupIdentityByName(TypeGruppo.GetGroupName(ruolo)); // non è possibile cambiare il nome di un gruppo //List<string> filters = new List<string>(); //filters.Add("group_name"); //DataObject oldData = DfsHelper.getAllPropsAndFolders(objSrvc, groupIdentity, filters, false); //Property oldName = oldData.Properties.Get("group_name"); //if (oldName == null) //{ // ret.Codice = -1; // logMsg = ERR_HEADER + "ModificaRuolo: impossibile leggere il vecchio nome del gruppo"; // ret.Descrizione = logMsg; // logger.Debug(logMsg); // return ret; //} //if (!oldName.GetValueAsString().Equals(ruolo.Codice, StringComparison.OrdinalIgnoreCase)) //{ // ret.Codice = -1; // logMsg = ERR_HEADER + "ModificaRuolo: non è possibile modificare il nome del gruppo"; // ret.Descrizione = logMsg; // logger.Debug(logMsg); // return ret; //} DataObject dataObject = new DataObject(groupIdentity, ObjectTypes.GRUPPO); dataObject.Properties.Properties.AddRange(Dfs4DocsPa.getGroupProperties(ruolo, true)); DataPackage dataPackage = new DataPackage(dataObject); dataPackage = objSrvc.Update(dataPackage, null); if (dataPackage.DataObjects.Count > 0) { ret.Codice = 0; ret.Descrizione = string.Empty; logger.Debug(DEBUG_HEADER + "ModificaRuolo completata con SUCCESSO"); return(ret); } else { throw new ApplicationException(); } } catch (Exception ex) { string st = ex.ToString(); logger.Debug(DEBUG_HEADER + "ModificaRuolo FALLITA, Exception=" + st); ret.Codice = -1; ret.Descrizione = ERR_HEADER + "ModificaRuolo"; return(ret); } }