/// <summary> /// Creazione di un nuovo oggetto AclDefinition necessario /// per gestire quei casi in cui un oggetto deve essere /// visibile a tutti i gruppi di un'amministrazione. /// NB: La creazione dell'acl globale deve essere effettuata /// all'atto della creazione di una nuova amministrazione /// </summary> /// <param name="codiceAmministrazione"></param> /// <returns></returns> public static AclDefinition getAclDefinition(string codiceAmministrazione) { AclDefinition aclData = new AclDefinition(); aclData.repository = DctmConfigurations.GetRepositoryName(); aclData.name = getAclName(codiceAmministrazione); aclData.description = aclData.name; aclData.entries = new AclEntry[0]; return(aclData); }
/// <summary> /// Creazione di un nuovo oggetto AclDefinition /// associato ad un oggetto DocsPa in DCTM /// </summary> /// <param name="codiceAmministrazione"></param> /// <param name="idDocsPa"></param> /// <param name="objectType"></param> /// <remarks> /// Restituisce solo la parte di "intestazione", non le entries /// </remarks> /// <returns></returns> public static AclDefinition getAclDefinition(string codiceAmministrazione, string idDocsPa, string objectType) { AclDefinition aclData = new AclDefinition(); aclData.repository = DctmConfigurations.GetRepositoryName(); aclData.name = getAclName(codiceAmministrazione, idDocsPa, objectType); aclData.description = aclData.name; const int MAX_ACL_DESCRIPTION = 128; if (aclData.description.Length > MAX_ACL_DESCRIPTION) { aclData.description = aclData.description.Substring(0, MAX_ACL_DESCRIPTION); } aclData.entries = new AclEntry[0]; return(aclData); }
/// <summary> /// Impostazione proprietà oggetto per associazione con un'ACL /// </summary> /// <param name="propertySet"></param> /// <param name="aclDefinition"></param> public static void setAclObjectProperties(DataModel.Properties.PropertySet propertySet, AclDefinition aclDefinition) { propertySet.Set <string>("acl_name", aclDefinition.name); if (aclDefinition.domain != null) { propertySet.Set <string>("acl_domain", aclDefinition.domain); } else { // "dm_dbo" // NB: sembra che (bug dctm??) non sempre "dm_dbo" viene risolto correttamente // nel nome del repository owner. Per questo, utilizziamo il nome del repository // configurato con l'istanza docspa, che DEVE coincidere (ma in minuscolo) propertySet.Set <string>("acl_domain", DctmConfigurations.GetRepositoryName().ToLowerInvariant()); } }