Exemple #1
0
        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);
        }