using Microsoft.AspNetCore.Authorization; using System; using System.Linq; using Timeline.Services.User; namespace Timeline.Auth { public class PermissionAuthorizeAttribute : AuthorizeAttribute { public PermissionAuthorizeAttribute() { } public PermissionAuthorizeAttribute(params UserPermission[] permissions) { Permissions = permissions; } public UserPermission[] Permissions { get => Policy == null ? Array.Empty() : Policy[PermissionPolicyProvider.PolicyPrefix.Length..].Split(',') .Select(s => Enum.Parse(s)).ToArray(); set { Policy = $"{PermissionPolicyProvider.PolicyPrefix}{string.Join(',', value)}"; } } } }