From 4c050bc3f8a7b7a1e1d312bc4cdd9eacdd8365a3 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 14 Sep 2015 21:16:31 -0400 Subject: [PATCH] update client sync --- MediaBrowser.Api/EnvironmentService.cs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs index 8160c6a167..11a0eec231 100644 --- a/MediaBrowser.Api/EnvironmentService.cs +++ b/MediaBrowser.Api/EnvironmentService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Net; +using MediaBrowser.Common.IO; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.Net; using MediaBrowser.Model.IO; using MediaBrowser.Model.Net; @@ -8,7 +9,6 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; -using MediaBrowser.Common.IO; namespace MediaBrowser.Api { @@ -97,14 +97,14 @@ namespace MediaBrowser.Api /// The _network manager /// private readonly INetworkManager _networkManager; - private IFileSystem _fileSystem; + private IFileSystem _fileSystem; /// /// Initializes a new instance of the class. /// /// The network manager. /// networkManager - public EnvironmentService(INetworkManager networkManager, IFileSystem fileSystem) + public EnvironmentService(INetworkManager networkManager, IFileSystem fileSystem) { if (networkManager == null) { @@ -112,7 +112,7 @@ namespace MediaBrowser.Api } _networkManager = networkManager; - _fileSystem = fileSystem; + _fileSystem = fileSystem; } /// @@ -138,7 +138,15 @@ namespace MediaBrowser.Api return ToOptimizedSerializedResultUsingCache(GetNetworkShares(path).OrderBy(i => i.Path).ToList()); } - return ToOptimizedSerializedResultUsingCache(GetFileSystemEntries(request).OrderBy(i => i.Path).ToList()); + try + { + return ToOptimizedSerializedResultUsingCache(GetFileSystemEntries(request).OrderBy(i => i.Path).ToList()); + } + catch (UnauthorizedAccessException) + { + // Don't throw the original UnauthorizedAccessException because it will cause a 401 response + throw new ApplicationException("Access to the path " + request.Path + " is denied."); + } } public object Get(GetNetworkShares request) @@ -225,7 +233,7 @@ namespace MediaBrowser.Api private IEnumerable GetFileSystemEntries(GetDirectoryContents request) { // using EnumerateFileSystemInfos doesn't handle reparse points (symlinks) - var entries = _fileSystem.GetFileSystemEntries(request.Path).Where(i => + var entries = _fileSystem.GetFileSystemEntries(request.Path).Where(i => { if (!request.IncludeHidden && i.Attributes.HasFlag(FileAttributes.Hidden)) {