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; }
/// <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; }