public static ArrayList GetFoldersByUser( int PortalID, bool IncludeSecure, bool IncludeDatabase, bool AllowAccess, string Permissions )
        {
            FolderController objFolderController = new FolderController();
            ArrayList arrFolders = new ArrayList();
            UserInfo user = UserController.GetCurrentUserInfo();
            if( user.IsSuperUser )
            {
                //Get all the folders for the Portal
                ArrayList tempFolders = objFolderController.GetFoldersByPortal( PortalID );
                foreach( FolderInfo folder in tempFolders )
                {
                    bool canAdd = true;
                    if( folder.StorageLocation == (int)FolderController.StorageLocationTypes.DatabaseSecure )
                    {
                        canAdd = IncludeDatabase;
                    }
                    else if( folder.StorageLocation == (int)FolderController.StorageLocationTypes.SecureFileSystem )
                    {
                        canAdd = IncludeSecure;
                    }
                    if( canAdd )
                    {
                        arrFolders.Add( folder );
                    }
                }
            }
            else
            {
                //Get the folders for the Portal for the curent User
                arrFolders = objFolderController.GetFoldersByUser( PortalID, user.UserID, IncludeSecure, IncludeDatabase, AllowAccess, Permissions );
            }

            return arrFolders;
        }
Esempio n. 2
0
        /// <summary>
        /// Serializes all Folders including Permissions
        /// </summary>
        /// <param name="xmlTemplate">Reference to XmlDocument context</param>
        /// <param name="nodeFolders"></param>
        /// <param name="objportal">Portal to serialize</param>
        /// <param name="zipFile"></param>
        /// <remarks>
        /// The serialization uses the xml attributes defined in FolderInfo class.
        /// </remarks>
        /// <history>
        /// 	[cnurse]	11/08/2004	Created
        /// </history>        
        public void SerializeFolders( XmlDocument xmlTemplate, XmlNode nodeFolders, PortalInfo objportal, ref ZipOutputStream zipFile )
        {
            // Sync db and filesystem before exporting so all required files are found
            FileSystemUtils.Synchronize(objportal.PortalID, objportal.AdministratorRoleId, objportal.HomeDirectoryMapPath);

            FolderController objFolders = new FolderController();
            ArrayList arrFolders = objFolders.GetFoldersByPortal( objportal.PortalID );

            XmlSerializer xser = new XmlSerializer( typeof( FolderInfo ) );
            foreach( FolderInfo objFolder in arrFolders )
            {
                StringWriter sw = new StringWriter();
                xser.Serialize( sw, objFolder );

                XmlDocument xmlFolder = new XmlDocument();
                xmlFolder.LoadXml( sw.GetStringBuilder().ToString() );
                XmlNode nodeFolder = xmlFolder.SelectSingleNode( "folder" );
                nodeFolder.Attributes.Remove( nodeFolder.Attributes["xmlns:xsd"] );
                nodeFolder.Attributes.Remove( nodeFolder.Attributes["xmlns:xsi"] );

                //Serialize Folder Permissions
                XmlNode nodePermissions = xmlTemplate.CreateElement( "folderpermissions" );
                SerializeFolderPermissions( xmlTemplate, nodePermissions, objportal, objFolder.FolderPath );
                nodeFolder.AppendChild( xmlFolder.ImportNode( nodePermissions, true ) );

                // Serialize files
                XmlNode nodeFiles = xmlTemplate.CreateElement( "files" );
                SerializeFiles( xmlTemplate, nodeFiles, objportal, objFolder.FolderPath, ref zipFile );
                nodeFolder.AppendChild( xmlFolder.ImportNode( nodeFiles, true ) );

                nodeFolders.AppendChild( xmlTemplate.ImportNode( nodeFolder, true ) );
            }
        }
 /// <summary>
 /// Gets all the folders for a Portal
 /// </summary>
 /// <param name="PortalID">The Id of the Portal</param>
 /// <remarks>
 /// </remarks>
 public static ArrayList GetFolders( int PortalID )
 {
     FolderController objFolderController = new FolderController();
     ArrayList arrFolders = (ArrayList)( DataCache.GetCache( "Folders:" + PortalID.ToString() ) );
     if( arrFolders == null )
     {
         arrFolders = objFolderController.GetFoldersByPortal( PortalID );
         DataCache.SetCache( "Folders:" + PortalID.ToString(), arrFolders );
     }
     return arrFolders;
 }