Example #1
0
        protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context,
                                                             MustOwnAnimalRequirement requirement)
        {
            var filterContext = context.Resource as AuthorizationFilterContext;

            if (filterContext == null)
            {
                context.Fail();

                return;
            }

            var animalIdString = filterContext.RouteData.Values["id"]
                                 .ToString();

            if (!Guid.TryParse(animalIdString, out var animalId))
            {
                context.Fail();

                return;
            }

            var userEmail = context.User.FindFirstValue(ClaimTypes.Name);

            var animal = await animalAppService.Get(animalId);

            var user = await userAppService.Get(userEmail);

            var adminEmail = configuration.GetValue <string>("AdminEmail");

            if (animal == null || user == null || animal.OwnerId != user.Id || user.Email != adminEmail)
            {
                context.Fail();

                return;
            }

            context.Succeed(requirement);
        }
Example #2
0
 public async Task <IEnumerable <AnimalDto> > GetFiltered(AnimalSpecDto animalSpecDto)
 {
     return(await animalAppService.Get(animalSpecDto));
 }