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); }
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); }
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)); }