diff --git a/app/models/collection_item.rb b/app/models/collection_item.rb
index 4fc48636bdb07fefc3468a79dc6dce01bafcb704..1a73aaed0001b832a727cc81d98110053ffd7b20 100644
--- a/app/models/collection_item.rb
+++ b/app/models/collection_item.rb
@@ -25,6 +25,14 @@ class CollectionItem < ApplicationRecord
     collection
   end
 
+  def public?
+    collectionable.privacy == 'public'
+  end
+
+  def owner?(candidate)
+    collectionable.owner == candidate
+  end
+
   def thumbnail
     collectionable_type == 'LearningObject' ?  LearningObject.find(collectionable_id).default_thumbnail : Collection.find(collectionable_id).thumbnail
   end
diff --git a/app/serializers/collection_item_serializer.rb b/app/serializers/collection_item_serializer.rb
index e085d36a8ac68a814ded456d5fa347827b08cabc..60c59d539e02a9b728b34dfea947c9e46a819aa8 100644
--- a/app/serializers/collection_item_serializer.rb
+++ b/app/serializers/collection_item_serializer.rb
@@ -1,9 +1,18 @@
 class CollectionItemSerializer < ActiveModel::Serializer
   cache key: 'collection_item', expires_in: 24.hours
+  
   def collectionable
-    serializer = object.collectionable_type == "LearningObject" ?  ::LearningObjectSerializer : ::CollectionMinSerializer
-    serializer.new(object.collectionable, {scope: current_user, scope_name: :current_user}).serializable_hash
+    if ( object.collectionable_type == "LearningObject" )
+    	serializer = ::LearningObjectSerializer
+    elsif ( object.public? || (current_user && ( object.owner?(current_user) || current_user.is_admin? )) )
+    	serializer = ::CollectionMinSerializer
+    end
+
+    if ( !serializer.blank? )
+    	serializer.new(object.collectionable, {scope: current_user, scope_name: :current_user}).serializable_hash
+  	end
   end
+
   belongs_to :collectionable, polymorphic: true
   attributes :id, :position, :collectionable, :collectionable_type
 end