aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-03-14 12:32:16 -0400
committerEric Reed <ebr@mediabrowser3.com>2013-03-14 12:32:16 -0400
commitd3b37a73cc32d654fa823d9b2e8b31ff470ebffd (patch)
tree3ee895e662d47443e26d4153cf491f36882ac909
parent133047a4952b746850695ef46434c862724812b3 (diff)
Create IRequiresRegistration. First part of #31
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationHost.cs2
-rw-r--r--MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs19
-rw-r--r--MediaBrowser.Common/MediaBrowser.Common.csproj1
-rw-r--r--MediaBrowser.Common/Security/IRequiresRegistration.cs9
-rw-r--r--MediaBrowser.Common/Security/ISecurityManager.cs6
5 files changed, 36 insertions, 1 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
index ed0190a23..1789ab298 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
@@ -226,6 +226,8 @@ namespace MediaBrowser.Common.Implementations
Task.Run(() => ConfigureAutoRunAtStartup());
+ Task.Run(() => SecurityManager.LoadAllRegistrationInfo());
+
ConfigurationManager.ConfigurationUpdated += ConfigurationManager_ConfigurationUpdated;
});
}
diff --git a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
index 0404ee7fe..beca1637d 100644
--- a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
+++ b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.Configuration;
+using System.Collections.Generic;
+using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Security;
using MediaBrowser.Model.Serialization;
using Mediabrowser.Model.Entities;
@@ -7,6 +8,7 @@ using MediaBrowser.Common.Net;
using System;
using System.Threading;
using System.Threading.Tasks;
+using System.Linq;
namespace MediaBrowser.Common.Implementations.Security
{
@@ -44,6 +46,7 @@ namespace MediaBrowser.Common.Implementations.Security
private IHttpClient _httpClient;
private IJsonSerializer _jsonSerializer;
private IApplicationHost _appHost;
+ private IEnumerable<IRequiresRegistration> _registeredEntities;
/// <summary>
/// Initializes a new instance of the <see cref="PluginSecurityManager" /> class.
@@ -58,10 +61,24 @@ namespace MediaBrowser.Common.Implementations.Security
_appHost = appHost;
_httpClient = httpClient;
_jsonSerializer = jsonSerializer;
+ _registeredEntities = _appHost.GetExports<IRequiresRegistration>();
MBRegistration.Init(appPaths);
}
/// <summary>
+ /// Load all registration info for all entities that require registration
+ /// </summary>
+ /// <returns></returns>
+ public async Task LoadAllRegistrationInfo()
+ {
+ var tasks = new List<Task>();
+
+ tasks.AddRange(_registeredEntities.Select(i => i.LoadRegistrationInfoAsync()));
+ await Task.WhenAll(tasks);
+ ResetSupporterInfo();
+ }
+
+ /// <summary>
/// Gets the registration status.
/// </summary>
/// <param name="feature">The feature.</param>
diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj
index b1c40e3dc..d05ebaf74 100644
--- a/MediaBrowser.Common/MediaBrowser.Common.csproj
+++ b/MediaBrowser.Common/MediaBrowser.Common.csproj
@@ -100,6 +100,7 @@
<Compile Include="ScheduledTasks\IntervalTrigger.cs" />
<Compile Include="ScheduledTasks\TaskCompletionEventArgs.cs" />
<Compile Include="ScheduledTasks\WeeklyTrigger.cs" />
+ <Compile Include="Security\IRequiresRegistration.cs" />
<Compile Include="Security\ISecurityManager.cs" />
<Compile Include="Updates\IPackageManager.cs" />
</ItemGroup>
diff --git a/MediaBrowser.Common/Security/IRequiresRegistration.cs b/MediaBrowser.Common/Security/IRequiresRegistration.cs
new file mode 100644
index 000000000..66667d449
--- /dev/null
+++ b/MediaBrowser.Common/Security/IRequiresRegistration.cs
@@ -0,0 +1,9 @@
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Common.Security
+{
+ public interface IRequiresRegistration
+ {
+ Task LoadRegistrationInfoAsync();
+ }
+}
diff --git a/MediaBrowser.Common/Security/ISecurityManager.cs b/MediaBrowser.Common/Security/ISecurityManager.cs
index bcda3c6b4..a93bc4ac0 100644
--- a/MediaBrowser.Common/Security/ISecurityManager.cs
+++ b/MediaBrowser.Common/Security/ISecurityManager.cs
@@ -30,5 +30,11 @@ namespace MediaBrowser.Common.Security
/// <param name="mb2Equivalent">The MB2 equivalent.</param>
/// <returns>Task{MBRegistrationRecord}.</returns>
Task<MBRegistrationRecord> GetRegistrationStatus(string feature, string mb2Equivalent = null);
+
+ /// <summary>
+ /// Load all registration info for all entities that require registration
+ /// </summary>
+ /// <returns></returns>
+ Task LoadAllRegistrationInfo();
}
} \ No newline at end of file