diff options
| author | BaronGreenback <jimcartlidge@yahoo.co.uk> | 2020-12-15 01:15:54 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-15 01:15:54 +0000 |
| commit | 67c480ad53073a660e1485777cde6b2889780faf (patch) | |
| tree | 0662d81e0fdb1fd036fe7e207e406146b26b3dba /Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | |
| parent | 0d4aa6bad61a8d7ef74b88a161913c5a64663937 (diff) | |
| parent | 4f6a585424ac8fc66d1f2d5a7fc71a9e85cd23de (diff) | |
Merge branch 'master' into PluginDowngrade
Diffstat (limited to 'Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs')
| -rw-r--r-- | Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 74e7bb4b1..cd594b5c5 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -24,6 +24,7 @@ using Jellyfin.Server.Configuration; using Jellyfin.Server.Filters; using Jellyfin.Server.Formatters; using MediaBrowser.Common.Json; +using MediaBrowser.Common.Net; using MediaBrowser.Model.Entities; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authorization; @@ -127,18 +128,32 @@ namespace Jellyfin.Server.Extensions policy.AddRequirements(new RequiresElevationRequirement()); }); options.AddPolicy( - Policies.SyncPlayAccess, + Policies.SyncPlayHasAccess, policy => { policy.AddAuthenticationSchemes(AuthenticationSchemes.CustomAuthentication); - policy.AddRequirements(new SyncPlayAccessRequirement(SyncPlayAccess.JoinGroups)); + policy.AddRequirements(new SyncPlayAccessRequirement(SyncPlayAccessRequirementType.HasAccess)); }); options.AddPolicy( - Policies.SyncPlayCreateGroupAccess, + Policies.SyncPlayCreateGroup, policy => { policy.AddAuthenticationSchemes(AuthenticationSchemes.CustomAuthentication); - policy.AddRequirements(new SyncPlayAccessRequirement(SyncPlayAccess.CreateAndJoinGroups)); + policy.AddRequirements(new SyncPlayAccessRequirement(SyncPlayAccessRequirementType.CreateGroup)); + }); + options.AddPolicy( + Policies.SyncPlayJoinGroup, + policy => + { + policy.AddAuthenticationSchemes(AuthenticationSchemes.CustomAuthentication); + policy.AddRequirements(new SyncPlayAccessRequirement(SyncPlayAccessRequirementType.JoinGroup)); + }); + options.AddPolicy( + Policies.SyncPlayIsInGroup, + policy => + { + policy.AddAuthenticationSchemes(AuthenticationSchemes.CustomAuthentication); + policy.AddRequirements(new SyncPlayAccessRequirement(SyncPlayAccessRequirementType.IsInGroup)); }); }); } @@ -169,11 +184,19 @@ namespace Jellyfin.Server.Extensions .Configure<ForwardedHeadersOptions>(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; - for (var i = 0; i < knownProxies.Count; i++) + if (knownProxies.Count == 0) { - if (IPAddress.TryParse(knownProxies[i], out var address)) + options.KnownNetworks.Clear(); + options.KnownProxies.Clear(); + } + else + { + for (var i = 0; i < knownProxies.Count; i++) { - options.KnownProxies.Add(address); + if (IPHost.TryParse(knownProxies[i], out var host)) + { + options.KnownProxies.Add(host.Address); + } } } }) |
