chore: 优化代码注释
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using TakeoutSaaS.Module.Authorization.Policies;
|
||||
|
||||
@@ -9,7 +6,7 @@ namespace TakeoutSaaS.Module.Authorization.Attributes;
|
||||
/// <summary>
|
||||
/// 权限校验特性
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
|
||||
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
|
||||
public sealed class PermissionAuthorizeAttribute : AuthorizeAttribute
|
||||
{
|
||||
public PermissionAuthorizeAttribute(params string[] permissions)
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
@@ -10,16 +6,10 @@ namespace TakeoutSaaS.Module.Authorization.Policies;
|
||||
/// <summary>
|
||||
/// 权限策略提供者(按需动态构建策略)
|
||||
/// </summary>
|
||||
public sealed class PermissionAuthorizationPolicyProvider : DefaultAuthorizationPolicyProvider
|
||||
public sealed class PermissionAuthorizationPolicyProvider(IOptions<AuthorizationOptions> options) : DefaultAuthorizationPolicyProvider(options)
|
||||
{
|
||||
public const string PolicyPrefix = "PERMISSION:";
|
||||
private readonly AuthorizationOptions _options;
|
||||
|
||||
public PermissionAuthorizationPolicyProvider(IOptions<AuthorizationOptions> options)
|
||||
: base(options)
|
||||
{
|
||||
_options = options.Value;
|
||||
}
|
||||
private readonly AuthorizationOptions _options = options.Value;
|
||||
|
||||
public override Task<AuthorizationPolicy?> GetPolicyAsync(string policyName)
|
||||
{
|
||||
@@ -28,7 +18,7 @@ public sealed class PermissionAuthorizationPolicyProvider : DefaultAuthorization
|
||||
var existingPolicy = _options.GetPolicy(policyName);
|
||||
if (existingPolicy != null)
|
||||
{
|
||||
return Task.FromResult(existingPolicy);
|
||||
return Task.FromResult<AuthorizationPolicy?>(existingPolicy);
|
||||
}
|
||||
|
||||
var permissions = ParsePermissions(policyName);
|
||||
@@ -61,9 +51,8 @@ public sealed class PermissionAuthorizationPolicyProvider : DefaultAuthorization
|
||||
}
|
||||
|
||||
private static string[] NormalizePermissions(IEnumerable<string> permissions)
|
||||
=> permissions
|
||||
=> [.. permissions
|
||||
.Where(p => !string.IsNullOrWhiteSpace(p))
|
||||
.Select(p => p.Trim())
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.ToArray();
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)];
|
||||
}
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
|
||||
namespace TakeoutSaaS.Module.Authorization.Policies;
|
||||
|
||||
/// <summary>
|
||||
/// 权限要求
|
||||
/// 权限要求:用于授权策略中定义所需的权限集合。
|
||||
/// </summary>
|
||||
public sealed class PermissionRequirement : IAuthorizationRequirement
|
||||
public sealed class PermissionRequirement(IReadOnlyCollection<string> permissions) : IAuthorizationRequirement
|
||||
{
|
||||
public PermissionRequirement(IReadOnlyCollection<string> permissions)
|
||||
{
|
||||
Permissions = permissions ?? throw new ArgumentNullException(nameof(permissions));
|
||||
}
|
||||
|
||||
public IReadOnlyCollection<string> Permissions { get; }
|
||||
/// <summary>
|
||||
/// 所需的权限集合。
|
||||
/// </summary>
|
||||
public IReadOnlyCollection<string> Permissions { get; } = permissions ?? throw new ArgumentNullException(nameof(permissions));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user