diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Connect/ConnectManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Connect/ConnectManager.cs | 51 |
1 files changed, 33 insertions, 18 deletions
diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs index 45cb2f57d..d7c1b0da0 100644 --- a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs +++ b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs @@ -266,7 +266,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = CancellationToken.None + CancellationToken = CancellationToken.None, + BufferContent = false }; options.SetPostData(postData); @@ -314,7 +315,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = CancellationToken.None + CancellationToken = CancellationToken.None, + BufferContent = false }; options.SetPostData(postData); @@ -403,6 +405,14 @@ namespace MediaBrowser.Server.Implementations.Connect public async Task<UserLinkResult> LinkUser(string userId, string connectUsername) { + if (string.IsNullOrWhiteSpace(userId)) + { + throw new ArgumentNullException("userId"); + } + if (string.IsNullOrWhiteSpace(connectUsername)) + { + throw new ArgumentNullException("connectUsername"); + } if (string.IsNullOrWhiteSpace(ConnectServerId)) { await UpdateConnectInfo().ConfigureAwait(false); @@ -422,14 +432,6 @@ namespace MediaBrowser.Server.Implementations.Connect private async Task<UserLinkResult> LinkUserInternal(string userId, string connectUsername) { - if (string.IsNullOrWhiteSpace(userId)) - { - throw new ArgumentNullException("userId"); - } - if (string.IsNullOrWhiteSpace(connectUsername)) - { - throw new ArgumentNullException("connectUsername"); - } if (string.IsNullOrWhiteSpace(ConnectServerId)) { throw new ArgumentNullException("ConnectServerId"); @@ -446,11 +448,17 @@ namespace MediaBrowser.Server.Implementations.Connect throw new ArgumentException("The Emby account has been disabled."); } + var existingUser = _userManager.Users.FirstOrDefault(i => string.Equals(i.ConnectUserId, connectUser.Id) && !string.IsNullOrWhiteSpace(i.ConnectAccessKey)); + if (existingUser != null) + { + throw new InvalidOperationException("This connect user is already linked to local user " + existingUser.Name); + } + var user = GetUser(userId); if (!string.IsNullOrWhiteSpace(user.ConnectUserId)) { - await RemoveConnect(user, connectUser.Id).ConfigureAwait(false); + await RemoveConnect(user, user.ConnectUserId).ConfigureAwait(false); } var url = GetConnectUrl("ServerAuthorizations"); @@ -458,7 +466,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = CancellationToken.None + CancellationToken = CancellationToken.None, + BufferContent = false }; var accessToken = Guid.NewGuid().ToString("N"); @@ -593,7 +602,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = CancellationToken.None + CancellationToken = CancellationToken.None, + BufferContent = false }; var accessToken = Guid.NewGuid().ToString("N"); @@ -646,7 +656,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = CancellationToken.None + CancellationToken = CancellationToken.None, + BufferContent = false }; var postData = new Dictionary<string, string> @@ -720,7 +731,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { CancellationToken = cancellationToken, - Url = url + Url = url, + BufferContent = false }; SetServerAccessToken(options); @@ -784,7 +796,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = cancellationToken + CancellationToken = cancellationToken, + BufferContent = false }; SetServerAccessToken(options); @@ -1072,7 +1085,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { Url = url, - CancellationToken = CancellationToken.None + CancellationToken = CancellationToken.None, + BufferContent = false }; var postData = new Dictionary<string, string> @@ -1120,7 +1134,8 @@ namespace MediaBrowser.Server.Implementations.Connect var options = new HttpRequestOptions { - Url = GetConnectUrl("user/authenticate") + Url = GetConnectUrl("user/authenticate"), + BufferContent = false }; options.SetPostData(new Dictionary<string, string> |
