X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3d53281b9e3ba0840e5e3eaeb0371e0f50a345ad..7c335bf3dc935f6ac0f1845f65063d5b40ddb5ed:/services/api/app/models/log.rb diff --git a/services/api/app/models/log.rb b/services/api/app/models/log.rb index 5b3f544f0a..f8d624acb7 100644 --- a/services/api/app/models/log.rb +++ b/services/api/app/models/log.rb @@ -53,12 +53,13 @@ class Log < ArvadosModel self end - def self.readable_by *users_list + def self.readable_by(*users_list) if users_list.select { |u| u.is_admin }.any? return self end user_uuids = users_list.map { |u| u.uuid } uuid_list = user_uuids + users_list.flat_map { |u| u.groups_i_can(:read) } + uuid_list.uniq! permitted = "(SELECT head_uuid FROM links WHERE link_class='permission' AND tail_uuid IN (:uuids))" joins("LEFT JOIN container_requests ON container_requests.container_uuid=logs.object_uuid"). where("logs.object_uuid IN #{permitted} OR "+