protected override async Task <bool> CheckUserPermissions(long userId, long[] roleIds, string[] codes) { bool result = await _roleAppService.ExistPermissions(new RolePermissionsCheckInputDto() { RoleIds = roleIds, Permissions = codes }); return(result); }
public async Task <IActionResult> CheckPermissions([FromQuery] RolePermissionsCheckInputDto inputDto) { bool isexists = await _roleService.ExistPermissions(inputDto); if (isexists) { return(new OkResult()); } else { return(new NotFoundObjectResult(new ErrorModel(ErrorCode.NotFound, "没有权限"))); } }
protected override async Task <bool> CheckUserPermissions(long userId, long[] roleIds, string[] codes) { var result = await _roleAppService.ExistPermissions(new RolePermissionsCheckInputDto() { RoleIds = roleIds, Permissions = codes }); if (result.IsSuccess) { return(result.Content); } return(false); }
protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement) { if (!context.User.Identity.IsAuthenticated) { context.Fail(); return; } var roles = context.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Role).Value; if (string.IsNullOrWhiteSpace(roles)) { context.Fail(); return; } var roleIds = roles.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => long.Parse(x)); if (roleIds.Contains(1)) { context.Succeed(requirement); return; } else { var attribute = (context.Resource as RouteEndpoint).Metadata.GetMetadata <PermissionAttribute>(); var result = await _roleAppService.ExistPermissions(new RolePermissionsCheckInputDto() { RoleIds = roleIds.ToArray(), Permissions = attribute.Codes }); if (result) { context.Succeed(requirement); return; } } context.Fail(); return; }