'arvados#group'
end
unless current_user.can? write: owner_uuid
+ logger.warn "User #{current_user.andand.uuid} tried to set collection owner_uuid to #{owner_uuid}"
raise ArvadosModel::PermissionDeniedError
end
act_as_system_user do
return ""
end
- #puts "visiting #{uuid}"
+ logger.debug "visiting #{uuid}"
if m
# uuid is a collection
- Collection.where(uuid: uuid).each do |c|
+ Collection.readable_by(current_user).where(uuid: uuid).each do |c|
visited[uuid] = c.as_api_response
+ visited[uuid][:files] = []
+ c.files.each do |f|
+ visited[uuid][:files] << f
+ end
end
- Job.where(output: uuid).each do |job|
+ Job.readable_by(current_user).where(output: uuid).each do |job|
generate_provenance_edges(visited, job.uuid)
end
- Job.where(log: uuid).each do |job|
+ Job.readable_by(current_user).where(log: uuid).each do |job|
generate_provenance_edges(visited, job.uuid)
end
# uuid is something else
rsc = ArvadosModel::resource_class_for_uuid uuid
if rsc == Job
- Job.where(uuid: uuid).each do |job|
+ Job.readable_by(current_user).where(uuid: uuid).each do |job|
visited[uuid] = job.as_api_response
script_param_edges(visited, job.script_parameters)
end
end
end
- Link.where(head_uuid: uuid, link_class: "provenance").each do |link|
+ Link.readable_by(current_user).
+ where(head_uuid: uuid, link_class: "provenance").
+ each do |link|
visited[link.uuid] = link.as_api_response
generate_provenance_edges(visited, link.tail_uuid)
end