diff --git a/app/models/collection.rb b/app/models/collection.rb
index 227a59ebaa9ebf3105d91a6b234ffd9ef0d79109..05dcce308892be8518cc8521827c330e37588a23 100644
--- a/app/models/collection.rb
+++ b/app/models/collection.rb
@@ -59,9 +59,9 @@ class Collection < ActiveRecord::Base
   end
 
   def user_own?(user)
-    return false unless user.is_a? User
-    return user.is_admin? || owner?(user)
     return true if user.is_a? Institution and owner.users.include?(user)
+    return false unless user.is_a? User
+    user.is_admin? || owner?(user)
   end
 
   def private?
diff --git a/app/policies/collection_policy.rb b/app/policies/collection_policy.rb
index 1b194aa741022812cc237e76ee288fb16f0a6581..06180e1cc928c266a6cff4fe237d3763780081f4 100644
--- a/app/policies/collection_policy.rb
+++ b/app/policies/collection_policy.rb
@@ -12,9 +12,8 @@ class CollectionPolicy < ApplicationPolicy
     end
 
     def resolve
-      if @user.nil?
-        scope.where(privacy: 'public')
-      elsif @user.id == @user_id || @user.is_admin?
+
+      if @user.try(:id) == @user_id || @user.try(:is_admin?)
         scope.all
       else
         scope.where(privacy: 'public')