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')