Esempio n. 1
0
        public override async Task <ResourceDto> GetAsync(Guid id)
        {
            var resource = await GetEntityByIdAsync(id);

            if (!resource.IsPublished && !await _categoryDataPermissionProvider.IsCurrentUserAllowedToManageAsync(resource.CategoryId))
            {
                throw new EntityNotFoundException(typeof(Resource), id);
            }

            return(MapToGetOutputDto(resource));
        }
        public override async Task <ResourceUserDto> GetAsync(Guid id)
        {
            var dto = await base.GetAsync(id);

            var resource = await _resourceRepository.GetAsync(dto.ResourceId);

            if (!await _categoryDataPermissionProvider.IsCurrentUserAllowedToManageAsync(resource.CategoryId))
            {
                throw new EntityNotFoundException(typeof(ResourceUser), id);
            }

            return(dto);
        }
Esempio n. 3
0
        public override async Task <ResourceDto> GetAsync(Guid id)
        {
            var resource = await GetEntityByIdAsync(id);

            if (!resource.IsPublished && !await _categoryDataPermissionProvider.IsCurrentUserAllowedToManageAsync(resource.CategoryId))
            {
                throw new EntityNotFoundException(typeof(Resource), id);
            }

            var dto = MapToGetOutputDto(resource);

            dto.IsAuthorized = await _resourceUserRepository.FindAsync(id, CurrentUser.GetId()) != null;

            return(dto);
        }
Esempio n. 4
0
        public override async Task <ResourceItemDto> GetAsync(Guid id)
        {
            var resourceItem = await GetEntityByIdAsync(id);

            var resource = await _resourceRepository.GetAsync(resourceItem.ResourceId);

            var currentUserAllowedToManage = await _categoryDataPermissionProvider.IsCurrentUserAllowedToManageAsync(resource.CategoryId);

            if ((!resourceItem.IsPublished || !resource.IsPublished) && !currentUserAllowedToManage)
            {
                throw new EntityNotFoundException(typeof(ResourceItem), id);
            }

            var dto = await MapToGetOutputDtoAsync(resourceItem);

            if (resourceItem.IsPublic || currentUserAllowedToManage || await IsCurrentUserAuthorizedToReadAsync(resource.Id))
            {
                return(dto);
            }

            return(RemoveResourceItemContent(dto));
        }