# exist) giving the current user (or specified owner_uuid)
# permission to read it.
owner_uuid = resource_attrs.delete(:owner_uuid) || current_user.uuid
- owner_kind = if owner_uuid.match(/-(\w+)-/)[1] == User.uuid_prefix
- 'arvados#user'
- else
- '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
owner_uuid: owner_uuid,
link_class: 'permission',
name: 'can_read',
- head_kind: 'arvados#collection',
head_uuid: @object.uuid,
- tail_kind: owner_kind,
tail_uuid: owner_uuid
}
ActiveRecord::Base.transaction do
show
end
+ def show
+ render json: @object.as_api_response(:with_data)
+ end
+
def collection_uuid(uuid)
m = /([a-f0-9]{32}(\+[0-9]+)?)(\+.*)?/.match(uuid)
if m
end
def script_param_edges(visited, sp)
- if sp and not sp.empty?
- case sp
- when Hash
- sp.each do |k, v|
- script_param_edges(visited, v)
- end
- when Array
- sp.each do |v|
- script_param_edges(visited, v)
- end
- else
- m = collection_uuid(sp)
- if m
- generate_provenance_edges(visited, m)
- end
+ case sp
+ when Hash
+ sp.each do |k, v|
+ script_param_edges(visited, v)
+ end
+ when Array
+ sp.each do |v|
+ script_param_edges(visited, v)
+ end
+ when String
+ return if sp.empty?
+ m = collection_uuid(sp)
+ if m
+ generate_provenance_edges(visited, m)
end
end
end