protected override async Task HandleRequirementAsync( AuthorizationHandlerContext context, RoleRequirement requirement, IEnumerable <Role> resource) { if (_userProvider.User is User user && resource.Contains(user.Role)) { context.Succeed(requirement); } await Task.CompletedTask; }
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, RoleRequirement requirement, T resource) { ObjectId userId = context.User.GetUserId(); ObjectId requiredRoleId = requirement.Role.Id; IList <PropertyUser> propertyUsers = resource.Users; PropertyUser reqestedUser = propertyUsers?.FirstOrDefault(pu => pu.UserId.Equals(userId)); // if user complies the required role. if (reqestedUser is not null && reqestedUser.RoleIds.Any(ri => ri.Equals(requiredRoleId))) { context.Succeed(requirement); } return(Task.CompletedTask); }