using System.Linq; using System.Threading.Tasks; using Admin.Core.Service.Admin.User; namespace Admin.Core.Auth { /// /// 权限处理 /// public class PermissionHandler : IPermissionHandler { private readonly IUserService _userService; public PermissionHandler(IUserService userService) { _userService = userService; } /// /// 权限验证 /// /// 接口路径 /// http请求方法 /// public async Task ValidateAsync(string api, string httpMethod) { var permissions = await _userService.GetPermissionsAsync(); var valid = permissions.Any(m => m.Path.NotNull() && m.Path.EqualsIgnoreCase($"/{api}") && m.HttpMethods.NotNull() && m.HttpMethods.Split(',').Any(n => n.NotNull() && n.EqualsIgnoreCase(httpMethod)) ); return valid; } } }