Exemplo n.º 1
0
        /// <summary>
        /// Creazione delle ACL per il nodo titolario
        /// </summary>
        /// <param name="nodoTitolario"></param>
        /// <returns>ACL creata, ma ancora non associata al nodo titolario</returns>
        protected virtual CustomServices.AclDefinition CreateAclNodoTitolario(DocsPaVO.amministrazione.OrgNodoTitolario nodoTitolario)
        {
            CustomServices.AclDefinition aclData = null;

            try
            {
                // Reperimento ACL nodo titolario
                aclData = Dfs4DocsPa.getAclDefinition(nodoTitolario.ID, ObjectTypes.NODO_TITOLARIO, nodoTitolario.CodiceAmministrazione);

                CustomServices.IAclService    aclService  = DctmServiceFactory.GetCustomServiceInstance <CustomServices.IAclService>(UserManager.ImpersonateSuperUser());
                CustomServices.ObjectIdentity aclIdentity = aclService.Create(aclData);

                if (aclIdentity == null)
                {
                    throw new ApplicationException(string.Concat("Errore nella creazione dell'ACL per il nodo titolario con ID '{0}'", nodoTitolario.ID));
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format("Errore in Documentum.CreateAclNodoTitolario:\n{0}", ex.ToString());
                logger.Debug(errorMessage);

                throw new ApplicationException(errorMessage);
            }

            return(aclData);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creazione ACL per l'amministrazione
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        protected virtual CustomServices.AclDefinition CreateAclAdmin(InfoAmministrazione info)
        {
            CustomServices.AclDefinition aclData = null;

            try
            {
                // Reperimento ACL per gli oggetti visibili da tutta l'amministrazione
                aclData = Dfs4DocsPa.getAclDefinitionAmministrazione(info.Codice);

                CustomServices.IAclService    aclService  = DctmServiceFactory.GetCustomServiceInstance <CustomServices.IAclService>(UserManager.ImpersonateSuperUser());
                CustomServices.ObjectIdentity aclIdentity = aclService.Create(aclData);

                if (aclIdentity == null)
                {
                    throw new ApplicationException(string.Concat("Errore nella creazione dell'ACL per l'amministrazione con ID '{0}'", info.IDAmm));
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format("Errore in Documentum.CreateAclAdmin:\n{0}", ex.ToString());
                logger.Debug(errorMessage);

                throw new ApplicationException(errorMessage);
            }

            return(aclData);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creazione delle ACL per il fascicolo
        /// NOTA: RW di DocsPA equivale a DELETE di Documentum
        /// </summary>
        /// <param name="fascicolo"></param>
        /// <param name="ruoloCreatore"></param>
        /// <returns>ACL creata, ma ancora non associata al documento</returns>
        protected virtual CustomServices.AclDefinition CreateAclFascicolo(DocsPaVO.fascicolazione.Fascicolo fascicolo, DocsPaVO.utente.Ruolo ruoloCreatore)
        {
            CustomServices.AclDefinition aclData = null;

            try
            {
                // Reperimento ACL per il fascicolo
                aclData = Dfs4DocsPa.getAclDefinition(fascicolo.systemID, ObjectTypes.FASCICOLO, this.InfoUtente);

                // istanziamo ACLservice in modalità super-user per poter comunque creare una acl di sistema
                // nota: questo non sarebbe strettamente necessario (si potrebbe usare una user-acl, di tipo public)
                // ma si ritiene che non sia bello avere le acl di proprietà degli utenti creatori del documento
                CustomServices.IAclService aclSvcSuper = DctmServiceFactory.GetCustomServiceInstance <CustomServices.IAclService>(UserManager.ImpersonateSuperUser());

                CustomServices.ObjectIdentity aclIdentity = aclSvcSuper.Create(aclData);

                if (aclIdentity == null)
                {
                    throw new ApplicationException(string.Concat("Errore nella creazione dell'ACL per il fascicolo con id '{0}'", fascicolo.systemID));
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format("Errore in Documentum.CreateAclFascicolo:\n{0}", ex.ToString());
                logger.Debug(errorMessage);

                throw new ApplicationException(errorMessage);
            }

            return(aclData);
        }