diff options
| author | Eric Reed <ebr@mediabrowser3.com> | 2013-03-14 12:32:16 -0400 |
|---|---|---|
| committer | Eric Reed <ebr@mediabrowser3.com> | 2013-03-14 12:32:16 -0400 |
| commit | d3b37a73cc32d654fa823d9b2e8b31ff470ebffd (patch) | |
| tree | 3ee895e662d47443e26d4153cf491f36882ac909 | |
| parent | 133047a4952b746850695ef46434c862724812b3 (diff) | |
Create IRequiresRegistration. First part of #31
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 |
