示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
 /// <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());
     }
 }