|
@@ -1,5 +1,6 @@
|
|
|
using MediaBrowser.Common.Configuration;
|
|
|
using MediaBrowser.Common.Net;
|
|
|
+using MediaBrowser.Common.Security;
|
|
|
using MediaBrowser.Controller;
|
|
|
using MediaBrowser.Controller.Configuration;
|
|
|
using MediaBrowser.Controller.Connect;
|
|
@@ -38,6 +39,7 @@ namespace MediaBrowser.Server.Implementations.Connect
|
|
|
private readonly IServerConfigurationManager _config;
|
|
|
private readonly IUserManager _userManager;
|
|
|
private readonly IProviderManager _providerManager;
|
|
|
+ private readonly ISecurityManager _securityManager;
|
|
|
|
|
|
private ConnectData _data = new ConnectData();
|
|
|
|
|
@@ -102,7 +104,7 @@ namespace MediaBrowser.Server.Implementations.Connect
|
|
|
IEncryptionManager encryption,
|
|
|
IHttpClient httpClient,
|
|
|
IServerApplicationHost appHost,
|
|
|
- IServerConfigurationManager config, IUserManager userManager, IProviderManager providerManager)
|
|
|
+ IServerConfigurationManager config, IUserManager userManager, IProviderManager providerManager, ISecurityManager securityManager)
|
|
|
{
|
|
|
_logger = logger;
|
|
|
_appPaths = appPaths;
|
|
@@ -113,6 +115,7 @@ namespace MediaBrowser.Server.Implementations.Connect
|
|
|
_config = config;
|
|
|
_userManager = userManager;
|
|
|
_providerManager = providerManager;
|
|
|
+ _securityManager = securityManager;
|
|
|
|
|
|
_userManager.UserConfigurationUpdated += _userManager_UserConfigurationUpdated;
|
|
|
_config.ConfigurationUpdated += _config_ConfigurationUpdated;
|
|
@@ -1054,6 +1057,34 @@ namespace MediaBrowser.Server.Implementations.Connect
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public async Task<ConnectSupporterSummary> GetConnectSupporterSummary()
|
|
|
+ {
|
|
|
+ if (!_securityManager.IsMBSupporter)
|
|
|
+ {
|
|
|
+ return new ConnectSupporterSummary();
|
|
|
+ }
|
|
|
+
|
|
|
+ var url = GetConnectUrl("keyAssociation");
|
|
|
+
|
|
|
+ url += "?serverId=" + ConnectServerId;
|
|
|
+ url += "&supporterKey=" + _securityManager.SupporterKey;
|
|
|
+
|
|
|
+ var options = new HttpRequestOptions
|
|
|
+ {
|
|
|
+ Url = url,
|
|
|
+ CancellationToken = CancellationToken.None
|
|
|
+ };
|
|
|
+
|
|
|
+ SetServerAccessToken(options);
|
|
|
+ SetApplicationHeader(options);
|
|
|
+
|
|
|
+ // No need to examine the response
|
|
|
+ using (var stream = (await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)).Content)
|
|
|
+ {
|
|
|
+ return _json.DeserializeFromStream<ConnectSupporterSummary>(stream);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public async Task Authenticate(string username, string passwordMd5)
|
|
|
{
|
|
|
if (string.IsNullOrWhiteSpace(username))
|