From b12215b3f94dd7f7d5cff6a703b037e215090a98 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 14 Sep 2014 13:12:47 -0400 Subject: add connect error handling --- .../Localization/JavaScript/javascript.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.Server.Implementations/Localization/JavaScript') diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index 07ce3e4f0..6442c3178 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -453,5 +453,7 @@ "MessageYouHaveAnActiveRecurringMembership": "You have an active {0} membership. You can upgrade your plan using the options below.", "ButtonDelete": "Delete", "HeaderMediaBrowserAccountAdded": "Media Browser Account Added", - "MessageMediaBrowserAccontAdded": "A Media Browser account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email." + "MessageMediaBrowserAccontAdded": "A Media Browser account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "HeaderMediaBrowserAccountRemoved": "Media Browser Account Removed", + "MessageMediaBrowserAccontRemoved": "The Media Browser account has been removed from this user." } -- cgit v1.2.3 From 52aad5466a4700a8759d1f4c6e4f2673c12a8f9e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 14 Sep 2014 15:27:29 -0400 Subject: add connect icon --- .../Localization/JavaScript/javascript.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.Server.Implementations/Localization/JavaScript') diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index 6442c3178..f8bb0f1d5 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -455,5 +455,6 @@ "HeaderMediaBrowserAccountAdded": "Media Browser Account Added", "MessageMediaBrowserAccontAdded": "A Media Browser account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", "HeaderMediaBrowserAccountRemoved": "Media Browser Account Removed", - "MessageMediaBrowserAccontRemoved": "The Media Browser account has been removed from this user." + "MessageMediaBrowserAccontRemoved": "The Media Browser account has been removed from this user.", + "TooltipLinkedToMediaBrowserConnect": "Linked to Media Browser Connect" } -- cgit v1.2.3 From 6dc9b169666bcfeb2edf3620c0646efa0c29606f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 14 Sep 2014 19:39:06 -0400 Subject: update connect link text --- MediaBrowser.Api/ConnectService.cs | 8 +++----- .../Connect/ConnectInvitationRequest.cs | 20 -------------------- MediaBrowser.Controller/Connect/ConnectUser.cs | 7 +------ MediaBrowser.Controller/Connect/IConnectManager.cs | 2 +- MediaBrowser.Controller/Connect/UserLinkResult.cs | 8 ++++++++ .../MediaBrowser.Controller.csproj | 2 +- .../Connect/ConnectManager.cs | 11 ++++++++++- .../Connect/Responses.cs | 9 ++++++++- .../Localization/JavaScript/javascript.json | 3 ++- .../Localization/Server/server.json | 1 + 10 files changed, 35 insertions(+), 36 deletions(-) delete mode 100644 MediaBrowser.Controller/Connect/ConnectInvitationRequest.cs create mode 100644 MediaBrowser.Controller/Connect/UserLinkResult.cs (limited to 'MediaBrowser.Server.Implementations/Localization/JavaScript') diff --git a/MediaBrowser.Api/ConnectService.cs b/MediaBrowser.Api/ConnectService.cs index 14b04a0bb..9ea75d4ac 100644 --- a/MediaBrowser.Api/ConnectService.cs +++ b/MediaBrowser.Api/ConnectService.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace MediaBrowser.Api { [Route("/Users/{Id}/Connect/Link", "POST", Summary = "Creates a Connect link for a user")] - public class CreateConnectLink : IReturnVoid + public class CreateConnectLink : IReturn { [ApiMember(Name = "Id", Description = "User Id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] public string Id { get; set; } @@ -32,11 +32,9 @@ namespace MediaBrowser.Api _connectManager = connectManager; } - public void Post(CreateConnectLink request) + public object Post(CreateConnectLink request) { - var task = _connectManager.LinkUser(request.Id, request.ConnectUsername); - - Task.WaitAll(task); + return _connectManager.LinkUser(request.Id, request.ConnectUsername); } public void Delete(DeleteConnectLink request) diff --git a/MediaBrowser.Controller/Connect/ConnectInvitationRequest.cs b/MediaBrowser.Controller/Connect/ConnectInvitationRequest.cs deleted file mode 100644 index 91516723b..000000000 --- a/MediaBrowser.Controller/Connect/ConnectInvitationRequest.cs +++ /dev/null @@ -1,20 +0,0 @@ - -namespace MediaBrowser.Controller.Connect -{ - public class ConnectInvitationRequest - { - public string LocalUserId { get; set; } - - public string Username { get; set; } - - public string RequesterUserId { get; set; } - - public ConnectUserType Type { get; set; } - } - - public enum ConnectUserType - { - LinkedUser = 1, - Guest = 2 - } -} diff --git a/MediaBrowser.Controller/Connect/ConnectUser.cs b/MediaBrowser.Controller/Connect/ConnectUser.cs index 2cd14ec7c..389330cec 100644 --- a/MediaBrowser.Controller/Connect/ConnectUser.cs +++ b/MediaBrowser.Controller/Connect/ConnectUser.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - + namespace MediaBrowser.Controller.Connect { public class ConnectUser diff --git a/MediaBrowser.Controller/Connect/IConnectManager.cs b/MediaBrowser.Controller/Connect/IConnectManager.cs index 8bdb76ea4..7c1e14c30 100644 --- a/MediaBrowser.Controller/Connect/IConnectManager.cs +++ b/MediaBrowser.Controller/Connect/IConnectManager.cs @@ -16,7 +16,7 @@ namespace MediaBrowser.Controller.Connect /// The user identifier. /// The connect username. /// Task. - Task LinkUser(string userId, string connectUsername); + Task LinkUser(string userId, string connectUsername); /// /// Removes the link. diff --git a/MediaBrowser.Controller/Connect/UserLinkResult.cs b/MediaBrowser.Controller/Connect/UserLinkResult.cs new file mode 100644 index 000000000..4ed57cfc2 --- /dev/null +++ b/MediaBrowser.Controller/Connect/UserLinkResult.cs @@ -0,0 +1,8 @@ + +namespace MediaBrowser.Controller.Connect +{ + public class UserLinkResult + { + public bool IsPending { get; set; } + } +} diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index fa1064232..6d881da4f 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -99,9 +99,9 @@ - + diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs index 3933b180e..d92ca8323 100644 --- a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs +++ b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs @@ -6,6 +6,7 @@ using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Security; +using MediaBrowser.Model.Connect; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Net; using MediaBrowser.Model.Serialization; @@ -266,7 +267,7 @@ namespace MediaBrowser.Server.Implementations.Connect return "https://connect.mediabrowser.tv/service/" + handler; } - public async Task LinkUser(string userId, string connectUsername) + public async Task LinkUser(string userId, string connectUsername) { if (string.IsNullOrWhiteSpace(connectUsername)) { @@ -313,17 +314,24 @@ namespace MediaBrowser.Server.Implementations.Connect SetServerAccessToken(options); + var result = new UserLinkResult(); + // No need to examine the response using (var stream = (await _httpClient.Post(options).ConfigureAwait(false)).Content) { var response = _json.DeserializeFromStream(stream); + + result.IsPending = string.Equals(response.AcceptStatus, "waiting", StringComparison.OrdinalIgnoreCase); } user.ConnectAccessKey = accessToken; user.ConnectUserName = connectUser.Name; user.ConnectUserId = connectUser.Id; + user.ConnectLinkType = UserLinkType.LinkedUser; await user.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); + + return result; } public Task RemoveLink(string userId) @@ -378,6 +386,7 @@ namespace MediaBrowser.Server.Implementations.Connect user.ConnectAccessKey = null; user.ConnectUserName = null; user.ConnectUserId = null; + user.ConnectLinkType = UserLinkType.LinkedUser; await user.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } diff --git a/MediaBrowser.Server.Implementations/Connect/Responses.cs b/MediaBrowser.Server.Implementations/Connect/Responses.cs index a3b0369ba..eeb56d1c9 100644 --- a/MediaBrowser.Server.Implementations/Connect/Responses.cs +++ b/MediaBrowser.Server.Implementations/Connect/Responses.cs @@ -28,6 +28,13 @@ namespace MediaBrowser.Server.Implementations.Connect public class ServerUserAuthorizationResponse { - + public string Id { get; set; } + public string ServerId { get; set; } + public string UserId { get; set; } + public string AccessToken { get; set; } + public string DateCreated { get; set; } + public bool IsActive { get; set; } + public string AcceptStatus { get; set; } + public string UserType { get; set; } } } diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index f8bb0f1d5..543bcced2 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -453,7 +453,8 @@ "MessageYouHaveAnActiveRecurringMembership": "You have an active {0} membership. You can upgrade your plan using the options below.", "ButtonDelete": "Delete", "HeaderMediaBrowserAccountAdded": "Media Browser Account Added", - "MessageMediaBrowserAccontAdded": "A Media Browser account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "MessageMediaBrowserAccountAdded": "The Media Browser account has been successfully linked to this user.", + "MessagePendingMediaBrowserAccountAdded": "A Media Browser account has been linked to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", "HeaderMediaBrowserAccountRemoved": "Media Browser Account Removed", "MessageMediaBrowserAccontRemoved": "The Media Browser account has been removed from this user.", "TooltipLinkedToMediaBrowserConnect": "Linked to Media Browser Connect" diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json index 86dc60c2e..781b3e927 100644 --- a/MediaBrowser.Server.Implementations/Localization/Server/server.json +++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json @@ -684,6 +684,7 @@ "OptionPlainVideoItemsHelp": "If enabled, all videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".", "LabelSupportedMediaTypes": "Supported Media Types:", "TabIdentification": "Identification", + "HeaderIdentification": "Identification", "TabDirectPlay": "Direct Play", "TabContainers": "Containers", "TabCodecs": "Codecs", -- cgit v1.2.3 From 6babe4f5103c83d75da1924027f6e13aea165085 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 14 Sep 2014 19:41:26 -0400 Subject: connect text change --- .../Localization/JavaScript/javascript.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Localization/JavaScript') diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index 543bcced2..297e351ea 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -453,8 +453,8 @@ "MessageYouHaveAnActiveRecurringMembership": "You have an active {0} membership. You can upgrade your plan using the options below.", "ButtonDelete": "Delete", "HeaderMediaBrowserAccountAdded": "Media Browser Account Added", - "MessageMediaBrowserAccountAdded": "The Media Browser account has been successfully linked to this user.", - "MessagePendingMediaBrowserAccountAdded": "A Media Browser account has been linked to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", + "MessageMediaBrowserAccountAdded": "The Media Browser account has been added to this user.", + "MessagePendingMediaBrowserAccountAdded": "The Media Browser account has been added to this user. An email will be sent to the owner of the account. The invitation will need to be confirmed by clicking a link within the email.", "HeaderMediaBrowserAccountRemoved": "Media Browser Account Removed", "MessageMediaBrowserAccontRemoved": "The Media Browser account has been removed from this user.", "TooltipLinkedToMediaBrowserConnect": "Linked to Media Browser Connect" -- cgit v1.2.3