From edd91faa96c73a1d2d6aab8f27ca0271022db607 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Fri, 26 Jan 2018 13:51:09 +0100 Subject: [PATCH] enforced file system --- .../FileSystem/FileSystemHelpers.cs | 20 +++++++++++-- .../FileSystem/IDirectoryShortInfo.cs | 8 ++++++ .../FileSystem/IFileRecieved.Info.cs | 15 ++++++++++ .../FileSystem/UserDirectoryInfo.cs | 23 +++++++++++---- Yavsc.Abstract/Makefile | 18 ++++++++---- Yavsc.Abstract/Properties/AssemblyInfo.cs | 14 ++++----- Yavsc.Abstract/Yavsc.Abstract.1.0.0.nupkg | Bin 0 -> 12433 bytes Yavsc.Abstract/Yavsc.Abstract.1.0.3.nupkg | Bin 0 -> 12437 bytes Yavsc.Abstract/Yavsc.Abstract.1.0.4.nupkg | Bin 0 -> 12436 bytes Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc1.nupkg | Bin 0 -> 12460 bytes Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc2.nupkg | Bin 0 -> 12724 bytes Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc3.nupkg | Bin 0 -> 12728 bytes Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc4.nupkg | Bin 0 -> 12883 bytes Yavsc.Abstract/Yavsc.Abstract.nuspec | 2 +- Yavsc.Abstract/project.json | 2 +- .../ApiControllers/FileSystemApiController.cs | 27 +++++++++++++----- Yavsc/Helpers/FileSystemHelpers.cs | 27 +++++------------- Yavsc/Models/FileSystem/FileRecievedInfo.cs | 20 +++++++++---- Yavsc/Startup/Startup.FileServer.cs | 3 +- Yavsc/Views/Blogspot/Index.cshtml | 14 ++++----- Yavsc/Views/Blogspot/Title.cshtml | 2 +- Yavsc/Views/Manage/Index.cshtml | 2 +- .../Components/Directory/Default.cshtml | 4 +-- Yavsc/project.json | 4 +-- Yavsc/project.lock.json | 10 +++---- Yavsc/wwwroot/css/main/site.css | 4 +++ 26 files changed, 143 insertions(+), 76 deletions(-) create mode 100644 Yavsc.Abstract/FileSystem/IDirectoryShortInfo.cs create mode 100644 Yavsc.Abstract/FileSystem/IFileRecieved.Info.cs create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.0.nupkg create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.3.nupkg create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.4.nupkg create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc1.nupkg create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc2.nupkg create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc3.nupkg create mode 100644 Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc4.nupkg diff --git a/Yavsc.Abstract/FileSystem/FileSystemHelpers.cs b/Yavsc.Abstract/FileSystem/FileSystemHelpers.cs index df09b244..fc7bef8a 100644 --- a/Yavsc.Abstract/FileSystem/FileSystemHelpers.cs +++ b/Yavsc.Abstract/FileSystem/FileSystemHelpers.cs @@ -1,4 +1,5 @@ using System.Linq; +using System.Text; namespace Yavsc.Abstract.FileSystem { @@ -6,20 +7,35 @@ namespace Yavsc.Abstract.FileSystem { public static bool IsValidYavscPath(this string path) { - if (path == null) return true; + if (string.IsNullOrEmpty(path)) return true; foreach (var name in path.Split('/')) { if (!IsValidDirectoryName(name) || name.Equals("..") || name.Equals(".")) return false; } - if (path[path.Length]==FileSystemConstants.RemoteDirectorySeparator) return false; + if (path[path.Length-1]==FileSystemConstants.RemoteDirectorySeparator) return false; return true; } public static bool IsValidDirectoryName(this string name) { return !name.Any(c => !FileSystemConstants.ValidFileNameChars.Contains(c)); } + // Ensure this path is canonical, + // No "dirto/./this", neither "dirt/to/that/" + // no .. and each char must be listed as valid in constants + public static string FilterFileName(string fileName) + { + if (fileName==null) return null; + StringBuilder sb = new StringBuilder(); + foreach (var c in fileName) + { + if (FileSystemConstants.ValidFileNameChars.Contains(c)) + sb.Append(c); + else sb.Append('_'); + } + return sb.ToString(); + } } public static class FileSystemConstants diff --git a/Yavsc.Abstract/FileSystem/IDirectoryShortInfo.cs b/Yavsc.Abstract/FileSystem/IDirectoryShortInfo.cs new file mode 100644 index 00000000..016d4bf4 --- /dev/null +++ b/Yavsc.Abstract/FileSystem/IDirectoryShortInfo.cs @@ -0,0 +1,8 @@ +namespace Yavsc.Abstract.FileSystem { + + public interface IDirectoryShortInfo + { + string Name { get; set; } + bool IsEmpty { get; set; } + } +} diff --git a/Yavsc.Abstract/FileSystem/IFileRecieved.Info.cs b/Yavsc.Abstract/FileSystem/IFileRecieved.Info.cs new file mode 100644 index 00000000..ffe7a00f --- /dev/null +++ b/Yavsc.Abstract/FileSystem/IFileRecieved.Info.cs @@ -0,0 +1,15 @@ +namespace Yavsc.Abstract.FileSystem +{ + public interface IFileRecievedInfo + { + string MimeType { get; set; } + + string DestDir { get; set; } + + string FileName { get; set; } + + bool Overriden { get; set; } + + bool QuotaOffensed { get; set; } + } +} \ No newline at end of file diff --git a/Yavsc.Abstract/FileSystem/UserDirectoryInfo.cs b/Yavsc.Abstract/FileSystem/UserDirectoryInfo.cs index c4b1c71a..963e4f08 100644 --- a/Yavsc.Abstract/FileSystem/UserDirectoryInfo.cs +++ b/Yavsc.Abstract/FileSystem/UserDirectoryInfo.cs @@ -7,15 +7,21 @@ namespace Yavsc.ViewModels.UserFiles { public class UserDirectoryInfo { - public string UserName { get; private set; } - public string SubPath { get; private set; } + public string UserName { get; set; } + public string SubPath { get; set; } public RemoteFileInfo [] Files { - get; private set; + get; set; } - public string [] SubDirectories {  - get; private set; + public DirectoryShortInfo [] SubDirectories {  + get; set; } private DirectoryInfo dInfo; + + // for deserialization + public UserDirectoryInfo() + { + + } public UserDirectoryInfo(string userReposPath, string username, string path) { if (string.IsNullOrWhiteSpace(username)) @@ -35,7 +41,12 @@ namespace Yavsc.ViewModels.UserFiles ( entry => new RemoteFileInfo { Name = entry.Name, Size = entry.Length, CreationTime = entry.CreationTime, LastModified = entry.LastWriteTime }).ToArray(); SubDirectories = dInfo.GetDirectories().Select - ( d=> d.Name ).ToArray(); + ( d=> new DirectoryShortInfo { Name= d.Name, IsEmpty=false } ).ToArray(); } } + + public class DirectoryShortInfo: IDirectoryShortInfo { + public string Name { get; set; } + public bool IsEmpty { get; set; } + } } diff --git a/Yavsc.Abstract/Makefile b/Yavsc.Abstract/Makefile index 6a29f6b9..60311884 100644 --- a/Yavsc.Abstract/Makefile +++ b/Yavsc.Abstract/Makefile @@ -1,17 +1,23 @@ CONFIG=Release -VERSION=1.0.2 +VERSION=1.0.5-rc4 PRJNAME=Yavsc.Abstract PKGFILENAME=$(PRJNAME).$(VERSION).nupkg DESTPATH=. PACKAGE=$(DESTPATH)/$(PKGFILENAME) +BINARY=bin/$(CONFIG)/net45/Yavsc.Abstract.dll +NUGETSOURCE=$(HOME)/Nupkgs/ -$(PACKAGE): - nuget pack $(PRJNAME).nuspec -Version $(VERSION) - -publish: $(PACKAGE) - cp $(PACKAGE) ~/Nupkgs +$(PACKAGE): $(BINARY) + nuget pack $(PRJNAME).nuspec -Version $(VERSION) -Properties config=$(CONFIG) clean: rm $(PACKAGE) +$(BINARY): project.lock.json + dnu build --configuration $(CONFIG) +project.lock.json: project.json + dnu restore + +deploy: $(PACKAGE) + cp $(PACKAGE) $(NUGETSOURCE) diff --git a/Yavsc.Abstract/Properties/AssemblyInfo.cs b/Yavsc.Abstract/Properties/AssemblyInfo.cs index fadca10f..616e1b27 100644 --- a/Yavsc.Abstract/Properties/AssemblyInfo.cs +++ b/Yavsc.Abstract/Properties/AssemblyInfo.cs @@ -4,15 +4,15 @@ using System.Reflection; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("Yavsc.Client")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyTitle("Yavsc.Abstract")] +[assembly: AssemblyDescription("Yavsc shared objects")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Yavsc.Client")] -[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyProduct("Yavsc.Abstract")] +[assembly: AssemblyCopyright("Copyright © 2014-2018")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] +[assembly: NeutralResourcesLanguage("fr")] // Version information for an assembly consists of the following four values: // @@ -24,5 +24,5 @@ using System.Reflection; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.5.*")] +[assembly: AssemblyFileVersion("1.0.5.2")] diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.0.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..4175a1aca459c7efdf25ff8988a31071434ea8ab GIT binary patch literal 12433 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 literal 0 HcmV?d00001 diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.3.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..d5387598e375bd868139a09518f33b8dd4136dba GIT binary patch literal 12437 zcmc(FWmFtr(9`xj06u4s?U@jCqIF)FS(V?V{CThn)6^Y=NQ><9az`A~(#%T-g3W&Yl8 zuk)4R!6mO<*~rP`BMf@Dzr4J~{y^|8k@@=}rGLH2K4>t88ZYQm%Os;pW#dHqs{ea^ zjv2K+`gK!JB1U)5P;OJIM(;3Y#GbCI64V`N%#gdY-~ILeV;{^p=U^6+l&RL2c5NOP zREtl=Mbh^c{Hft<@ff3Eesk(7w`r5Ww>GX^%B{*h`^CDFzXFZO_P&!-D0S!rI+{|a z(!KgplR$>%)~ccbpS(6Er|wRGSGLN3q>cL(S!eKb%C3-+kO-gCrfcfyZq5cWa|gSb znuFP#JltI@%`?>$o$)zdw_IuK_*v73NvLi&L`gbpl!#IA30zvtu2uM2B_y`>1ZQ^{ z{~>ptqKFD@@UdF)BOCQ=3wn(A>Rs!m!fGU#UG`|(LzPbW8Qs~G;eE9e;8j>|F|*T5 zrJ@1O_u%E+)kor_LstxNfxVLxJXFLStJFkVDKFQqYzpR6m7b*T_uP|vNg7u>{c|@r zd8DMmR~feI@FkjuC8ut|L055l_}1&qh$Zg z=?>O>9sv#k3mqaG-`CGMbl%;Wyf^6MUN)HE<-W&l%0A?!raDw+BF^tdO4xY%>B&bS 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 literal 0 HcmV?d00001 diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.4.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.4.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..bd13d974d38873eddfb69d2fbe7a7ce192523660 GIT binary patch literal 12436 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 literal 0 HcmV?d00001 diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc1.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..b0ceb5f02b51ece5ad1e08d3f1c4f32923f180ba GIT binary patch literal 12460 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 NbMti~y4e0D{STp}MbZEO literal 0 HcmV?d00001 diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc3.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc3.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..9f88815e798349dfc6e9c563b3ef2e245f5b8a92 GIT binary patch literal 12728 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 I?Egal1M(;yqyPW_ literal 0 HcmV?d00001 diff --git a/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc4.nupkg b/Yavsc.Abstract/Yavsc.Abstract.1.0.5-rc4.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..8e0062fa848ed140c90f28673020fc8896c2d172 GIT binary patch literal 12883 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 No9`2$%lt3yzX3y+_oM&- literal 0 HcmV?d00001 diff --git a/Yavsc.Abstract/Yavsc.Abstract.nuspec b/Yavsc.Abstract/Yavsc.Abstract.nuspec index dbe88946..feb13a19 100644 --- a/Yavsc.Abstract/Yavsc.Abstract.nuspec +++ b/Yavsc.Abstract/Yavsc.Abstract.nuspec @@ -18,6 +18,6 @@ yavsc - + diff --git a/Yavsc.Abstract/project.json b/Yavsc.Abstract/project.json index 5020dc7f..ef84b246 100644 --- a/Yavsc.Abstract/project.json +++ b/Yavsc.Abstract/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.2", + "version": "1.0.5", "description": "Yavsc Client Api", "authors": [ "Paul Schneider" diff --git a/Yavsc/ApiControllers/FileSystemApiController.cs b/Yavsc/ApiControllers/FileSystemApiController.cs index 66bbbfe0..0e3b5115 100644 --- a/Yavsc/ApiControllers/FileSystemApiController.cs +++ b/Yavsc/ApiControllers/FileSystemApiController.cs @@ -10,8 +10,11 @@ using Yavsc.Models; namespace Yavsc.ApiControllers { using System.Threading.Tasks; + using Microsoft.Extensions.Logging; using Yavsc.Abstract.FileSystem; using Yavsc.Exceptions; + using Yavsc.Models.FileSystem; + public class FSQuotaException : Exception { } @@ -21,12 +24,16 @@ namespace Yavsc.ApiControllers { ApplicationDbContext dbContext; private IAuthorizationService AuthorizationService; + private ILogger logger; + public FileSystemApiController(ApplicationDbContext context, - IAuthorizationService authorizationService) + IAuthorizationService authorizationService, + ILoggerFactory loggerFactory) { AuthorizationService = authorizationService; dbContext = context; + logger = loggerFactory.CreateLogger(); } [HttpGet()] @@ -46,11 +53,11 @@ namespace Yavsc.ApiControllers } [HttpPost] - public IEnumerable Post(string subdir="", string names = null) + public IActionResult Post(string subdir="", string names = null) { string root = null; string [] destinationFileNames = names?.Split('/'); - + List received = new List(); InvalidPathException pathex = null; try { root = User.InitPostToFileSystem(subdir); @@ -58,20 +65,26 @@ namespace Yavsc.ApiControllers pathex = ex; } if (pathex!=null) - yield return new BadRequestObjectResult(pathex); - + return new BadRequestObjectResult(pathex); + var uid = User.GetUserId(); var user = dbContext.Users.Single( - u => u.Id == User.GetUserId() + u => u.Id == uid ); int i=0; + logger.LogInformation($"Recieving {Request.Form.Files.Count} files."); foreach (var f in Request.Form.Files) { var destFileName = destinationFileNames?.Length >i ? destinationFileNames[i] : null; var item = user.ReceiveUserFile(root, f, destFileName); dbContext.SaveChanges(User.GetUserId()); - yield return Ok(item); + received.Add(item); + logger.LogInformation($"Recieved '{item.FileName}'."); + if (item.QuotaOffensed) + break; + i++; }; + return Ok(received); } [HttpDelete] diff --git a/Yavsc/Helpers/FileSystemHelpers.cs b/Yavsc/Helpers/FileSystemHelpers.cs index 56a38294..631793bb 100644 --- a/Yavsc/Helpers/FileSystemHelpers.cs +++ b/Yavsc/Helpers/FileSystemHelpers.cs @@ -4,10 +4,8 @@ using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; -using System.Linq; using System.Net.Mime; using System.Security.Claims; -using System.Text; using System.Web; using Microsoft.AspNet.Http; using Yavsc.Abstract.FileSystem; @@ -31,22 +29,7 @@ namespace Yavsc.Helpers return di; } - // Ensure this path is canonical, - // No "dirto/./this", neither "dirt/to/that/" - // no .. and each char must be listed as valid in constants - public static string FilterFileName(string fileName) - { - if (fileName==null) return null; - StringBuilder sb = new StringBuilder(); - foreach (var c in fileName) - { - if (FileSystemConstants.ValidFileNameChars.Contains(c)) - sb.Append(c); - else sb.Append('_'); - } - return sb.ToString(); - } public static string InitPostToFileSystem( this ClaimsPrincipal user, string subpath) @@ -81,10 +64,14 @@ namespace Yavsc.Helpers var item = new FileRecievedInfo(); // form-data; name="file"; filename="capt0008.jpg" ContentDisposition contentDisposition = new ContentDisposition(f.ContentDisposition); - item.FileName = FilterFileName (destFileName ?? contentDisposition.FileName); + item.FileName = Yavsc.Abstract.FileSystem.FileSystemHelpers.FilterFileName (destFileName ?? contentDisposition.FileName); item.MimeType = contentDisposition.DispositionType; var fi = new FileInfo(Path.Combine(root, item.FileName)); - if (fi.Exists) item.Overriden = true; + if (fi.Exists) + { + item.Overriden = true; + usage -= fi.Length; + } using (var dest = fi.OpenWrite()) { using (var org = f.OpenReadStream()) @@ -92,7 +79,7 @@ namespace Yavsc.Helpers byte[] buffer = new byte[1024]; long len = org.Length; if (len > (user.DiskQuota - usage)) { - + item.QuotaOffensed = true; return item; } usage += len; diff --git a/Yavsc/Models/FileSystem/FileRecievedInfo.cs b/Yavsc/Models/FileSystem/FileRecievedInfo.cs index 73bec448..d8609404 100644 --- a/Yavsc/Models/FileSystem/FileRecievedInfo.cs +++ b/Yavsc/Models/FileSystem/FileRecievedInfo.cs @@ -21,13 +21,23 @@ // along with this program. If not, see . +using Yavsc.Abstract.FileSystem; + namespace Yavsc.Models.FileSystem { - public class FileRecievedInfo + public class FileRecievedInfo : IFileRecievedInfo + { + public FileRecievedInfo() { - public string MimeType { get; set; } - public string DestDir { get; set; } - public string FileName { get; set; } - public bool Overriden { get; set; } + QuotaOffensed = Overriden = false; + MimeType = DestDir = FileName = null; } + + public string MimeType { get; set; } + public string DestDir { get; set; } + public string FileName { get; set; } + public bool Overriden { get; set; } + + public bool QuotaOffensed { get; set; } + } } \ No newline at end of file diff --git a/Yavsc/Startup/Startup.FileServer.cs b/Yavsc/Startup/Startup.FileServer.cs index 78b806fe..9551ba7f 100644 --- a/Yavsc/Startup/Startup.FileServer.cs +++ b/Yavsc/Startup/Startup.FileServer.cs @@ -28,7 +28,8 @@ namespace Yavsc { FileProvider = new PhysicalFileProvider(UserFilesDirName), RequestPath = new PathString(Constants.UserFilesPath), - EnableDirectoryBrowsing = env.IsDevelopment() + EnableDirectoryBrowsing = env.IsDevelopment(), + }; UserFilesOptions.EnableDefaultFiles=true; diff --git a/Yavsc/Views/Blogspot/Index.cshtml b/Yavsc/Views/Blogspot/Index.cshtml index d126760a..a6cde23e 100644 --- a/Yavsc/Views/Blogspot/Index.cshtml +++ b/Yavsc/Views/Blogspot/Index.cshtml @@ -67,21 +67,17 @@
-@first.Title +

@if (first.Photo==null) { } else {@first.Title}
- @((first.Content?.Length > 120) ? first.Content.Substring(0, 120) + " ..." : first.Content) - (@first.Author.UserName , - - posté le @first.DateCreated.ToString("dddd d MMM yyyy à H:mm") +
+
@first.Author.UserName , + (posté le @first.DateCreated.ToString("dddd d MMM yyyy à H:mm") @if ((first.DateModified - first.DateCreated).Minutes > 0){  @:- Modifié le @first.DateModified.ToString("dddd d MMM yyyy à H:mm",System.Globalization.CultureInfo.CurrentUICulture) - }) - - - + })
    diff --git a/Yavsc/Views/Blogspot/Title.cshtml b/Yavsc/Views/Blogspot/Title.cshtml index 688b3dfb..1073a7bb 100644 --- a/Yavsc/Views/Blogspot/Title.cshtml +++ b/Yavsc/Views/Blogspot/Title.cshtml @@ -30,7 +30,7 @@ - @((item.Content?.Length > 120) ? item.Content.Substring(0, 122) + " ..." : item.Content) + @((item.Content?.Length > 256) ? item.Content.Substring(0, 256) + " ..." : item.Content) (@item.Author.UserName , posté le @item.DateCreated.ToString("dddd d MMM yyyy à H:mm") diff --git a/Yavsc/Views/Manage/Index.cshtml b/Yavsc/Views/Manage/Index.cshtml index 09fa504d..ffd1769b 100755 --- a/Yavsc/Views/Manage/Index.cshtml +++ b/Yavsc/Views/Manage/Index.cshtml @@ -142,7 +142,7 @@ @if (Model.DiskQuota>0) { - @((Model.DiskUsage/Model.DiskQuota).ToString("%#0")) : + @(((double)Model.DiskUsage/Model.DiskQuota).ToString("%#0")) : } diff --git a/Yavsc/Views/Shared/Components/Directory/Default.cshtml b/Yavsc/Views/Shared/Components/Directory/Default.cshtml index 8155dc3a..c36b5583 100644 --- a/Yavsc/Views/Shared/Components/Directory/Default.cshtml +++ b/Yavsc/Views/Shared/Components/Directory/Default.cshtml @@ -3,8 +3,8 @@
    @Model.UserName / @Model.SubPath
    -@foreach (string subdir in Model.SubDirectories) { -@subdir +@foreach (var subdir in Model.SubDirectories) { +@subdir.Name }