Fix more review comments

This commit is contained in:
Claus Vium 2019-11-24 19:25:46 +01:00
parent 2af5922af0
commit 47a4f2f387
10 changed files with 62 additions and 20 deletions

View File

@ -236,6 +236,21 @@ namespace Emby.Server.Implementations
/// </summary>
public IServiceProvider ServiceProvider { get; set; }
/// <summary>
/// Gets the http port for the webhost.
/// </summary>
public int HttpPort { get; private set; }
/// <summary>
/// Gets the https port for the webhost.
/// </summary>
public int HttpsPort { get; private set; }
/// <summary>
/// Gets the content root for the webhost.
/// </summary>
public string ContentRoot { get; private set; }
/// <summary>
/// Gets the server configuration manager.
/// </summary>
@ -1604,12 +1619,6 @@ namespace Emby.Server.Implementations
? Environment.MachineName
: ServerConfigurationManager.Configuration.ServerName;
public int HttpPort { get; private set; }
public int HttpsPort { get; private set; }
public string ContentRoot { get; private set; }
/// <summary>
/// Shuts down.
/// </summary>

View File

@ -51,7 +51,7 @@ namespace Jellyfin.Api.Auth
new Claim(ClaimTypes.Name, user.Name),
new Claim(
ClaimTypes.Role,
value: user.Policy.IsAdministrator ? UserRole.Administrator : UserRole.User)
value: user.Policy.IsAdministrator ? UserRoles.Administrator : UserRoles.User)
};
var identity = new ClaimsIdentity(claims, Scheme.Name);
var principal = new ClaimsPrincipal(identity);

View File

@ -28,7 +28,7 @@ namespace Jellyfin.Api.Auth.FirstTimeSetupOrElevatedPolicy
{
context.Succeed(firstTimeSetupOrElevatedRequirement);
}
else if (context.User.IsInRole(UserRole.Administrator))
else if (context.User.IsInRole(UserRoles.Administrator))
{
context.Succeed(firstTimeSetupOrElevatedRequirement);
}

View File

@ -12,7 +12,7 @@ namespace Jellyfin.Api.Auth.RequiresElevationPolicy
/// <inheritdoc />
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, RequiresElevationRequirement requirement)
{
if (context.User.IsInRole(UserRole.Administrator))
if (context.User.IsInRole(UserRoles.Administrator))
{
context.Succeed(requirement);
}

View File

@ -0,0 +1,13 @@
namespace Jellyfin.Api.Constants
{
/// <summary>
/// Authentication schemes for user authentication in the API.
/// </summary>
public static class AuthenticationSchemes
{
/// <summary>
/// Scheme name for the custom legacy authentication.
/// </summary>
public const string CustomAuthentication = "CustomAuthentication";
}
}

View File

@ -0,0 +1,18 @@
namespace Jellyfin.Api.Constants
{
/// <summary>
/// Policies for the API authorization.
/// </summary>
public static class Policies
{
/// <summary>
/// Policy name for requiring first time setup or elevated privileges.
/// </summary>
public const string FirstTimeSetupOrElevated = "FirstTimeOrElevated";
/// <summary>
/// Policy name for requiring elevated privileges.
/// </summary>
public const string RequiresElevation = "RequiresElevation";
}
}

View File

@ -3,7 +3,7 @@ namespace Jellyfin.Api.Constants
/// <summary>
/// Constants for user roles used in the authentication and authorization for the API.
/// </summary>
public static class UserRole
public static class UserRoles
{
/// <summary>
/// Guest user.

View File

@ -1,5 +1,6 @@
using System.Linq;
using System.Threading.Tasks;
using Jellyfin.Api.Constants;
using Jellyfin.Api.Models.StartupDtos;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library;
@ -11,7 +12,7 @@ namespace Jellyfin.Api.Controllers
/// <summary>
/// The startup wizard controller.
/// </summary>
[Authorize(Policy = "FirstTimeSetupOrElevated")]
[Authorize(Policy = Policies.FirstTimeSetupOrElevated)]
public class StartupController : BaseJellyfinApiController
{
private readonly IServerConfigurationManager _config;

View File

@ -20,9 +20,9 @@
<!-- Code analysers-->
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.7" PrivateAssets="All" />
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" />
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" PrivateAssets="All" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="All" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" />
</ItemGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

View File

@ -2,6 +2,7 @@ using Jellyfin.Api;
using Jellyfin.Api.Auth;
using Jellyfin.Api.Auth.FirstTimeSetupOrElevatedPolicy;
using Jellyfin.Api.Auth.RequiresElevationPolicy;
using Jellyfin.Api.Constants;
using Jellyfin.Api.Controllers;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
@ -27,17 +28,17 @@ namespace Jellyfin.Server.Extensions
return serviceCollection.AddAuthorizationCore(options =>
{
options.AddPolicy(
"RequiresElevation",
Policies.RequiresElevation,
policy =>
{
policy.AddAuthenticationSchemes("CustomAuthentication");
policy.AddAuthenticationSchemes(AuthenticationSchemes.CustomAuthentication);
policy.AddRequirements(new RequiresElevationRequirement());
});
options.AddPolicy(
"FirstTimeSetupOrElevated",
Policies.FirstTimeSetupOrElevated,
policy =>
{
policy.AddAuthenticationSchemes("CustomAuthentication");
policy.AddAuthenticationSchemes(AuthenticationSchemes.CustomAuthentication);
policy.AddRequirements(new FirstTimeSetupOrElevatedRequirement());
});
});
@ -50,8 +51,8 @@ namespace Jellyfin.Server.Extensions
/// <returns>The updated service collection.</returns>
public static AuthenticationBuilder AddCustomAuthentication(this IServiceCollection serviceCollection)
{
return serviceCollection.AddAuthentication("CustomAuthentication")
.AddScheme<AuthenticationSchemeOptions, CustomAuthenticationHandler>("CustomAuthentication", null);
return serviceCollection.AddAuthentication(AuthenticationSchemes.CustomAuthentication)
.AddScheme<AuthenticationSchemeOptions, CustomAuthenticationHandler>(AuthenticationSchemes.CustomAuthentication, null);
}
/// <summary>